AVAudioPlayer声音音量较低

时间:2015-05-06 17:34:39

标签: ios cocoa audio avaudioplayer

我的应用程序正在使用时,我在无限循环中使用了背景歌曲。 除了声音/音量太高......我希望以一半的音量播放...这就是我加载音乐的方式:

//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中编辑实际声音,但是他们不会在一秒钟内输出任何声音,因此手动调整它们是不可行的。

感谢。

更新

A 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,但仍然无法正常工作:(

3 个答案:

答案 0 :(得分:8)

我怀疑它是有效的但是,因为声音开始时响亮,你没有察觉到差异(因为强度分贝比例的对数性质)。尝试使用更小的数字,例如0.05

答案 1 :(得分:2)

它终于奏效了。通过使用较低的线性值(例如0.01f0.08f来调整音量。

我将文件类型更改为mp3,因为不支持wav

    backgroundLoop = [[NSBundle mainBundle] pathForResource:@"Background" ofType:@"mp3"];

然后设置加载的音频的音量:

    GameMusic.volume = 0.01f

0.01f将音量调整为一半(大约靠我的耳朵),但可能会有所不同,具体取决于使用的音轨,是否已标准化或编码的文件格式。

我希望这会有所帮助。

答案 2 :(得分:0)

我使用这种语法在Swift 3.0中遇到错误。我通过反复试验解决了这个问题。使用以下内容调整音量:

nameOfFile.volume = 1.0

删除“f”。任何高于1.0的东西都会增加音量,低于1.0会降低音量。希望这可以帮助。欢呼声。