iphone MPMoviePlayerViewController:提取总持续时间

时间:2012-01-18 12:53:19

标签: iphone mpmovieplayercontroller

在MPMoviePlayerViewController中播放视频之前,如何获取视频的总时间?

4 个答案:

答案 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)
    }