我的应用程序正在使用时,我在无限循环中使用了背景歌曲。 除了声音/音量太高......我希望以一半的音量播放...这就是我加载音乐的方式:
//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中编辑实际声音,但是他们不会在一秒钟内输出任何声音,因此手动调整它们是不可行的。
感谢。
更新
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
,但仍然无法正常工作:(
答案 0 :(得分:8)
我怀疑它是有效的但是,因为声音开始时响亮,你没有察觉到差异(因为强度分贝比例的对数性质)。尝试使用更小的数字,例如0.05
。
答案 1 :(得分:2)
它终于奏效了。通过使用较低的线性值(例如0.01f
和0.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会降低音量。希望这可以帮助。欢呼声。