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以避免自动暂停。
这是链接:
以上是关于Xcode swift - 背景模式 - 锁定时AVPlayer中的音频的主要内容,如果未能解决你的问题,请参考以下文章
Xcode Swift alertView 在进入根控制器后消失
使用 Xcode 和 Swift 创建的 iOS 应用程序中状态栏的自定义背景颜色
使用单个按钮 Xcode 或 swift 切换视图控制器的背景颜色