【问题标题】:How can I use the system volume for my sound?如何将系统音量用于我的声音?
【发布时间】:2013-12-16 10:55:07
【问题描述】:

我正在使用以下代码在我的应用中播放声音:

NSString *soundFilePath = [NSString stringWithFormat:@"%@/samsung_whistle.mp3", [[NSBundle mainBundle] resourcePath]];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
player.numberOfLoops = 0;
[player play];

这似乎可行,但是当我设置系统音量(使用设备上的硬件按钮)时,它对我的​​声音没有任何影响。如果我把音量调低(所以设备说“声音关闭”)我仍然可以听到我的声音播放。而且,如果我将音量一直调高,我的声音就不会再响亮了。

我知道我可以用

设置音量
player.volume = someFloatBetween0And1;

但这会对卷进行硬编码。如何检索系统音量并将其设置为我的声音,以便用户可以正确调节音量?

【问题讨论】:

  • 系统声音是通用声音。你无法控制它。但是您的应用程序声音的输出将根据系统时间。

标签: ios objective-c


【解决方案1】:

您在播放器上设置的音量和系统音量是独立的。

就像您在最喜欢的视频播放器中观看电影一样。它有一个可设置的音量。尽管如此,您仍然拥有可以从视频播放器音量独立设置的系统音量(可能在系统托盘中)。

如果系统音量为 50%,而您的播放器音量也为 50%,则声音比两者都为 100% 时弱 4 倍。

结论:如果您的播放器设置为 100% 并且系统音量为 0%,那么...静音。这是一个很好的用例。因为如果应用程序可以访问系统音量,当我接到电话时,我需要去每个应用程序并将该死的声级设置为 0:D

【讨论】:

  • 如果这是真的我会理解,但是当我将播放器的音量设置为 100% 并将系统音量设置为 0% 时,我仍然可以听到 100% 的声音.....
  • 从设备中删除应用程序并清理我的项目后,它似乎可以工作。很奇怪……不管怎样,谢谢你的解释,确实如你所说。
  • 很好的解释!您的解释是来自 Apple Documentation 还是其他文档?
  • @songgeb 我不记得了 :)) 差不多 6 年前了,而且 Objective-c 还活着吗?阅读它,至少部分我认为它是基于个人使用 VLC 的经验:))
猜你喜欢
  • 2011-07-25
  • 2010-11-12
  • 1970-01-01
  • 2011-09-11
  • 2012-04-26
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多