菜鸟教程小白 发表于 2022-12-13 10:37:33

ios - 当应用程序在后台时,使用 AmbientSound session 的 AVAudioPlayer 不播放


                                            <p><p>如果这是在苹果文档中,那么我无法找到它 - 希望有人可以提供帮助:</p>

<p>我的应用偶尔会播放短音频片段 - 我希望音频与后台其他应用(如 iPod 应用)播放的音频混合在一起 - 但我也希望它在应用运行时继续播放这些音频片段背景。</p>

<p>我在 info.plist 的所需背景模式设置中设置了“应用程序播放音频”(该应用程序也使用位置服务,因此也设置在那里)</p>

<p>我的应用在 applicationDidFinishLaunching 上设置了一个 Audio Session :</p>

<pre><code>AudioSessionInitialize (NULL,NULL,NULL,NULL);
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,sizeof (sessionCategory),&amp;sessionCategory);
AudioSessionSetActive(true);
</code></pre>

<p>在我的 viewWillAppear:View 中的方法中,我有:</p>

<pre><code>;
[ beginReceivingRemoteControlEvents];
;
</code></pre>

<p>以及viewWillDisappear中对应的事件处理程序和endReceivingRemoteControlEvents代码:在<a href="https://stackoverflow.com/questions/3456435/ios-4-remote-controls-for-background-audio" rel="noreferrer noopener nofollow">iOS 4: Remote controls for background audio</a>中讨论</p>

<p>最后我有一个 AVAudioPlayer,以正常方式设置,在某些事件上播放声音</p>

<pre><code>bool successful = ;
if(!successful)
    NSLog(@&#34;did not play&#34;);
</code></pre>

<p>当应用程序处于前台时,应用程序工作正常并播放音频 - 但是当应用程序进入后台并且应用程序尝试播放声音时, 的返回值为 NO 并且声音不播放- 当切换回前台时,音频再次开始工作。</p>

<p>如果我在设置 session 时改为使用</p>

<pre><code>    UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
</code></pre>

<p>然后音频在前景和背景中完美播放。但是 MediaPlayback 并不是这个应用程序真正正确的模式,因为我只是偶尔播放音频剪辑 - AmbientSound 确实是我应该使用的模式。 </p>

<p>我错过了什么?是不是不可能使用 kAudioSessionCategory_AmbientSound 在后台播放音频?如果是这样,我在文档中没有找到任何关于此的内容。 </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>最后不得不为此提交技术支持请求。</p>

<p>AmbientSound 类别不支持 Apple 后台播放 - 您必须使用 MediaPlayback。</p>

<p>他们声称这是在文档中 - 我再次查看但找不到它。</p>

<p>好的,因此使用 kAudioSessionProperty_OverrideCategoryMixWithOthers 将背景声音混入 MediaPlayback 很容易 - 但我现在将不得不跳过其他一些环节来复制其他 AmbientSound 功能(遵循静音开关,并且在锁定时不播放)。我真的不明白为什么不支持在后台播放 AmbientSound - 但我们开始了。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 当应用程序在后台时,使用 AmbientSoundsession 的 AVAudioPlayer 不播放,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/8763942/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/8763942/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 当应用程序在后台时,使用 AmbientSound session 的 AVAudioPlayer 不播放