Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android NDK中使用的PCM音频到字符阵列_Android_C_Audio_Android Ndk_Low Latency - Fatal编程技术网

Android NDK中使用的PCM音频到字符阵列

Android NDK中使用的PCM音频到字符阵列,android,c,audio,android-ndk,low-latency,Android,C,Audio,Android Ndk,Low Latency,我正在尝试在Android上创建一个低延迟音频应用程序,我遇到了一些问题 我曾尝试使用AssetManager通过4.2+上的OpenSl ES播放WAV(PCM编码)文件,但发现它并不完全符合我的要求 从NDK中找到的本机音频样本中,我试图创建一个缓冲队列来播放我剪辑的缓冲字符数组 我的问题在于,我不确定如何像示例中那样创建这些字符数组,例如“hello_clip.h”,我在下面提供了一个示例: "\x00\x00\xfd\xff\x01\x00\x01\x00\xf9\xff\xfb\xff

我正在尝试在Android上创建一个低延迟音频应用程序,我遇到了一些问题

我曾尝试使用AssetManager通过4.2+上的OpenSl ES播放WAV(PCM编码)文件,但发现它并不完全符合我的要求

从NDK中找到的本机音频样本中,我试图创建一个缓冲队列来播放我剪辑的缓冲字符数组

我的问题在于,我不确定如何像示例中那样创建这些字符数组,例如“hello_clip.h”,我在下面提供了一个示例:

"\x00\x00\xfd\xff\x01\x00\x01\x00\xf9\xff\xfb\xff\x02\x00\x05\x00"
"\x01\x00\x03\x00\x06\x00\x0a\x00\x0a\x00\x09\x00\x04\x00\x04\x00"
"\x06\x00\x06\x00\x00\x00\xff\xff\x05\x00\x08\x00\x01\x00\xfe\xff"
"\xff\xff\x03\x00\x04\x00\xfe\xff\xf9\xff\xfd\xff\x04\x00\xfe\xff"
"\x03\x00\x04\x00\x01\x00\xfb\xff\xfb\xff\xfc\xff\xfb\xff\x03\x00"
"\xfc\xff\xf9\xff\xfc\xff\x01\x00\x06\x00\x00\x00\xf9\xff\xfa\xff"
"\x04\x00\x06\x00\xfe\xff\xfa\xff\xfd\xff\x01\x00\xfe\xff\xfe\xff"
"\xfe\xff\xfd\xff\xfd\xff\xfd\xff\xfe\xff\xff\xff\xfd\xff\xfa\xff"
"\xfe\xff\x00\x00\x03\x00\xfe\xff\xfc\xff\xfb\xff\xfe\xff...
然后将其纳入项目中,如下所示:

static const char hello[] =
    #include "hello_clip.h"
;
如何从PCM audio生成类似的字符数组文件以用作字符数组


我使用C和NDK的经验是有限的,我发现android上OpenSl ES的文档和示例并没有多大帮助。因此,任何帮助都将不胜感激。

在Linux上尝试谷歌搜索“bin2h”,xxd-include也可以。当然,从资源加载剪辑可能比将其硬编码到应用程序二进制文件要好。这正是xxd(在所有unix上都可用)的用途。使用C标准库API在设备的归档系统上打开文件也不难(您从Java传递到JNI的位置)。