首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iphone音频流

iphone音频流
EN

Stack Overflow用户
提问于 2010-03-23 21:00:10
回答 1查看 1.8K关注 0票数 2

我正在开发一个使用音频流的应用程序。对于来自互联网的音频流,我使用了AudioStreamer类。音频流处理器具有四个状态isPlaying、isPaused、isWaiting和isIdle。我的问题是,当音频流处理器处于"isWaiting“状态时,如果我接到电话呼叫,音频队列将失败,并给出错误消息”音频队列启动失败“。有解决这个问题的办法吗?帮帮忙...

EN

回答 1

Stack Overflow用户

发布于 2010-03-23 21:26:39

中断(例如接收呼叫)将停用音频会话。这取决于您,在您的中断处理程序中,通过调用AudioSessionSetActive(true)重新激活音频会话。

有关中断处理程序的详细信息,请查看here

话虽如此,我还是假设您使用的是mattgallagher's library。要做的事情是在AudioStreamer.m的949行( -AudioStreamer pause中"err = AudioQueueStart(audioQueue,NULL);“之后的行)上放置一个断点。

如果err == kAudioSessionNotActiveError,那么我的理论是正确的,你需要调用重新启动音频会话。也许是这样的(但我只浏览过这段代码,所以也许有更好的方法来解决这个问题):

代码语言:javascript
复制
else if (state == AS_PAUSED)
{
  err = AudioQueueStart(audioQueue, NULL);
  if (err) {
    err = AudioSessionSetActive(true);
    if (err) {
      [self failWithErrorCode:AS_AUDIO_QUEUE_START_FAILED];
      return;
    } else {
      err = AudioQueueStart(audioQueue, NULL);
      if (err) {
        [self failWithErrorCode:AS_AUDIO_QUEUE_START_FAILED];
        return;
      }
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2500017

复制
相关文章

相似问题

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