iPhone静音时如何播放声音?

Posted

技术标签:

【中文标题】iPhone静音时如何播放声音?【英文标题】:How to play a sound when iPhone is on silent? 【发布时间】:2019-01-09 21:52:09 【问题描述】:

我正在尝试为 ios 构建一个 react-native 警报应用程序。我查看了几个库,似乎最适合我的项目的库是 react-native-alarm,但是我遇到了问题。当我的设备处于静音模式时,用于唤醒设备和播放声音的预定本地通知不会执行此操作。我看到人们说他们已经通过使用苹果提供的 AVAudioPlayer API 解决了这个问题,但我似乎无法让它工作。一些指导和帮助可能会有所帮助。

我已按照此处的说明进行操作:Play sound on iPhone even in silent mode 并尝试更改库的代码,以便在没有运气的情况下解决静默模式。

这是我的代码

-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^ (UNNotificationPresentationOptions))completionHandler 

    completionHandler(UNNotificationPresentationOptionAlert | UNNotificationPresentationOptionSound);

    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
    NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"/Library/Ringtones/Constellation" ofType:@"m4r"];
    NSURL *url = [NSURL fileURLWithPath:soundPath];
    audioPlay = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];

    [audioPlay play];

如果我做错了什么,或者有一个可以在 react-native 中使用的替代库,我很乐意听到。我在 Objective-c 方面不是很有经验,所以这就是为什么我可以在这段代码中做一些愚蠢的事情。

【问题讨论】:

【参考方案1】:

您忘记将会话设置为活动:

[[AVAudioSession sharedInstance] setActive:YES error:nil];

【讨论】:

您好,我将它添加到 userNotificationCenter 中,并且再次没有声音。还有其他建议吗?

以上是关于iPhone静音时如何播放声音?的主要内容,如果未能解决你的问题,请参考以下文章

iphone,即使在静音或静音模式下如何播放声音?

即使在静音模式下也能在 iPhone 上播放声音 [重复]

即使 iPhone 处于静音状态,AVAudioPlayer 仍在播放环境声音

iPhone:如何在 iPod 声音上播放声音?

iPhone:如何播放忽略音量和铃声开关设置的声音?

EasyPlayer声音自动停止恢复,一键静音等功能