![]() |
1
4
好吧,再加上乔纳森·沃特莫尔的回答,实际上似乎不可能让音频服务系统覆盖静音开关。我最后做的是使用Openal来播放声音,它将按照您指定的音频会话类别播放。以下是如何设置音频会话:
为了播放声音,我用 Finch 一个简单的基于Openal的iPhone音效播放器。 |
![]() |
2
1
我还没有尝试过,但您可能需要更改已加载声音的属性: KaudioServicesPropertiesIsound uint32值,其中1 意味着,对于通过Inspector参数传递的系统声音指定的音频文件,系统声音服务器尊重“声音效果”首选项中的用户设置,并且在用户关闭“声音效果”时静音。 . 默认情况下,此属性设置为1。 将其设置为0,以便系统声音在传递到audioservicesplaysystemsound时始终播放,而不考虑用户在“声音首选项”中的设置。 . 适用于iPhone OS 2.0及更高版本。 在audioservices.h.中声明。 我希望在做了所有其他正确的事情之后,将属性设置为0将告诉系统您的声音是应用程序声音,而不是“用户界面”声音,因此会受到静音的影响。 编辑:看起来不能用系统声音来完成。如果您通过openal,显然可以使用静音按钮组进行播放。 我构建了SysSound示例,并添加了以下代码来设置标志,就像上面所做的那样,它根本不在静音状态下播放。
|
![]() |
3
0
你在呼唤 setActive:error: 在某个地方讨论这个话题,对吧?这是我用来初始化的代码。但我不使用系统声音,我使用avaudioplayer来播放声音。
|
![]() |
4
0
我在文档中找不到明确提到的,但我希望audioServicesPlaysSystemsound()忽略您的音频会话配置。 如果要控制会话混合和其他属性,则需要改用avaudioplayer,例如:
|
![]() |
5
0
我使用下面的代码来解决我的问题
|