在MPMoviePlayerViewController中播放视频之前,如何获取视频的总时间?
答案 0 :(得分:7)
要获得可以使用的电影的总持续时间:
1)。使用AVPlayerItem
班级和AVFoundation
以及CoreMedia framework
。 (我使用UIImagePickerController
来挑选电影)
#import <AVFoundation/AVFoundation.h>
#import <AVFoundation/AVAsset.h>
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
selectedVideoUrl = [info objectForKey:UIImagePickerControllerMediaURL];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:selectedVideoUrl];
CMTime duration = playerItem.duration;
float seconds = CMTimeGetSeconds(duration);
NSLog(@"duration: %.2f", seconds);
}
2)。 MPMoviePlayerController 有一个属性duration
.Refer Apple Doc
答案 1 :(得分:3)
获取MPMoviePlayerViewController中的总持续时间
MPMoviePlayerViewController *mp;
float seconds =mp.moviePlayer.duration;
注意:以上代码以秒为单位显示相关媒体的总持续时间
答案 2 :(得分:1)
如果您不想从MPMoviePlayerViewController的duration
属性获取总时间(因为这会调出电影播放器UI),您可以创建一个AVAsset
对象,并传入您的视频文件通过文件URL,然后检查duration
属性。
这个技巧只适用于iOS 5(这是AVAsset的assetWithURL:
所带来的)。
答案 3 :(得分:0)
你可以在swift中使用这个方法
func getMediaDuration(url: NSURL!) -> Float64{
var asset : AVURLAsset = AVURLAsset.assetWithURL(url) as AVURLAsset
var duration : CMTime = asset.duration
return CMTimeGetSeconds(duration)
}