繁体   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