在设备静音模式下播放声音

3

我是一名编程应用的新手,我创建了一个简单的应用程序来播放声音。我已经测试过它并且它运行得很好。然而,我想在静音模式下播放声音。

以下是代码:

#import "ViewController.h"
@interface ViewController ()
@end

@implementation ViewController

-(IBAction)Button1Sound:(id)sender{
    AudioServicesPlaySystemSound(Button1);
}

- (void)viewDidLoad {
    NSURL *Button1Sound = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"nobody" ofType:@"m4a"]];
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)Button1Sound, & Button1);

    [super viewDidLoad];
}

@end

我查看了其他在线问题,他们说要添加这行代码:

[[AVAudioSession sharedInstance]
        setCategory: AVAudioSessionCategoryPlayback
              error: nil];

我不确定该把它放在哪里,也不知道我是否使用了正确的语法。我同时使用了一个audiotoolbox框架。


1
你也许可以通过将其视为音乐而不是音频来解决这个问题,但我建议你不要这样做。人们使用静音模式是有原因的,当手机处于静音模式时播放声音最多会令人感到烦恼。 - EmilioPelaez
我只是好奇它会怎么做。 - user5124826
1个回答

0

当手机处于静音模式时,除非用户明确发起声音播放,例如媒体播放,否则违反了人机界面指南(HIG)的规定,这是应用被拒绝的理由。

根据HIG

静音。人们将设备切换到静音模式以避免被意外的声音打扰,例如铃声和来电信息声音。他们还希望禁用非必要的声音,包括键盘声音、音效、游戏配乐和其他听觉反馈。当设备设置为静音时,只有明确发起的声音才会发生,例如媒体播放期间的音频、警报和音频/视频消息。

如果您认为您的需求没有违反规定,请参阅此文章以获取解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接