2017-07-16 12 views
0

私は、ユーザーがボタンをクリックするたびにビデオの10%をAVPlayerで転送する機能を探しています(10%+別の10%の次のクリック+別の10%の次のクリックなど)をビデオの現在の状態から削除します。これまでのところ、seek(to:CMTimeMakeWithSeconds(seconds: Float64, preferredTimescale: Int32)が見つかりましたが、特定の時間ではなく、毎回特定の時間にビデオを移動します。AVPlayer特定の時間でスキップする

お願いします。

答えて

1

あなただけスウィフト3で、それはこのようなものが好き必要があり、いくつかの簡単な数学の手順を実行する必要があります。非公式の、アクションでAVPlayerの偉大例えば

private func skipBy(percentage: Float64) { 

    guard let durationTime = player.currentItem?.duration else { return } 

    // Percentage of duration 
    let percentageTime = CMTimeMultiplyByFloat64(durationTime, percentage) 

    guard percentageTime.isValid && percentageTime.isNumeric else { return } 

    // Percentage plust current time 
    var targetTime = player.currentTime() + percentageTime 
    targetTime = targetTime.convertScale(durationTime.timescale, method: .default) 

    // Sanity checks 
    guard targetTime.isValid && targetTime.isNumeric else { return } 

    if targetTime > durationTime { 
     targetTime = durationTime // seek to end 
    } 

    player.seek(to: targetTime) 
} 

をオープンソースを参照して、コミュニティ開発WWDC app

関連する問題