2013-12-16 76 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