首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVPlayer连续播放

AVPlayer连续播放
EN

Stack Overflow用户
提问于 2017-12-04 17:12:42
回答 2查看 564关注 0票数 1

我有一个对象数组。每个对象都有一个属性url。使用这个url,我可以在AVPlayer上播放音频。

代码语言:javascript
复制
func playAudio(url: URL)
    {
        let player = AVPlayer(url: url )
        let playerViewController = AVPlayerViewController()
        playerViewController.player = player
        self.present(playerViewController, animated: true)
        {
            do
            {
                try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
                    try AVAudioSession.sharedInstance().setActive(true)
            }
            catch _ as NSError {

            }

            playerViewController.player!.play()
        }

        NotificationCenter.default.addObserver(self, selector: #selector(CourseDetailViewController.moviePlayBackDidFinish(notification:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)
    }

我想连续播放所有物体的音频。我已经为它设置了

代码语言:javascript
复制
NotificationCenter.default.addObserver(self, selector: #selector(CourseDetailViewController.moviePlayBackDidFinish(notification:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)  

CourseDetailViewController.moviePlayBackDidFinish中,我再次调用playAudio。然后我把player作为一个全局变量,这样它就不会被再次初始化。但是在我们可以为已经存在的AVPlayer提供url的地方,没有AVPlayer的过载。如果对下一个音频执行let player = AVPlayer(url: url ),它不会播放,因为前一个AVPlayer实例在前台。这就是我在播放连续音频时所面临的挑战。如果有更好、更整洁的方法,我将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2017-12-04 18:21:07

我在AVPlayer中做了同样的事情,但不断地播放视频。我希望你能以同样的方式解决这个问题。添加一个观察者,以检查玩家是否在项目末尾到达。当每一项到达结尾处时,将调用通知。

  • 添加观察者:

对象(自身,选择器:#selector(playerItemDidReachEnd(notification:)),名称: NSNotification.Name.AVPlayerItemDidPlayToEndTime,对象: avPlayer.currentItem) avPlayer.play()

  • Notification NotificationCenter.default.addObserver:

func playerItemDidReachEnd(notification: Notification){ //TODO: Add your code here.. }

票数 0
EN

Stack Overflow用户

发布于 2017-12-11 17:26:51

你有没有看过AVQueuePlayer。此播放器用于按顺序播放多个项目。SDK Docs at link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47629867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档