0

我在设置 AVQueuePlayer 视频的偏移量时遇到问题。我已经尝试过 seek( 来设置视频的偏移量,但它似乎不起作用。视频总是从 0 秒开始。其他要求是通过控制播放它并循环播放,这些都可以正常工作。

我很喜欢从 0 秒以外的任何其他时间播放视频。

    func getVideoView() -> UIView
    {

    var videoViewContainer = UIView(frame: CGRect(x: 0, y: 0, width: 375, height: 375))

    let videoUrl = URL(string: "https://myvideourl.mp4")

    let item = AVPlayerItem(url: videoUrl!)

    player = AVQueuePlayer()

    playerLooper = AVPlayerLooper(player: player!, templateItem: item)

    let time =  CMTime(seconds: 17.000000, preferredTimescale: CMTimeScale(1))

    player?.seek(to: time, completionHandler: { (handler) in


    } )

    item.forwardPlaybackEndTime = CMTimeMake(20, 1) // For playing it for 20 Seconds

    let layer: AVPlayerLayer = AVPlayerLayer(player: player)


    layer.frame = videoViewContainer.bounds

    layer.videoGravity = AVLayerVideoGravity.resizeAspectFill

    videoViewContainer.layer.addSublayer(layer)

    player?.play()



    return videoViewContainer
}
4

1 回答 1

0

我得到了答案。与 AVPlayerLooper 一起使用时,SeekTo 似乎不起作用。

AVPlayerLooper 本身有一个属性时间范围。下面给出的示例

    playerLooper = AVPlayerLooper(player: self.player!,
                            templateItem: item!, 
                               timeRange: CMTimeRange(start: CMTime(seconds: Double(start), preferredTimescale: 1) , duration: CMTime(seconds: Double(duration), preferredTimescale: 1)))
于 2019-01-18T09:46:27.713 回答