【问题标题】:A system sound ignores volume level系统声音忽略音量
【发布时间】:2011-07-25 14:26:07
【问题描述】:

我正在开发游戏。而且我对声音有些问题。

当玩家按下按钮时,我会使用系统声音来确认玩家。当播放其他声音时,这些声音尊重玩家设置的音量(我使用AVAudioPlayers 和AudioQueues)。但是当系统声音只是播放时,它会忽略播放器设置的音量并以铃声的音量播放。

即使没有播放其他声音,如何强制系统声音尊重玩家设置的音量?

【问题讨论】:

  • 这是一个老问题,但您是否考虑过在后台运行一个虚拟的 AVAudioPlayer(带有循环播放器的非常短的示例)。这很愚蠢并且浪费资源,但它应该可以解决问题。另外:是的,这很烦人!
  • @Aleksejs:你有想过这个吗?我遇到了同样的问题,如果可能的话,我想避免 AVAudioPlayer 黑客攻击。
  • @Michael Noup,我一直在使用AVAudioPlayer 作为背景音乐。我不知道这个问题的其他解决方案。

标签: iphone volume system-sounds


【解决方案1】:

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

我在让 SystemSound 尊重音量按钮时遇到了同样的问题,但在“设置”/“声音”/“铃声和警报”/“使用按钮更改”中找到了默认设置为“关闭”的设置。将其切换为“ON”使其工作。

【讨论】:

  • 我希望 Apple 没有在 iOS 更新中悄悄禁用该设置来炫耀该功能。我可以看到它在极少数情况下会有多大用处,但对我来说它是一个 PITA。
【解决方案2】:

您的玩家(我假设您是指玩游戏的人)如何设置音量 - 通过设备的音量控制,或通过您的应用界面?如果是后者,那么这将不起作用,因为系统声音应始终以设备音量播放。

根据Multimedia Programming Guide,“声音以当前系统音量播放,没有可用的程序音量控制。”

我不知道为什么在播放 AVAudioPlayer 声音时您的系统声音会改变音量。如果是这种情况,当您不播放其他声音时,您可以使用 AVAudioPlayer 循环播放无声的声音吗?否则我会尝试使用 AVAudioPlayer 播放所有声音,以便您直接控制音量。

【讨论】:

  • 玩家可以通过 iPhone 侧面的音量按钮来控制音量。
猜你喜欢
  • 2022-08-03
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多