2012-02-15 136 views
2

记录我发展,需要从使用的MPMoviePlayerController在获取使用AudioQueue从麦克风音频样本,进一步分析他们的URL播放视频的应用程序一段时间。玩的MPMoviePlayerController视频与AudioQueue

的问题是,当视频开始播放(并且当它完成)我不能记录。只需停止音频采样。相反,如果我禁用了视频播放功能,录音就会顺利进行。 我试着建立一个AudioSession财产kAudioSessionProperty_OverrideCategoryMixWithOthers但没有成功(返回错误)。而且我认为这是无用的使用AudioQueue时AudioSession设置属性。即使设置useApplicationAudioSession = NO供的MPMoviePlayerController没有给予任何帮助。

特此在其中创建播放器的核心代码:

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); 

之后,您将需要设置的MPMoviePlayerController不使用你的应用程序的AudioSession:

[yourMPMoviePlayerControllerInstance setUseApplicationAudioSession:NO]; 
+0

[yourMPMoviePlayerControllerInstance setUseApplicationAudioSession:NO];如果我使用这条线我的记录器没有播放。 – Jitendra 2014-03-21 13:26:28

相关问题