播放 youtube 视频后 iPhone 在 Play&Record 中恢复 AudioSession

Posted

技术标签:

【中文标题】播放 youtube 视频后 iPhone 在 Play&Record 中恢复 AudioSession【英文标题】:iPhone restore AudioSession in Play&Record after playing youtube video 【发布时间】:2012-07-10 09:36:52 【问题描述】:

我在 ios 5.x 的 VoIP 应用程序中管理 AudioSession(设置为播放和录制类别)中断时遇到问题。 当我正在进行通话、进入后台并启动 youtube 应用程序时,会发生音频会话开始中断,我可以暂停当前通话。

问题是当我返回前台并想要响应我的呼叫时(不杀死 youtube 应用程序,只需将其置于后台):不会发生结束中断回调,即使我强制设置我之前的 audioSession 为活动状态,它返回错误。 我检查音频资源是否可能被其他进程使用(使用 AudioSessionGetProperty (kAudioSessionProperty_OtherAudioIsPlaying,...) 但他们没有。 如果我手动终止 youtube 应用程序,则会发生最终中断,并且没有问题。

由于通常没有人手动杀死该应用程序,我该如何恢复通话的 audioSession? 我检查了其他示例,Viber 可以正常工作,并且可以以某种方式“拦截”结束中断。

另一个奇怪的行为是,如果我在我的 AudioSession 中也设置了“allowMixing”类别,它在 iOS 5.x 中会被完全忽略(youtube 控制音频资源),而在 iOS 4.x 中它可以正常工作(即是我在当代听音频通话和youtube混合)。

【问题讨论】:

【参考方案1】:

我遇到了类似的问题。我通过在中断回调中停止并(重新)启动我的音频单元来解决它。

【讨论】:

问题是(结束)中断没有发生。那么我怎么知道重启音频单元的正确时机呢?

以上是关于播放 youtube 视频后 iPhone 在 Play&Record 中恢复 AudioSession的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 应用程序中播放 youtube 视频

iPhone:如何在特定视图中播放 YouTube 视频(而不是全屏)

如何在 iPhone 的应用程序中播放 youtube/vimeo 视频

Youtube 嵌入视频:自动播放功能在 iphone 中不起作用

使用 webview 在 iphone 应用程序中播放来自 youtube 的视频

强制 iOS iPhone youtube 嵌入播放器退出全屏