Как установить смещение видео в Swift 4? Seke (to :) не работает - PullRequest
0 голосов
/ 16 января 2019

У меня проблема с настройкой смещения видео AVQueuePlayer. Я попытался выполнить поиск (чтобы установить смещение видео, но, похоже, оно не работает. Видео всегда начинается с 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
}

1 Ответ

0 голосов
/ 18 января 2019

Я получил ответ. SeekTo, похоже, не работает при использовании с AVPlayerLooper.

AVPlayerLooper сам по себе имеет временной диапазон свойств. Пример приведен ниже

    playerLooper = AVPlayerLooper(player: self.player!,
                            templateItem: item!, 
                               timeRange: CMTimeRange(start: CMTime(seconds: Double(start), preferredTimescale: 1) , duration: CMTime(seconds: Double(duration), preferredTimescale: 1)))
...