降低 AVAudioPlayer 声音的音量
Lower volume of AVAudioPlayer sound
我有一首背景歌曲,我在使用我的应用程序时无限循环使用它。
除了 sound/volume 太高了...我希望它以一半的音量播放...这就是我加载音乐的方式:
//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.01f
和 0.08f
.
来调整音量
我将文件类型更改为 mp3
,因为 wav
不受支持:
backgroundLoop = [[NSBundle mainBundle] pathForResource:@"Background" ofType:@"mp3"];
然后设置加载音频的音量:
GameMusic.volume = 0.01f
和 0.01f
将音量减半(大约我的耳朵),但可能会有所不同,具体取决于使用的曲目、是否标准化或编码的文件格式。
希望对您有所帮助。
我怀疑它能正常工作,但是因为开始时声音太大,您没有察觉到差异(因为强度分贝标度的对数性质)。也许可以尝试小得多的数字,例如 0.05
。
我在 Swift 3.0 中使用此语法时遇到错误。我通过反复试验解决了它。使用以下方法调整音量:
nameOfFile.volume = 1.0
删除 "f"。高于 1.0 的任何值都会增加音量,低于 1.0 会减小。希望这可以帮助。干杯。
我有一首背景歌曲,我在使用我的应用程序时无限循环使用它。 除了 sound/volume 太高了...我希望它以一半的音量播放...这就是我加载音乐的方式:
//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.01f
和 0.08f
.
我将文件类型更改为 mp3
,因为 wav
不受支持:
backgroundLoop = [[NSBundle mainBundle] pathForResource:@"Background" ofType:@"mp3"];
然后设置加载音频的音量:
GameMusic.volume = 0.01f
和 0.01f
将音量减半(大约我的耳朵),但可能会有所不同,具体取决于使用的曲目、是否标准化或编码的文件格式。
希望对您有所帮助。
我怀疑它能正常工作,但是因为开始时声音太大,您没有察觉到差异(因为强度分贝标度的对数性质)。也许可以尝试小得多的数字,例如 0.05
。
我在 Swift 3.0 中使用此语法时遇到错误。我通过反复试验解决了它。使用以下方法调整音量:
nameOfFile.volume = 1.0
删除 "f"。高于 1.0 的任何值都会增加音量,低于 1.0 会减小。希望这可以帮助。干杯。