簡體   English   中英

AVAudioPlayer聲音音量較低

[英]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.1f0.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.01f0.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM