Xcode swift - 背景模式 - 锁定时AVPlayer中的音频

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xcode swift - 背景模式 - 锁定时AVPlayer中的音频相关的知识,希望对你有一定的参考价值。

我有一个AVPlayer设置但是当手机被锁定或在主屏幕上时,我似乎无法继续播放视频音频。我已经编辑了info.plist并启用了音频后台模式,但我认为需要添加一些代码。请你救我。谢谢

这是我的代码:

import UIKit
import AVFoundation
import AVKit

class ViewController: UIViewController {

    @IBAction func WarmUp(sender: UIButton)
    {
        WarmUpVideo()
    }

    func WarmUpVideo()
    {
        let filePath = NSBundle.mainBundle().pathForResource("132", ofType: "MOV")
        let videoURL = NSURL(fileURLWithPath: filePath!)

        let player = AVPlayer(URL: videoURL)
        let playerViewController = AVPlayerViewController()

        playerViewController.player = player

        self.presentViewController(playerViewController, animated: true) { () -> Void in playerViewController.player!.play()
        }

    }

    func playExternalVideo()
    {

}


    @IBAction func CoolDown(sender: UIButton)
    {
        CoolDownVideo()
    }

    func CoolDownVideo()
    {
        let filePath = NSBundle.mainBundle().pathForResource("132", ofType: "mp4")
        let videoURL = NSURL(fileURLWithPath: filePath!)

        let player = AVPlayer(URL: videoURL)
        let playerViewController = AVPlayerViewController()

        playerViewController.player = player

        self.presentViewController(playerViewController, animated: true) { () -> Void in playerViewController.player!.play()
        }

    }

}
答案

我想你错过了以下代码:

do {
    try AVAudiosession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
    print("AVAudioSession Category Playback OK")
    do {
        try AVAudioSession.sharedInstance().setActive(true)
        print("AVAudioSession is Active")
    } catch let error as NSError {
        print(error.localizedDescription)
    }
} catch let error as NSError {
    print(error.localizedDescription)
}

将其添加到viewDidLoad。

另一答案

我在Apple的文档中找到了解决方案。除了背景模式,您需要将播放器设置为nil以避免自动暂停。

这是链接:

https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/creating_a_basic_video_player_ios_and_tvos/playing_audio_from_a_video_asset_in_the_background

以上是关于Xcode swift - 背景模式 - 锁定时AVPlayer中的音频的主要内容,如果未能解决你的问题,请参考以下文章

Xcode Swift alertView 在进入根控制器后消失

使用 Xcode 和 Swift 创建的 iOS 应用程序中状态栏的自定义背景颜色

使用单个按钮 Xcode 或 swift 切换视图控制器的背景颜色

在iOS Swift中不使用AWS SDK在Amazon S3存储桶中上传的背景图像(背景模式)

尝试打开照片库Swift时横向锁定不起作用

如何在 Xcode 6.4 Swift 应用程序中添加播放背景音乐? [复制]