android - 从URI传输音频时,opensl中的音频播放器在哪里缓冲?

标签 android audio android-ndk streaming opensl

我正在尝试使用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/

相关文章:

audio - DevOps构建管道概述和失败时的声音触发

java - 使用 android-ndk-r10e 编译 jni 代码时出错

java - 处理中找不到任何设备

android - Stetho 和 chrome :inspect pending REST petitions

audio - 如何使用网络音频 api 重新触发(阻塞)声音

c# - XNA:激活一个声音实例仅需激活一次

android - Android 虚拟显示的帧监听器(NDK 内部构建)

android - 使用 Android NDK 将文件写入 SDcard 以外的位置?

android - 如何找出 ViewPager 所需的最低 API 级别

java - 是否可以看到仅由 java 制作的布局的预览?