作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用以下代码在我的应用中播放声音:
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/
我是一名优秀的程序员,十分优秀!