【问题标题】:AudioSession Settings for RemoteIO to play nice with iPodRemoteIO 的 AudioSession 设置与 iPod 配合得很好
【发布时间】:2011-08-29 18:28:04
【问题描述】:

正如我之前发现的here

如果您在使用远程 I/O 回调播放音频时开始运行 AVAssetReader,除非您允许 iPod 与...混合,否则启动 AVAssetReader 将阻止远程 I/O 回调。

UInt32 audioCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(audioCategory),&audioCategory);

AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof (UInt32), &(UInt32) {1});

但是我发现这会阻止使用音频远程控制调用作为设置here

所以...

  • 我需要“MixWithOthers”才能使用 AVAssetReader
  • 我需要关闭“MixWithOthers”才能使用音频遥控器

有谁知道我可以如何设置我的 AudioSession 以便我可以同时使用它们?

【问题讨论】:

  • 我也有同样的问题。当我使用 AVAssetReader 从 iPod 库中读取时,我正在使用音频单元回调处理音频。如果我没有将 MixWithOthers 设置为 TRUE,则每次从 AVAssetReader 读取都会中断播放。我正在考虑一种不同的方法来看看它是否有效。特别是如果我使用音频队列服务而不是音频单元,我想知道它是否会起作用。你有过成功吗?
  • 当我的 MixWithOther 为 TRUE 时,我的 AVAssetReaders 与播放混合,但 RemoteAudio 控件不起作用。当我有 MixWithOther FALSE 时,我有 AVAssetReader 中断播放。我对音频队列有同样的结果,但请告诉我它是否适合你。
  • 看起来另一个应用程序也处理来自 iPod 库的音频也有同样的问题,当使用 MixWithOthers 时远程事件被阻止。我认为需要有一个新的音频设置来启用 AVAssetReader 与正在运行的音频单元相同。似乎许多应用都想利用这种功能组合。

标签: iphone ios core-audio audiounit audiosession


【解决方案1】:

现在在 iOS 5 中有效。正确的处理方法是关闭 MixWithOthers。 AVAssetReader 将不再停止音频播放的回调。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 2010-09-11
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    相关资源
    最近更新 更多