録画したビデオのプレビューを可能にするプレーヤー (MPMoviePlayerController) を追加するために、AVCam デモ サンプルで遊んでみました
xib に再生ボタンを追加し、対応する IBOutlet と IBActions + プレーヤーを追加しました。
@property (nonatomic,retain) IBOutlet UIBarButtonItem *playerButton;
@property (nonatomic, assign) MPMoviePlayerController *player;
- (IBAction)playVideo:(id)sender;
viewdidload でプレーヤーを初期化します。
player = [[MPMoviePlayerController alloc] init];
プレイアクションは以下の通り
- (IBAction)playVideo:(id)sender {
if(player) {
[player stop];
}
// Create a new movie player object.
[player setContentURL:[[[self captureManager] recorder] outputFileURL]];
player.movieSourceType = MPMovieSourceTypeFile;
[player prepareToPlay];
CGRect viewInsetRect = CGRectMake( 0, 0, 200, 300);
// Inset the movie frame in the parent view frame.
[[player view] setFrame:viewInsetRect];
player.scalingMode = MPMovieScalingModeAspectFill;
player.controlStyle = MPMovieControlStyleNone;
//player.useApplicationAudioSession = NO;
//[self.view addSubview: [_player view]];
[self.view addSubview:player.view];
if(player) {
[player play];
}
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playComplete) name:MPMoviePlayerPlaybackDidFinishNotification object:player];
}
そして、再生が終了したときに呼び出される playComplete:
-(void)playComplete {
[player.view removeFromSuperview];
}
結果: アプリを起動すると、好きなだけビデオを録画できます。最後に録画したビデオを再生すると、問題なく再生できますが、ビデオを再生した後、再度録画しようとすると、録画を開始するとすぐに次のエラーが発生します。
Error Domain=AVFoundationErrorDomain Code=-11803 "Cannot Record" UserInfo=0x152e60 {NSLocalizedRecoverySuggestion=Try recording again., AVErrorRecordingSuccessfullyFinishedKey=false, NSLocalizedDescription=Cannot Record}
一時出力ファイルに問題があると思いましたが、そうではないようです。
MPMoviePlayerController を導入すると、アプリの動作が何らかの形で壊れてしまうのではないかと思っています。
あなたの何人かは何か考えがありますか?
ありがとう
P