ios AudioQueue流式传输多首歌曲

时间:2011-08-16 23:29:03

标签: iphone ios audio streaming audioqueue

我正在使用AudioQueue从任意源流式传输音频(该类基本上只需要一个为其提供数据包的委托),我已经创建了一个包含所有功能的类,让我们调用AudioQueueClass,我正在使用这个类为了播放很多歌曲,在每首歌曲之间我发布我的课程并创建一个新的AudioQueueClass实例播放下一首歌曲,我看到两个问题,我找不到原因可能你们中有些人遇到过这些问题并且可以阐明它

1-现在每一个,AudioQueue播放前一首歌的几秒钟,然后回到当前歌曲,不知道为什么会发生这种情况,因为我正在为每首歌创建一个新队列,我相信我是适当处理我的队列 - 一些代码要遵循

2-这个更糟糕,有时当我进入第3或第4首歌时音频队列停止播放...我相信问题是AudioQueueInputCallback inCallbackProc停止被调用,我猜是因为队列停止了播放和处理数据包,但无法找到原因...另外需要注意的是,这只发生在我从外部源流式传输到设备时,如果我只是在本地获取文件数据并将其用作数据包我听到“口吃“在音乐中但是它恢复并且播放得很好,而在流媒体的情况下,声音停止了(非常奇怪)

这是我用来处理音频队列的代码,不再发布因为不确定要发布什么相关部分,如果你想看到任何代码而生病,请告诉我

    AudioQueueFlush(audioQueue);
AudioQueueStop(audioQueue, true);
if (audioFileStream)
{
    err = AudioFileStreamClose(audioFileStream);
    audioFileStream = nil;
    if (err)
    {
        [self failWithErrorCode:AS_FILE_STREAM_CLOSE_FAILED];
    }
}

//
// Dispose of the Audio Queue
//
if (audioQueue)
{
    err = AudioQueueDispose(audioQueue, true);
    audioQueue = nil;
    if (err)
    {
        [self failWithErrorCode:AS_AUDIO_QUEUE_DISPOSE_FAILED];
    }
}

1 个答案:

答案 0 :(得分:0)

毫不奇怪,错误根本不在音频流媒体中,这是我编写音乐流的方式......在我修好之后一切顺利......

再次感谢

丹尼尔