gpt4 book ai didi

swift - 从前台导航到后台时如何暂停和播放背景视频?

转载 作者:可可西里 更新时间:2023-11-01 01:36:12 24 4
gpt4 key购买 nike

当我启动我的应用程序时,背景视频正在播放。如果我碰巧按下主页按钮,我希望视频暂停并从中断处继续播放。这是我的代码:

class ViewController: UIViewController
{
let moviePlayerController = AVPlayerViewController()
var aPlayer = AVPlayer()
func playBackgroundMovie()
{
if let url = NSBundle.mainBundle().URLForResource("IMG_0489", withExtension: "m4v")
{
aPlayer = AVPlayer(URL: url)
}
moviePlayerController.player = aPlayer
moviePlayerController.view.frame = view.frame
moviePlayerController.view.sizeToFit()
moviePlayerController.videoGravity = AVLayerVideoGravityResizeAspect
moviePlayerController.showsPlaybackControls = false
aPlayer.play()
view.insertSubview(moviePlayerController.view, atIndex: 0)
}

func didPlayToEndTime()
{
aPlayer.seekToTime(CMTimeMakeWithSeconds(0, 1))
aPlayer.play()
}


override func viewDidLoad()
{
// Do any additional setup after loading the view, typically from a nib.
super.viewDidLoad()
playBackgroundMovie()
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.didPlayToEndTime), name: AVPlayerItemDidPlayToEndTimeNotification, object: nil)
}

我必须在应用委托(delegate)中执行某些操作吗?我看了以前的视频,但我认为其中一些视频使用的是过时的 swift 版本。或者对我来说有点太困惑了。

最佳答案

你应该能够通过 NSNotificationCenter 注册后台/前台通知来播放或暂停你的 aPlayer,如下所示:

let notificationCenter = NSNotificationCenter.defaultCenter()
notificationCenter.addObserver(self, selector: #selector(pauseVideoForBackgrounding), name: UIApplicationDidEnterBackgroundNotification, object: nil)

有几个 UIApplication 通知名称可用,包括 UIApplicationWillEnterForegroundNotification。您可以根据需要利用尽可能多的通知,让您的视频播放器类知道应用状态发生了什么。

如果您支持 iOS 8 或更低版本,请确保还从您添加到 View Controller 的任何 NSNotifications 中删除作为观察者的播放器类。

关于swift - 从前台导航到后台时如何暂停和播放背景视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37216243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com