iphone - ios AudioQueue 流式传输多首歌曲

标签 iphone ios audio streaming audioqueue

我正在使用 AudioQueue 从任意源流式传输音频(该类基本上只需要一个为其提供数据包的委托(delegate)),我创建了一个包含所有功能的类,让我们调用 AudioQueueClass,我正在使用这个类来播放很多歌曲,在每首歌曲之间我释放我的类(class)并创建一个新的 AudioQueueClass 实例来播放下一首歌曲,我看到了两个我无法找到原因的问题,也许你们中的一些人遇到了这些问题并且可以解决一盏灯

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

2-这个更糟糕,有时当我进入第三或第四首歌曲时,音频队列停止播放......我相信问题是 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];
    }
}

最佳答案

结果毫不奇怪,错误根本不在音频流媒体中,这是我编写要流式传输的音乐的方式...在我修复它之后一切正常...

再次感谢

丹尼尔

关于iphone - ios AudioQueue 流式传输多首歌曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7086336/

相关文章:

iphone - 如何检查是否从 iPhone 上的网页安装了应用程序

iphone - 如何在iPhone模拟器上模拟来电?

ios - 自定义标注气泡 iOS

iphone - -[UITextField isFirstResponder] 即使字段当前正在编辑也会返回 false

ios - LinkedIn 应用内浏览器强制视频在 iPhone 上全屏显示

python - pygame.Sound.get_num_channels 不准确

ios - 使用 AFNetworking 如何读取 request.responseString 中包含的错误消息

iphone - UIActivity 指示器不显示

c++ - lambda函数c++ 11

c - Windows 中低级音频的最佳 API?