2015-08-29 153 views
4

我的应用程序中有一些警告声音,但我确实需要背景音乐(例如Spotify)才能在后台运行。我通过iOS 9在静音模式下播放音频,但保持其他应用程序的音乐播放运行

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil]; 

解决了这个然而,在静音模式我AVAudioPlayer s为静音,但声音是至关重要的,即使在静音模式。我读了AudioServicesPlaySystemSound忽略静音模式,但它不,至少不在iOS9上。

还有其他的可能吗?哦,并且请通过说“我会讨厌这个用户”,“不是所谓的无声模式”这样的东西来浪费你的时间,...这是一个编程页面,而不是哲学课。

回答

6

音频会话范畴AVAudioSessionCategoryAmbient将服从铃声/静音开关的文档中所述 -

AVAudioSessionCategoryAmbient 类别的应用程序中的声音播放非主,也就是说,你的应用程序可以在声音关闭时成功使用...

...您的音频通过屏幕锁定和静音开关(称为iPhone上的铃声/静音开关)静音。

我建议尝试更适合的类别中包含混合选项 -

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback 
           withOptions:AVAudioSessionCategoryOptionMixWithOthers 
             error:nil]; 

AVAudioSessionCategoryPlayback类别在文档中提到会忽略无声开关 -

当使用这一类,您的应用音频会继续,无声开关会设置为无声或屏幕锁定。

+0

优秀的答案! – user2875404

+0

这是否仍然适用于iOS 9?当我在通用汽车上试用这款产品时,它不再起作用,而且只是振动。 – lammert