AudioQueue播放本地音频文件,该音频文件实时在更改

nic519 发布于 2014年01月07日 | 更新于 2014年01月07日
无人欣赏。

如题,AudioQueue播放本地音频文件,该音频文件实时在写数据(由网络下载并实时写到文件,音频文件是固定大小的,比如说是5000000bytes)。

问题是: 当我判断下载的数据足够给AudioQueue播放的时候,就让AudioQueue播放这个本地文件,但AudioQueue只能识别我当时给它的文件的当时内容(比如当时文件只有前100000bytes),它就只能读到100000bytes就停止了。除非我拖动进度条,拖到比如200000bytes的位置,他才知道更新后的文件里具体的数据。

请问有什么办法让AudioQueue知道这个文件的实时数据大小呢

共1条回复
terryso 回复于 2014年01月07日

AudioQueue其实播放的是缓冲队列里面的内容,你要不断的把你需要播放的内容扔到缓冲队列中。AudioQueue好像默认会开3个AudioQueueBuffer,当AudioQueue播放玩一个AudioQueueBuffer的内容,它就会回调你的函数,并AudioQueueBuffer的引用传给你,这时你就要给它内容塞满它,否则当所有AudioQueueBuffer播放完,就播放结束了。

登录 或者 注册