【发布时间】:2013-11-21 10:58:12
【问题描述】:
我有两段代码:
代码 1 - 这是通过入耳式扬声器播放音乐文件:
NSString *tileDirectory = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"8Ocean.mp3"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:tileDirectory];
NSError *error=nil;
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:&error];
if(!error)
{
[self.audioPlayer prepareToPlay];
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
[self.audioPlayer play];
}
else
{
NSLog(@"%@",error.localizedDescription);
}
代码 2- 这是在通话期间播放音乐文件(根据通话期间的用户设置路由到入耳式或免提电话)
NSString *tileDirectory = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"8Ocean.mp3"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:tileDirectory];
NSError *error=nil;
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:&error];
if(!error)
{
[self.audioPlayer prepareToPlay];
self.audioPlayer.volume=10.0;
UInt32 sessionCategory = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
[self.audioPlayer play];
}
else
{
NSLog(@"%@",error.localizedDescription);
}
我的问题是:
代码 1 和 2 可以独立运行。但是,使用code 1之后,code 2就完全不行了(除非app被杀掉重启)
我已经尝试了所有我能想到的方法,但无法确定问题出在哪里。
【问题讨论】:
-
请用适当的格式安排您的代码,并说明您想用它实现什么
-
我想为用户提供随时通过入耳式扬声器播放音乐的能力。即使在通话期间,用户也可以通过入耳式扬声器播放音乐(如果用户决定在免提电话上进行通话,那么音乐也会在免提电话上播放)。”
标签: ios objective-c audio core-audio avaudioplayer