【问题标题】:MPMoviePlayerController do not play movie picked from UIImagePickerControllerMPMoviePlayerController 不播放从 UIImagePickerController 挑选的电影
【发布时间】:2011-06-23 14:02:12
【问题描述】:

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

这是 UIImagePickerController 初始化:

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,然后委托返回下一个路径并正常播放:

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

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

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

有什么想法吗?

【问题讨论】:

    标签: iphone ios mpmovieplayercontroller


    【解决方案1】:

    我有同样的事情,只发生在 iPad 2 上,而相同的代码在 iPhone 4 上运行良好。

    返回视频后发现图像选择器没有正确释放。

    尝试在 didFinishPickingMediaWithInfo 回调中添加 [picker release]。

    【讨论】:

    • 非常感谢您的回答。 [picker release] 解决了我的问题。
    • @mikewoz:谢谢你的想法。我相信这可以在 iPad 上有所帮助,但这种方法不能解决 iPhone 3G 和 3GS 设备上的问题。现在我暂时使用缩略图进行预览,因为我的应用程序应该可以在 iPad(iPhone 上 3G)以及旧设备上运行。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多