ios - 如何使用系统音量来播放声音?

标签 ios objective-c

我使用以下代码在我的应用程序中播放声音:

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/

相关文章:

ios - CoreData对象之间的关系

ios - UIApplication-canOpenURL : -openURL: return misleading result

objective-c - 如何在 iOS 标签栏中使用自定义字体

ios - 处理表中 UITableViewCell 的多个子类

objective-c - 如何使用parse.com和Facebook 3.0 SDK获取共享对话框

iOS:通过按 UIButton 更改 UIImageView

iphone - setBackgroundImage :Forstate and setImage:Forstate: 有什么区别

iphone - UITableView设计

objective-c - 保留/分配内存管理

ios - MKMapView 缩放以在锁定中心时适合注释