当应用程序处于后台时播放声音

Posted

技术标签:

【中文标题】当应用程序处于后台时播放声音【英文标题】:Play sound when the app is background 【发布时间】:2014-11-28 18:40:12 【问题描述】:

应用程序必须在后台播放声音。在功能后台获取和音频和播放被检查。

播放声音的调用方法是

-(void)playSound

NSString* str = [[NSBundle mainBundle] pathForResource:@"alarm4" ofType:@"wav"];
NSURL* url = [NSURL fileURLWithPath:str];
NSError* erreur;

self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&erreur];

if(!erreur)

    [self.audioPlayer setVolume:1];
    [self.audioPlayer setNumberOfLoops:-1];
    [self.audioPlayer prepareToPlay];
    [self.audioPlayer play];


else
    NSLog(@"erreur de chargemnt %@", [erreur localizedDescription]);

请给我一些建议好吗?

【问题讨论】:

【参考方案1】:

我的建议是:不要梦想这样的事情。一般来说,你做不到。

您可以在进入背景时继续播放声音,但您不能在已经时自发发出出乎意料的声音> 后台应用程序。如果发生这种情况,那就太可怕了,因为用户不知道声音来自哪里,声音可能会扰乱用户的音乐聆听体验等等。

首先你应该问问自己为什么你认为你需要做这样的事情。你可能不需要。

(某些 Apple 应用程序可以做到这一点。例如,时钟应用程序会在背景中发出重复的警报声。但是,您现在可能已经注意到,您不是 Apple。)

【讨论】:

一切都很黑暗,但现在我看到了您回答的轻松优雅:“您,您现在可能已经注意到,不是 Apple”。非常感谢。 @Developer3000 您可以尝试发出警报声作为 UILocalNotification 的一部分。这是合法的,因为系统,而不是您,实际上会在通知“触发”时产生声音。但这也意味着用户可以关闭你的声音。所以这是一个很好的解决方案,但不是 100% 可靠。 反对者。这是可能的,只是比应该做的要难得多。你能提供更多关于你希望何时启动的信息吗?

以上是关于当应用程序处于后台时播放声音的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序在后台并且手机处于振动状态时,一些闹钟应用程序(例如 Alarmy)如何能够在 iPhone 上播放声音

正在播放其他应用程序中的声音时录音停止

当浏览器在后台运行时收到通知时,使用 Firebase 播放声音

iOS:Objective -C如何在应用程序处于后台模式时更改推送通知声音有效负载?

iPhone:当应用程序移至后台时播放声音

当应用程序处于后台时,Flutter Cloud Messaging 自定义通知声音不起作用