的iPhone4,的iOS 4.3.3,iOS版SDK4.3的MPMoviePlayerController - 持续时间始终为0
大家好,
我创建的视频上传功能。这些视频使用UIImagePickerController进行检索,可以使用相机捕捉或从照片库中挑选。我有一个60秒的应用程序限制最大持续时间。记录通过使用相机的视频时,这是很容易实现:
//限制视频到60秒
[拾取器setVideoMaximumDuration:60];
然而,当视频被从照片库中选择我看到获得的持续时间的唯一方法是通过的MPMoviePlayerController duration属性如下:
//的MediaType可以kUTTypeImage或kUTTypeMovie。
NSString * mediaType = [info objectForKey:UIImagePickerControllerMediaType]; NSLog(@“%@”,mediaType);
//如果一部电影
if ([mediaType isEqualToString:(NSString*)kUTTypeMovie]) {
// get the URL
NSURL* mediaURL = [info objectForKey:UIImagePickerControllerMediaURL];
NSLog(@"%@",mediaURL);
// can use MPMoviePlayerController class to get duration
int duration = -1;
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: mediaURL];
if (moviePlayer != nil) {
duration = moviePlayer.duration;
NSString *path = moviePlayer.contentURL;
[moviePlayer release];
}
但持续时间始终是0。我知道,因为在照片库中选择它时,时间显示为字幕的部分视频的持续时间。我知道持续时间可能并不总是可用,但在这种情况下,持续时间显示在照片库中。我也检查了contentURL属性,它有很好的价值。我能够检索文件,获取其文件大小等,所以我知道文件的NSURL是好的...
谢谢!
您可以听取MPMovieDurationAvailableNotification。这就需要你将moviePlayer保持足够长的时间,以确定持续时间。照片库可能使用缓存值。 – omz 2011-05-12 19:51:48
@imobilizer如果以下答案有帮助,请标记为已接受。 – memmons 2014-04-02 17:14:55