ビデオ ライブラリからビデオをフェッチするか、新しいビデオを録画する作業を行っています。イメージ ピッカー メソッドで選択すると、メディアを使用して終了情報が選択されます。ビデオ アルバムから選択されたビデオの期間と、カメラから記録されたビデオを見つける必要があります。AVAsset を使用して CMTime の期間を取得しましたが、MPMoviePlayer を参照してビデオの期間を取得しましたが、そのようなプロパティは提供されません。
どんな助けでもいただければ幸いです
よろしく
ビデオ ライブラリからビデオをフェッチするか、新しいビデオを録画する作業を行っています。イメージ ピッカー メソッドで選択すると、メディアを使用して終了情報が選択されます。ビデオ アルバムから選択されたビデオの期間と、カメラから記録されたビデオを見つける必要があります。AVAsset を使用して CMTime の期間を取得しましたが、MPMoviePlayer を参照してビデオの期間を取得しましたが、そのようなプロパティは提供されません。
どんな助けでもいただければ幸いです
よろしく
NSURL *recordedTmpFile = [info objectForKey:UIImagePickerControllerMediaURL];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:recordedTmpFile];
CMTime duration = playerItem.duration;
float seconds = CMTimeGetSeconds(duration);
MPMoviePlayerController にはプロパティ duration があります。
@property (nonatomic, readonly) NSTimeInterval duration
このプロパティは読み取り専用であることに注意してください。
ドキュメントによると
映画の長さが不明な場合、このプロパティの値は 0.0 です。その後継続時間が決定されると、このプロパティが更新され、MPMovieDurationAvailableNotification 通知がポストされます。
しかし、なぜ MPMoviewPlayerController を好むのでしょうか? このタイプの操作では、AVFoundation の方がはるかに高速です。また、MPMoviewPlayerController のように通知を待つ必要はありません。
AVAssetを経由したい場合。正確な答えは次のとおりです: MPMoviePlayerController - Duration always 0