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