MPMoviePlayerController不播放从UIImagePickerController拾取的电影 [英] MPMoviePlayerController do not play movie picked from UIImagePickerController

查看:113
本文介绍了MPMoviePlayerController不播放从UIImagePickerController拾取的电影的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有奇怪的MPMoviePlayerController行为.它不想播放仅从UIImagePickerController的相机胶卷"中选择的电影.但是,当我使用UIImagePickerController捕获电影时-有时可以在MPMoviePlayerController中正常播放.

I have strange MPMoviePlayerController behavior. It don't want to play movies just chosen from UIImagePickerController's Camera Roll. But when I capture movie with UIImagePickerController - sometimes it plays in MPMoviePlayerController fine.

这是UIImagePickerController初始化:

This is UIImagePickerController initialization:

mediaPickerController = [[[UIImagePickerController alloc] init] autorelease];
NSArray *types = [UIImagePickerController availableMediaTypesForSourceType:sourceType];
mediaPickerController.sourceType = sourceType;
mediaPickerController.mediaTypes = types;
mediaPickerController.videoQuality = qualityType;
mediaPickerController.delegate = self;
[self presentModalViewController:mediaPickerController animated:YES];   

这是-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 委托方法:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSURL *fileURL = [info objectForKey:UIImagePickerControllerMediaURL];
    playerView = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
    [playerView.view setFrame:mediaPreview.bounds];
    [playerView setScalingMode:MPMovieScalingModeAspectFit];
    [playerView setControlStyle:MPMovieControlStyleEmbedded];
    [playerView setShouldAutoplay:NO];
    [playerView prepareToPlay];
    [mediaPreview addSubview:playerView.view];
}

另一个奇怪的问题-当我使用UIImagePickerController的sourceType = Camera时,委托返回下一个路径并正常播放:

Another strange issue - when I use UIImagePickerController's sourceType = Camera, then delegate return next path and plays fine:

UIImagePickerControllerMediaURL = "file://localhost/private/var/mobile/Applications/XXXXX-XXXXX/tmp/capture-T0x127bb0.tmp.5gFkOo/capturedvideo.MOV"

但是当sourceType = Library时,路径看起来不正确,电影会在半秒钟后出现并消失:

but when sourceType = Library, path looks incorrect and movie appears at half second and disappears:

UIImagePickerControllerMediaURL = "file://localhost/private/var/mobile/Applications/XXXXX-XXXXX/tmp//trim.ZPeyTU.MOV"

有什么想法吗?

推荐答案

问题非常明显.释放媒体选择器后,较旧的iPhone设备也会尝试删除保存的文件.因此,为了正确使用它,我之前将其复制到了Documents文件夹(例如),然后将视频设置为电影播放器​​. 4.3之后的设备没有这个问题.

The issue is pretty non obvious. The older iPhone devices after releasing of media picker tries to delete saved file also. So to use it properly I copy it to Documents folder (for example) before and then set video to movie player. Devices after 4.3 hasn't this problem.

这篇关于MPMoviePlayerController不播放从UIImagePickerController拾取的电影的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆