我使用以下代码在我的应用程序中播放声音:
NSString *soundFilePath = [NSString stringWithFormat:@"%@/samsung_whistle.mp3", [[NSBundle mainBundle] resourcePath]];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
player.numberOfLoops = 0;
[player play];
这似乎有效,但是当我设置系统音量(使用设备上的硬件按钮)时,它对我的声音没有任何影响。如果我将音量一直调低(因此设备显示“声音关闭”),我仍然可以听到我的声音在播放。如果我将音量调到最大,我的声音就不会播放得更大声。
我知道我可以使用
设置音量player.volume = someFloatBetween0And1;
但这对音量进行了硬编码。如何检索系统音量并将其设置为我的声音,以便用户可以正确调节音量?
最佳答案
您在播放器上设置的音量和系统音量是独立的。
这就像您在最喜欢的视频播放器中观看电影一样。它具有可设定的音量。不过,您仍然可以设置系统音量(可能在系统托盘中),您可以独立独立于视频播放器音量进行设置。
如果系统音量为 50% 并且播放器音量也为 50%,则声音会比两者都为 100% 时弱 4 倍。
结论:如果您的播放器设置为 100% 并且系统音量为 0%,则...静音。这是一个很好的用例。因为如果应用程序可以访问系统音量,那么当我接到电话时,我需要转到每个应用程序并将该死的声音级别设置为 0 :D
关于ios - 如何使用系统音量来播放声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20609135/