通过字符串将 wav 数据从 Java 发送到 Cpp

Send wav data to from Java to Cpp via string

我需要能够将 wav 文件发送到 android 中的后台进程,这是 运行 来自不同包的音频插件代码:Samsung Audio SDK。

后台进程的唯一接口是发送字符串 - 因此解决方案似乎是在 Java 中将 wav 转换为字符串,然后在 cpp 中重新加载它。 wavs的格式可以固定(不需要考虑所有可能的参数)

解决这个问题的好方法是什么?另外,以这种方式发送巨大的字符串是否有任何问题(即我应该将它分成块吗?)

你应该用一个字符来分隔每个值,这样你就可以通过拆分来轻松地解析另一边的字符串,例如"1,2,3" -> split on "," = "1" "2" "3"

对于你的情况,我会先尝试发送整个东西,看看是否有任何问题。如果有 none... 很好,否则将整个字符串按大小分成几部分,但保持可以轻松拆分值的方式。另外你应该注意字符串的编码在两端是相等的,否则你会遇到问题。

我从 Samsung Website

上的常见问题解答部分找到了执行此操作的方法
  1. 将文件从 java 复制到 'getApplicationInfo().dataDir' 指向的目录。我在使用此方法时遇到问题,因为我没有将文件设置为可读(例如 outFile.setReadable(true,false); )

  2. 你可以像这样读取文件(如果你的包是example.com):

    void readFile() {
    
        FILE* fp = fopen("/data/data/example.com/file_test_1.txt","r+");
    
        if(fp!=NULL)
        {
            // do something
            fclose(fp);
        }
    }