我在这里找到了一些有用的提示,但是为了确定我的要求是否可以在这里实现是一个简短的清单。
我有一个应用程序,大部分时间都在后台运行。该应用程序“存活”长达数小时,在某一点上我需要发出警报声。
所以我发现我需要启动一个AVQueuePlayer并添加一个不断播放的mutesound,直到我需要播放我的其他声音。是吗?
所以我创建了一个单例类(SoundService),我在其中初始化了silentsound和队列播放器中的alarmound。 当应用程序进入后台时,我启动播放器并播放静音。如果我需要在应用程序处于后台时播放我的闹钟声音应该可以正常工作,我是对的吗?
现在我的实施不起作用,但我是在正确的方式吗?
感谢
答案 0 :(得分:1)
您无法在后台启动音频。音频背景模式允许您做的唯一事情是在应用程序从前台移动到背景时继续产生声音。
但是,如果您的应用程序能够接收远程事件,并且它已经产生声音以使其成为远程事件目标,那么,使用音频后台模式,它可以继续作为远程事件目标,从而可以生成只要在此期间没有其他应用程序成为远程事件目标,就会在后台发出声音。
在后台制作声音的最可靠方法是将声音附加到本地通知中。
notification.soundName = UILocalNotificationDefaultSoundName;
notification.soundName = @"mySound.caf";
确保声音实际上在您的应用程序包中,格式正确(线性PCM或IMA4)。 你可以使用:
从wav和mp3转换afconvert -f caff -d LEI16@44100 -c 1 original.wav mySound.caf