私はプレーヤーを作成していて、すべてのファイルをリストし、すべてのファイルの前に、ビデオの長さを提示したいと考えています。
唯一の問題は、適切なビデオの長さが得られないことです。時々、それは完全に間違った長さを返します。
私は以下の解決策を試しました:
let asset = AVAsset(url: "video.mp4")
let duration = asset.duration.seconds
そのため、時間は時々別の値を与えることがあります。誰かが可能な解決策を知っているなら、私は聞いてうれしいです。
1つの可能な解決策を使用してコードを更新しましたが、うまくいきませんでした。
let asset = AVAsset(url: url)
let duration = asset.duration
let durationTime = CMTimeGetSeconds(duration)
let minutes = Double(durationTime / 60)
私は11:47分の動画を試してみましたが、11:78が返されました。
だから私は問題がビデオにあると思います、そして私は1:16分の別のビデオを選びました、そして再び戻り値は1:26です(10秒は間違っています)
これは私にとってはうまくいきます:
import AVFoundation
import CoreMedia
...
if let url = Bundle.main.url(forResource: "small", withExtension: "mp4") {
let asset = AVAsset(url: url)
let duration = asset.duration
let durationTime = CMTimeGetSeconds(duration)
print(durationTime)
}
ビデオの場合 here 正しい "5.568"が出力されます。
コメントから編集:
707
で割ると60 sec/min
秒を返す動画は11.78
です。これは11.78分、つまり11分で、0.78min * 60sec/min = 47sec
の合計は11 min 47 sec
です