2011-06-23 12 views
1

私は奇妙なMPMoviePlayerControllerの動作をしています。 UIImagePickerControllerのカメラロールから選択した映画を再生したくない。しかし、私はUIImagePickerControllerで映画をキャプチャ - 時にはMPMoviePlayerControllerで再生されます。MPMoviePlayerControllerは、UIImagePickerControllerから取得したムービーを再生しません。

これは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]; 

これはある - (無効)imagePickerController:(UIImagePickerController *)ピッカーdidFinishPickingMediaWithInfo:(NSDictionaryの*)情報デリゲートメソッド:

- (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が=図書館、パスが正しく見え、映画の後半に現れ、消えるとき:

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

が任意のアイデアをお持ちですか?

答えて

1

問題は明らかではありません。メディアピッカーを解放した後の古いiPhoneデバイスも、保存されたファイルを削除しようとします。だから私は適切に使用するために私は前にドキュメントフォルダ(例えば)にそれをコピーし、ムービープレーヤーにビデオを設定します。 4.3以降のデバイスにはこの問題はありません。

3

私はまったく同じコードがiPhone 4

にうまく働いている間イメージピッカーが適切にビデオを返した後にリリースされていなかったことが判明し、iPad 2の上でのみ発生し、同じことをしていました。

didFinishPickingMediaWithInfoコールバックに[picker release]を追加してみてください。

+0

ありがとうございました。 [ピッカーの解放]が私の問題を解決しました。 – konradowy

+0

@mikewoz:ありがとうございました。私はこれがiPad上で助けることができると信じていますが、このアプローチはiPhone 3Gおよび3GSデバイスの問題を解決しません。私のアプリはiPad(iPhoneの上位3G)でもレガシーデバイスでも動作するはずなので、今はプレビュー用にサムネイル画像を一時的に使用しています。 – SVGreg

関連する問題