2017-05-30 9 views
1

私はプレーヤーを作っています。すべてのファイルをリストし、すべてのファイルの前にビデオの長さを表示したいと思います。ビデオの正確な長さを取得

唯一の問題は、適切な動画の再生時間が得られないことです。再生時間が完全に間違っていることがあります。

私は以下のソリューションを試してみた:

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私を返します。 11分78秒の動画はどうでしたか?

だから私は、問題はビデオであると思うし、私は午前1時16分の別のビデオを拾い、再び返された値が1時26分(10秒間違った)である

+0

https://stackoverflow.com/questions/31157526/how-to-get-video-full-duration-and-current-playing-time –

+0

私はすでに試してみたことがあります。時間はクレイジーな値を保持しています@エリックAya –

答えて

4

これが私の作品:

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"が表示されます。

+0

あなたのコードを貼り付けてコピーしました.1行を変更しないでください。継続時間は11分のビデオで707です。したがって、707を60で割って11.78を返します。何か間違っています。あなたの答えは良いですが、私の問題を解決できないので、私は努力し続けます。 thxs –

+1

ビデオの長さが11分47秒であれば、707が正しいです。 707秒は11.78分です。 –

+0

しかし、正しい時刻は11:47で、これをどうやって得るのですか(11:47)、私は何かを理解していないか何かを見逃しているかどうかわかりません、あなたは@DavidShawを説明できますか? –

関連する問題