[英]Lower volume of AVAudioPlayer sound
當我的應用程序正在使用時,我有一個無限循環使用的背景歌曲。 除了聲音/音量太高......我希望它以音量的一半播放......這就是我加載音樂的方式:
//background music for in-game loop
backgroundLoop = [[NSBundle mainBundle] pathForResource:@"Background" ofType:@"wav"];
GameMusic = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:backgroundLoop] error:NULL];
GameMusic.delegate = self; //need <...> in .h
GameMusic.numberOfLoops = -1; //play infinite loop
我嘗試了一些東西,但沒有任何影響軌道的音量。 我試過這個:
GameMusic.volume = 0.5f;
和:
[GameMusic setVolume: 0.5f];
但它沒有改變音量,仍然以相同的最大音量播放......
奇怪的是,如果我將音量設置為0.0( [GameMusic setVolume: 0.5f];
)它根本不播放,因為我猜測它的音量設置為零......但為什么0.1f
或0.5f
當它是0-1的線性刻度時,不調整音量?
如何降低聲音的音量? 它太響了。
此外,我嘗試編輯Garageband中的實際聲音,但它們不會在一秒鍾內輸出任何聲音,因此手動調整它們是不可行的。
謝謝。
更新
Wiki ,顯示支持以下文件格式:
- AAC (MPEG-4 Advanced Audio Coding) - ALAC (Apple Lossless) - AMR (Adaptive Multi-rate) - HE-AAC (MPEG-4 High Efficiency AAC) - iLBC (internet Low Bit Rate Codec) - Linear PCM (uncompressed, linear pulse code modulation) - MP3 (MPEG-1 audio layer 3) - µ-law and a-law
不幸的是,我將.wav
更改為.mp3
並且仍然無法正常工作:(
我懷疑它是有效的,但是,因為聲音開始時響亮,你沒有察覺到差異(因為強度的分貝比例的對數性質)。 嘗試使用更小的數字,例如0.05
。
它終於奏效了。 通過使用較低的線性值(例如0.01f
和0.08f
來調節體積。
我將文件類型更改為mp3
因為不支持wav
:
backgroundLoop = [[NSBundle mainBundle] pathForResource:@"Background" ofType:@"mp3"];
然后設置加載的音頻的音量:
GameMusic.volume = 0.01f
和0.01f
將音量減半(大約由我的耳朵),但可能會有所不同,具體取決於使用的是什么音軌,是否已標准化或者編碼的文件格式。
我希望這有幫助。
我使用這種語法在Swift 3.0中遇到錯誤。 我通過反復試驗解決了這個問題。 使用以下內容調整卷:
nameOfFile.volume = 1.0
刪掉“f”。 任何高於1.0的東西都會增加音量,低於1.0會降低音量。 希望這可以幫助。 干杯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.