2013-12-16 43 views
2

我使用下面的代码打在我的应用程序声音:如何将系统音量用于我的声音?

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; 

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

+0

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

回答

2

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

这就像当你在你最喜欢的视频播放器中观看电影。它有一个可设定的音量。不过,系统音量(可能位于系统托盘中)可以从视频播放器音量中独立设置

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

结论:如果你的播放器设置为100%,而系统音量为0%,那么......保持沉默。这是一个很好的用例。因为如果应用程序可以访问系统音量,那么当我接到电话时,我需要转到每个应用程序,并将darn声音级别设置为0:D

+0

我会理解,如果这是真的,但当我将播放器的音量设置为100%,并将系统音量设置为0%时,我仍然可以听到100%..... – Kevin

+0

从应用程序中删除应用程序并清洁我的项目,它似乎工作。很奇怪......无论如何,谢谢你的解释,这的确如你所说。 – Kevin