2012-02-15 18 views
2

私は、MPMoviePlayerControllerを使用してURLからビデオを再生する必要があるアプリケーションを開発しています。AudioQueueで録画中にMPMoviePlayerControllerでビデオを再生する

問題は、ビデオの再生が開始されたとき(および終了したとき)に記録できないということです。単にオーディオサンプリングが停止します。代わりに、私がビデオ再生を無効にすると、オーディオ録音がうまくいっています。 プロパティkAudioSessionProperty_OverrideCategoryMixWithOthersを持つAudioSessionをセットアップしようとしましたが、成功しませんでした(エラーを返します)。さらに、AudioQueueを使用しているときは、AudioSessionのプロパティを設定することは役に立たないと思います。 MPMoviePlayerControllerにuseApplicationAudioSession = NOを設定しても、何の助けも得られません。これによって

プレイヤーが作成されたコアコード:あなたは正しい道にいる

audioManager = [[AudioController alloc] init]; 
    //setting AudioQueue: audio buffer, sample rate, format ID (PCM), bits per channel 
    audioManager.delegate = self; 
    [audioManager startAudioRecording]; //starts recording with AudioQueue 
    self.playerVC = [[[MPMoviePlayerController alloc] init] autorelease]; 
    layerVC.view.frame = self.viewPlayer.bounds; 
    [self.viewPlayer addSubview:playerVC.view]; 
    playerVC.useApplicationAudioSession = YES; //if NO nothing changes 
    [playerVC setContentURL:[NSURL URLWithString:@"http://www......."]]; 
    [playerVC prepareToPlay]; 
    [playerVC play]; 

答えて

2

。 最初に、kAudioSessionProperty_OverrideCategoryMixWithOtherをtrueに設定します。これにより、アプリのサウンドと他のアプリのサウンドとのミックスが可能になります。その後

UInt32 allowMixing = true; 
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(allowMixing), &allowMixing); 

、アプリのAudioSession使用しないようにMPMoviePlayerControllerを設定する必要があります。

[yourMPMoviePlayerControllerInstance setUseApplicationAudioSession:NO]; 
+0

[yourMPMoviePlayerControllerInstance setUseApplicationAudioSession:NO]を。私がこのラインを使用した場合、レコーダーは再生されませんでした。 – Jitendra

関連する問題