1

ビデオ ライブラリからビデオをフェッチするか、新しいビデオを録画する作業を行っています。イメージ ピッカー メソッドで選択すると、メディアを使用して終了情報が選択されます。ビデオ アルバムから選択されたビデオの期間と、カメラから記録されたビデオを見つける必要があります。AVAsset を使用して CMTime の期間を取得しましたが、MPMoviePlayer を参照してビデオの期間を取得しましたが、そのようなプロパティは提供されません。

どんな助けでもいただければ幸いです

よろしく

4

4 に答える 4

1
NSURL *recordedTmpFile = [info objectForKey:UIImagePickerControllerMediaURL];

AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:recordedTmpFile];

CMTime duration = playerItem.duration;
float seconds = CMTimeGetSeconds(duration);
于 2012-08-06T10:51:07.417 に答える
0

MPMoviePlayerController にはプロパティ duration があります。

@property (nonatomic, readonly) NSTimeInterval duration

このプロパティは読み取り専用であることに注意してください。

ドキュメントによると

映画の長さが不明な場合、このプロパティの値は 0.0 です。その後継続時間が決定されると、このプロパティが更新され、MPMovieDurationAvailableNotification 通知がポストされます。

しかし、なぜ MPMoviewPlayerController を好むのでしょうか? このタイプの操作では、AVFoundation の方がはるかに高速です。また、MPMoviewPlayerController のように通知を待つ必要はありません。

AVAssetを経由したい場合。正確な答えは次のとおりです: MPMoviePlayerController - Duration always 0

于 2012-08-06T10:50:34.730 に答える