在iPhone中logging来自蓝牙耳机的input

我有一个项目,我必须logging来自蓝牙耳机的声音,并使用默认的iPhone扬声器播放。 我搜查了很多,得到了这个代码。

UInt32 allowBluetoothInput = 1; AudioSessionSetProperty ( kAudioSessionProperty_OverrideCategoryEnableBluetoothInput, sizeof (allowBluetoothInput), &allowBluetoothInput ); 

————录音机启动和停止的代码————

 - (IBAction)Record: (id)sender { UIButton *btn = (UIButton *)sender; if([btn isSelected]) { [audioRecorder stop]; [btn setSelected:NO]; [btn setTitle:@"Start Recording" forState:UIControlStateNormal]; } else { [audioRecorder record]; [btn setSelected:YES]; [btn setTitle:@"Stop Recording" forState:UIControlStateNormal]; } } 

在这之后我正在使用avaudiorecorder。 在这里似乎还有其他的东西。

——–录音机代码———

 NSURL *soundFileURL = [NSURL fileURLWithPath:AUDIO_FILE]; NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:AVAudioQualityMin], AVEncoderAudioQualityKey, [NSNumber numberWithInt:16], AVEncoderBitRateKey, [NSNumber numberWithInt: 2], AVNumberOfChannelsKey, [NSNumber numberWithFloat:44100.0], AVSampleRateKey, nil]; NSError *error = nil; audioRecorder = [[AVAudioRecorder alloc] initWithURL:soundFileURL settings:recordSettings error:&error]; if (error) { NSLog(@"error: %@", [error localizedDescription]); } else { [audioRecorder prepareToRecord]; } 

我想我错过了其他的东西,需要在这里添加。 我只想要蓝牙耳机inputaudio。 任何帮助,将不胜感激。

提前致谢!!

我只是检讨你的问题,并得到很好的答案,你想与贝娄代码尝试: –

 // create and set up the audio session AVAudioSession* audioSession = [AVAudioSession sharedInstance]; [audioSession setDelegate:self]; [audioSession setCategory: AVAudioSessionCategoryPlayAndRecord error: nil]; [audioSession setActive: YES error: nil]; // set up for bluetooth microphone input UInt32 allowBluetoothInput = 1; OSStatus stat = AudioSessionSetProperty ( kAudioSessionProperty_OverrideCategoryEnableBluetoothInput, sizeof (allowBluetoothInput), &allowBluetoothInput ); NSLog(@"status = %x", stat); // problem if this is not zero // check the audio route UInt32 size = sizeof(CFStringRef); CFStringRef route; OSStatus result = AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &size, &route); NSLog(@"route = %@", route); // if bluetooth headset connected, should be "HeadsetBT" // if not connected, will be "ReceiverAndMicrophone" // now, play a quick sound we put in the bundle (bomb.wav) CFBundleRef mainBundle = CFBundleGetMainBundle(); CFURLRef soundFileURLRef; SystemSoundID soundFileObject; soundFileURLRef = CFBundleCopyResourceURL (mainBundle,CFSTR ("bomb"),CFSTR ("wav"),NULL); NSError *error = nil; audioRecorder = [[AVAudioRecorder alloc] initWithURL:soundFileURLRef settings:recordSettings error:&error]; if (error) { NSLog(@"error: %@", [error localizedDescription]); } else { [audioRecorder prepareToRecord]; } 

信贷去这个

将audio会话添加到您的代码

 // create and set up the audio session AVAudioSession* audioSession = [AVAudioSession sharedInstance]; [audioSession setDelegate:self]; [audioSession setCategory:AVAudioSessionCategoryRecord error:nil]; [audioSession setActive:YES error:nil];