objective-c - AVPlayerLooper 不会循环播放多个视频

标签 objective-c swift macos cocoa avfoundation

我创建了一个 AVPlayerView,用于使用 AVPlayerLooper 不间断播放 4 个视频。问题是:AVPlayerView 只显示一个循环视频。但我需要播放一个序列(4 个视频)。

如何让 AVPlayerLooper 播放所有 4 个视频并在之后循环

import Cocoa
import AVFoundation

class ViewController: NSViewController {

    @IBOutlet weak var viewOne: AVPlayerView!
    var playerLooper: AVPlayerLooper? = nil

    override func viewDidLoad() {
        super.viewDidLoad()
    
        let videos = (1...4).map { _ in
            Bundle.main.urls(forResourcesWithExtension: "mov", 
                                          subdirectory: nil)![Int(arc4random_uniform(UInt32(4)))]
        }
    
        viewOne.player = AVQueuePlayer(url: videos[Int(arc4random_uniform(UInt32(4)))])
        let item = AVPlayerItem(url: videos[Int(arc4random_uniform(UInt32(4)))])
        playerLooper = AVPlayerLooper(player: viewOne.player as! AVQueuePlayer, templateItem: item)
        viewOne.player?.actionAtItemEnd = .advance
        viewOne.controlsStyle = .none

        NotificationCenter.default.addObserver(self, 
                                     selector: #selector(loopSequence), 
                                         name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, 
                                       object: viewOne.player?.currentItem)
    
        func loopSequence() {
            self.viewOne.player?.pause()
            self.viewOne.player?.currentItem?.seek(to: kCMTimeZero, completionHandler: nil)
            self.viewOne.player?.play()
        }
        loopSequence()
    }
}

最佳答案

在找到之前已经回答过的解决方案并将其发布在评论中后,@andy 让我将其作为解决方案发布。 HERE是 Harish 先前的回答,解决了他的问题。

关于objective-c - AVPlayerLooper 不会循环播放多个视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49148442/

相关文章:

ruby - 错误信息 : -bash:/etc/profile. d/rvm.sh: 没有那个文件或目录

macos - 全局鼠标事件处理类似于 MacO 的内置屏幕截图功能

objective-c - 你怎么知道一个 NSObject 是否有某个属性?

objective-c - @protocol 扩展@protocol

ios - 如何仅旋转子类 mpmovieplayer Controller 并将其他 View 固定为纵向

uiviewcontroller - 属性未在 super.init 调用时初始化

swift - 如何在透明度降低的 SwiftUI 中获取菜单项的重音背景?

ios - Swift-从 ViewController 转到 UITabBarController 页面

ios - 创建自定义日历

python - easy_install : ImportError: Entry point ('console_scripts' , 'easy_install' ) 未找到