向AVCaptureSession添加音频输入会停止AVPlayer

时间:2011-05-30 13:05:53

标签: iphone avplayer avcapturesession

我正在开发一个音乐应用程序,其中通过使用AVPLayer播放的m4v视频文件显示音乐符号,AVCaptureSession用于预览和录制表演者的视频和音频以及得分。

不幸的是,尽管AVCaptureVideoPreviewLayer在显示乐谱时显示实时视频,但当我尝试将音频输入添加到AVCaptureSession时,AVPlayer会暂停。

我已尝试将单独的AVCaptureSession用于预览图层和录音,但这似乎没什么区别。

我是在尝试做不可能的事情,还是有办法同时播放视频/音频和录制视频/音频。

据我所知,Skype和Facetime的相似之处(尽管不完全相同)。

3 个答案:

答案 0 :(得分:0)

将音频会话类别设置为右侧属性PlayandRecord。同时将allowmixwithothers设置为yes。

答案 1 :(得分:0)

试试这个。我刚刚为另一个项目做了它,它的工作原理

-(IBAction)beepingSound2
{
    //do this so that we can hear the scream and record the movie too
    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
    UInt32 doSetProperty = 1;

    AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty);

    [[AVAudioSession sharedInstance] setActive: YES error: nil];

    [myAudioPlayer1 stop];
    NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"long_beep" ofType: @"mp3"];
    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];    
    myAudioPlayer1 = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
    [myAudioPlayer1 play];
}

答案 2 :(得分:0)

我遇到了同样的问题,但似乎在iOS 7中修复了。在iOS 7之前,我可以让AVAudioRecorder与AVPlayer同时工作,但AVCaptureSession不能用于音频。