我正在開發一個應用程序,我需要從FOR循環播放視頻,即按照循環的每次迭代中提供的字符串播放本地視頻。Swift:從for循環開始輪流播放視頻
問題是當我從循環中調用playVideo()func時,所有視頻都同時播放。我希望他們一個接一個地玩,然後解散AVPlayerLayer,即從超級玩家身上移除。 播放單個視頻時,playerLayer會被解散,但如果播放多個視頻,playerLayer將保持不變。
如何讓他們一個接一個玩?
我已閱讀關於使用調度隊列,但不太瞭解他們。
代碼:
func parseString(string: String){
var stringArray = string.componentsSeparatedByString(" ")
logTextView.text = ""
for i in 0..<stringArray.count{
playVideo(stringArray[i].lowercaseString)
}
}
var player: AVPlayer!
var playerLayer: AVPlayerLayer!
// video player
private func playVideo(name: String) {
guard let path = NSBundle.mainBundle().pathForResource(name, ofType:"mp4") else {
print("file not found")
return
}
player = AVPlayer(URL: NSURL(fileURLWithPath: path))
playerLayer = AVPlayerLayer(player: player)
// playerController.player = player
self.playerLayer.frame = self.view.bounds
self.view!.layer.addSublayer(self.playerLayer)
self.player!.play()
// playing = true
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.playerDidFinishPlaying(_:)),
name: AVPlayerItemDidPlayToEndTimeNotification, object: player.currentItem)
}
func playerDidFinishPlaying(note: NSNotification) {
print("Video Finished")
self.playerLayer.removeFromSuperlayer()
// playing = false
}
任何幫助,將不勝感激
不要將您的代碼作爲鏈接並[創建最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve),其中指出了您的問題。 –
用代碼替換了鏈接。問題可以理解嗎? –
其實,我不知道ios,它只是審查你的第一篇文章,並從下來的投票中拯救你:) –