ios - 如何在不被打扰的情况下在后台循环播放声音?

标签 ios objective-c playback multitasking silent

以下代码应循环播放无声音频剪辑,以保持应用程序在后台处于事件状态:

//set sessions ....
.........
//play
audio_player = [[AVAudioPlayer alloc] initWithContentsOfURL: url error:NULL];
audio_player.numberOfLoops= -1; //always repeat
bool ret = [audio_player play];

您按下主页按钮,它会在后台播放,使您的应用程序保持事件状态。

但是,当您调用电话时,播放器会停止并且 [audio_player play] 之后会返回 false。

那么问题来了,在后台的时候,如何让AVAudioPlayer的播放不被打断或者打断后继续播放呢?否则,应用程序将在最后一次播放无声音频循环 10 分钟后终止。

我知道有一个解决方案,因为有很多闹钟应用程序可以在后台运行而不会受到影响。我已经测试过,它们确实在后台运行。

谁能想出一个后台运行而不被 App Store 拒绝的解决方案?

最佳答案

答案是,一旦您的应用进入后台,您就无法再次打开音频设备,直到您的应用返回前台。

关于ios - 如何在不被打扰的情况下在后台循环播放声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8681128/

相关文章:

android - 在 Android 上实时更改轨道的播放速率

ios - 从详细 View Controller 返回时,侧边栏菜单不起作用

ios - 当我使用 Storyboard 创建我的第一个 CollectionView 时,CollectionViewCell 从顶部开始默认插入?

objective-c - 从 nsdata objective-c iOS 获取浮点值

objective-c - Xcode 错误 : No known instance method for selector

java - 使用 Java 播放声音文件 - 错误 : Could not find or load main class [Classname]

ios - iOS 10移动audio.play()工作不稳定

ios - 如何在 iOS 中向包含图像 (nsdata) 的 URL 发出 PUT 请求

ios - 如何检查通用 View 类是否实际实现了 init(frame :)?

ios - 期望类型