【发布时间】:2017-07-31 20:06:38
【问题描述】:
我正在尝试通过听筒扬声器播放音频,它工作正常。相同的代码在以下情况下不起作用。
- 打开相机录制视频
- 不要开始录制,而是取消它
- 然后,尝试通过听筒播放音频不起作用。它正在通过主扬声器播放
这是我通过耳机播放音频的代码。
-(void)initialAVaudioPlayer
{
if (player==nil) {
NSError *error = nil;
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
[session setActive: YES error:nil];
AVAudioSessionPortDescription *routePort = session.currentRoute.outputs.firstObject;
NSString *portType = routePort.portType;
if ([portType isEqualToString:@"Receiver"]) {
[session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];
} else {
[session overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:&error];
}
NSString *path;
NSError *err;
NSString *name;
name = @"referenceaudio";
path = [[NSBundle mainBundle] pathForResource:name ofType:@"wav"];
if ([[NSFileManager defaultManager]fileExistsAtPath:path]) {
NSURL *url = [NSURL fileURLWithPath:path];
player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&err];
if (!err) {
player.numberOfLoops = -1;
}
else{
//NSLog(@"%@",[err description]);
}
}
}
}
这是代码,当用户按下取消时,
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
NSLog(@"here");
[self dismissViewControllerAnimated:YES completion:nil];
}
【问题讨论】:
标签: ios objective-c audio avaudiosession