在电话呼叫 iOS sdk 期间播放音乐文件的问题
Posted
技术标签:
【中文标题】在电话呼叫 iOS sdk 期间播放音乐文件的问题【英文标题】:Issue with playing music file during a phone calling iOS sdk 【发布时间】: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被杀掉重启)
我已经尝试了所有我能想到的方法,但无法确定问题出在哪里。
【问题讨论】:
请用适当的格式安排您的代码,并说明您想用它实现什么 我想为用户提供随时通过入耳式扬声器播放音乐的能力。即使在通话期间,用户也可以通过入耳式扬声器播放音乐(如果用户决定在免提电话上进行通话,那么音乐也会在免提电话上播放)。” 【参考方案1】:您的应用需要处理来自电话的音频会话中断,以免您的应用中断音频处理。
【讨论】:
hotpaw2: 能否请您详细说明一下电话中出现这种情况的音频中断。如果您在这里传递一些代码,那将是一个很大的帮助。非常感谢:)以上是关于在电话呼叫 iOS sdk 期间播放音乐文件的问题的主要内容,如果未能解决你的问题,请参考以下文章
呼叫者没有从opentok ios sdk中的接收者获得结束呼叫事件