我正在尝试使用opensl从uri流式传输音频文件。我想立即播放它,但是在播放器完成播放文件后也可以访问流数据。
我知道数据在内存中的某个地方,因为我可以在流式音频的播放过程中使用查找。同样,当播放器完成播放流音频文件时,我将停止播放器,这会将播放器位置重新设置为“0”,在此我可以再次开始播放音频。
我需要访问此数据,但是它在哪里?我能以某种方式得到它的指示吗?
最佳答案
如果您正在通过网络流式传输内容,则不确定您尝试执行的操作是否可行。
但是,从Android API 14开始,可以使用音频播放器设备将内容解码为PCM格式的缓冲区队列数据源。
有关此的更多信息,请查看NDK文档/docs/opensles/index.html
Decode audio to PCM Note: this feature is available at API level 14 and higher. A standard audio player plays back to an audio device, and the data sink is specified as an output mix. However, as an Android extension, an audio player instead acts as a decoder if the data source is specified as a URI or Android file descriptor data locator with MIME data format, and the data sink is an Android simple buffer queue data locator with PCM data format.
关于android - 从URI传输音频时,opensl中的音频播放器在哪里缓冲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14394527/