Tôi có đầu phát âm thanh có tùy chọn chuyển Đầu ra Âm thanh từ Loa sang Bộ thu/Tai nghe (bất kể tai nghe được kết nối) khi cảm biến tiệm cận thông báo 1. Sau đây là mã của tôi để làm như vậy.Chuyển đổi đầu ra âm thanh giữa Bộ thu và Loa trong iOS7 trở lên?
- (void) switchAudioOutput:(NSString*)output{
AVAudioSession* audioSession = [AVAudioSession sharedInstance];
BOOL success;
NSError* error;
if([output isEqualToString:keAudioOutputReciever]){
//Force current audio out through reciever
//set the audioSession override
success = [audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideNone
error:&error];
if (!success)
NSLog(@"AVAudioSession error overrideOutputAudioPort:%@",error);
//activate the audio session
success = [audioSession setActive:YES error:&error];
if (!success)
NSLog(@"AVAudioSession error activating: %@",error);
else
NSLog(@"AVAudioSession active with override: AVAudioSessionPortOverrideNone");
}else if([output isEqualToString:keAudioOutputSpeaker]){
//set the audioSession override
success = [audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker
error:&error];
if (!success)
NSLog(@"AVAudioSession error overrideOutputAudioPort:%@",error);
//activate the audio session
success = [audioSession setActive:YES error:&error];
if (!success)
NSLog(@"AVAudioSession error activating: %@",error);
else
NSLog(@"AVAudioSession active with override: AVAudioSessionPortOverrideSpeaker");
}
}
Điều này được dựa trên câu trả lời Toggle Button route audio to speaker and receiver và enter link description here. Tôi nhận thấy rằng điều này chỉ buộc các âm thanh để loa một mình nhưng không đảm bảo rằng các tuyến đường đi đến người nhận một mình. Hơn nữa khi chuyển sang loa tôi nhận được lỗi sau:
AVAudioSession error overrideOutputAudioPort:Error Domain=NSOSStatusErrorDomain Code=-50 "The operation couldn’t be completed. (OSStatus error -50.)"
Tôi cũng đang geting lỗi chính xác tương tự. Có ai đó giải quyết vấn đề này không? –