首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPMusicPlayerController在iPhone扬声器路线上杀死RemoteIO

MPMusicPlayerController在iPhone扬声器路线上杀死RemoteIO
EN

Stack Overflow用户
提问于 2012-04-01 21:01:56
回答 1查看 490关注 0票数 0

我有一个应用程序,它使用RemoteIO进行输入-输出处理(PlayAndRecord类别),还包含一个MPMusicPlayerController。

奇怪的是:仅在iPhone上,当RemoteIO正在运行并且iPhone扬声器是音频目标时,在MPMusicPlayerController中开始播放将导致kAudioSessionBeginInterruption事件和我的RemoteIO关闭。iPod音乐(MPMusicPlayerController)继续播放。

似乎在iPhone上,使用扬声器路线,RemoteIO和MPMusicPlayerController不能同时播放?在iPad上,我同时运行RemoteIO和MPMusicPlayerController都没有问题。在iPhone上,如果我将一些东西(耳机、扬声器等)插入耳机插孔,一切工作正常,两个流都可以运行。这似乎只是iPhone上的一个问题,如果Speaker是目的地的话。

当检测到接收器输出时,我覆盖了iPhone扬声器(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker)的AudioSession输出,这对用户来说是一个更自然的期望。iPod播放器似乎也是这样做的。

我还将属性kAudioSessionProperty_OverrideCategoryMixWithOthers设置为true。这允许iPod播放器(可能)继续播放。

稍后,我编写了一些测试代码来重新启动我的RemoteIO会话,这将导致MPMusicPlayerController停止播放。从而表明说话者目的地可能是独占的?

我还尝试了MPMusicPlayerController的'iPodMusicPlayer‘和'applicationMusicPlayer’成员,上面的结果在这两个人之间没有区别。

任何建议都很受欢迎

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-05 10:09:17

我将继续回答我自己的问题,因为我想我已经弄明白了。尽管如此,我对结果并不满意。

似乎MPMusicPlayerController (iPod播放器)正在更改音频路由,而不管应用程序已经用于其RemoteIO的是什么路由。事实证明,这在iPhone和iPad上都会发生。

这可以通过以下方式轻松演示:

  • PlugIn USB音频输入设备
  • 连接BlueTooth扬声器
  • 设置系统iPod播放器使用BlueTooth PlayRecord应用程序使用带有嵌入式MPMusicPlayerController
  • Audio I/O (PlayRecord)的RemoteIO将处理从USB输入到接收器的过程,并在嵌入式MPMusicPlayerController
  • Audio上播放output
  • Engage Play

结果:

将在Input/Output

  • Song上播放speakers

  • RemoteIO将接收kAudioSessionBeginInterruption

  • Restarting
  • 音频路由将更改为BlueTooth BlueTooth RemoteIO流将导致MPMusicPlayerController被停止

我希望发生的事情:

  • MPMusicPlayerController将简单地播放application.

已经在使用的任何音频目的地

我已经在我的Apple Bug上附上了上面的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9964584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档