一个系统声音忽略了音量级别。

5

我正在开发一个游戏,但遇到了声音的问题。

当玩家按下按钮时,我使用系统声音来确认操作。这些声音会尊重玩家设置的音量,当其他声音正在播放时(我使用AVAudioPlayerAudioQueue)。但是当只有系统声音需要播放时,它会忽略玩家设置的音量并以铃声音量播放。

如何强制系统声音在没有其他声音播放时也尊重玩家设置的音量?


这是一个老问题,但你考虑过后台运行一个虚拟的 AVAudioPlayer 吗(使用一个非常短的样本和循环播放器)。这很傻并且浪费资源,但应该可以解决问题。还有:是的,这很烦人! - kritzikratzi
@Aleksejs:你解决了这个问题吗?我也遇到了同样的问题,如果可能的话,我想避免使用AVAudioPlayer hack。 - Michael
@Michael Noup,我一直在使用AVAudioPlayer来播放背景音乐。我不知道其他解决方案。 - Aleksejs Mjaliks
2个回答

5

假设您的意思是玩家正在使用设备上的侧面音量按钮设置音量:

我曾经遇到同样的问题,但在“设置”/“声音”/“铃声和警告声”/“按键改变”中找到一个默认为“关闭”的设置。将其切换到“开启”后就可以解决问题。


我希望苹果没有在iOS更新中悄悄禁用该设置以展示该功能。我可以看出在极少数情况下它可能很有用,但对我来说却很麻烦。 - Timmah

0

你的玩家(我假设你指的是玩游戏的人)是通过设备音量控制还是通过你的应用程序界面来设置音量?如果是后者,那么这不起作用,因为系统声音应该始终在设备音量下播放。

根据多媒体编程指南,"声音以当前系统音频音量播放,没有可用的编程音量控制。"

我不知道为什么当AVAudioPlayer声音正在播放时,你的系统声音会改变音量。如果是这种情况,你可以在不播放其他声音时循环播放一个静音声音。否则,我建议你使用AVAudioPlayer播放所有声音,这样你就可以直接控制音量。


玩家可以使用iPhone侧面的音量按钮来控制音量。 - Aleksejs Mjaliks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接