ios - Swift:从for循环轮流播放视频

标签 ios swift video

我正在开发一个应用程序,我需要从 FOR 循环播放视频,即根据循环每次迭代中提供的字符串播放本地视频。

问题是当我从循环中调用 playVideo() 函数时,所有视频同时播放。我希望他们一个接一个地播放,然后关闭 AVPlayerLayer,即从 super 层中删除。 当播放单个视频时,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
}

如有任何帮助,我们将不胜感激

最佳答案

那就不要使用for循环。获取 int i = 0,然后增加 (i++),直到 i 大于 stringArray.count

if (i == stringArray.count) { 
    //end 
}

playerDidFinishPlaying(note: NSNotification) 调用执行上述执行的函数。 希望这会有所帮助。

关于ios - Swift:从for循环轮流播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40672226/

相关文章:

xcode - 如何将新值附加到解析数据库中已有的值?

ios - 从 UITableView 中的多维数组传递数据

html - 视频无法在浏览器中播放

html - autoplay=1 不适用于 &lt;iframe&gt; 在移动设备中播放视频

javascript - 在自定义html视频播放列表上播放YouTube视频

objective-c - Objective-C : Remotely invalidate a timer

ios - View Controller 的 Swift 方向覆盖

ios - 使用 ccrypto RSA 加密 2500 字节数据

ios - 删除下载到文档目录中的单个文件

ios - UIPickerView 内部静态 UITableViewCell 动画中单元格高度更新问题