【问题标题】:iphone audio streamingiphone音频流
【发布时间】:2011-01-28 01:59:42
【问题描述】:

我正在开发一个使用音频流的应用程序。对于来自互联网的流式音频,我正在使用 AudioStreamer 类。音频流媒体有 四种状态 isPlaying 、 isPaused 、isWaiting 和 isIdle 。我的问题是,当音频流媒体处于“isWaiting”状态时,如果我接到电话音频队列失败,则会出现错误“音频队列启动失败”。任何对此有解决方案?帮助....

【问题讨论】:

    标签: iphone


    【解决方案1】:

    中断(例如接听电话)将停用音频会话。您可以在中断处理程序中通过调用 AudioSessionSetActive(true) 重新激活音频会话。

    查看here 了解中断处理程序的详细信息。

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

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

    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;
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 2012-04-27
      • 2013-04-30
      相关资源
      最近更新 更多