通过字符串将 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... 很好,否则将整个字符串按大小分成几部分,但保持可以轻松拆分值的方式。另外你应该注意字符串的编码在两端是相等的,否则你会遇到问题。
上的常见问题解答部分找到了执行此操作的方法
将文件从 java 复制到 'getApplicationInfo().dataDir' 指向的目录。我在使用此方法时遇到问题,因为我没有将文件设置为可读(例如 outFile.setReadable(true,false); )
你可以像这样读取文件(如果你的包是example.com):
void readFile() {
FILE* fp = fopen("/data/data/example.com/file_test_1.txt","r+");
if(fp!=NULL)
{
// do something
fclose(fp);
}
}
我需要能够将 wav 文件发送到 android 中的后台进程,这是 运行 来自不同包的音频插件代码:Samsung Audio SDK。
后台进程的唯一接口是发送字符串 - 因此解决方案似乎是在 Java 中将 wav 转换为字符串,然后在 cpp 中重新加载它。 wavs的格式可以固定(不需要考虑所有可能的参数)
解决这个问题的好方法是什么?另外,以这种方式发送巨大的字符串是否有任何问题(即我应该将它分成块吗?)
你应该用一个字符来分隔每个值,这样你就可以通过拆分来轻松地解析另一边的字符串,例如"1,2,3" -> split on "," = "1" "2" "3"
对于你的情况,我会先尝试发送整个东西,看看是否有任何问题。如果有 none... 很好,否则将整个字符串按大小分成几部分,但保持可以轻松拆分值的方式。另外你应该注意字符串的编码在两端是相等的,否则你会遇到问题。
将文件从 java 复制到 'getApplicationInfo().dataDir' 指向的目录。我在使用此方法时遇到问题,因为我没有将文件设置为可读(例如 outFile.setReadable(true,false); )
你可以像这样读取文件(如果你的包是example.com):
void readFile() { FILE* fp = fopen("/data/data/example.com/file_test_1.txt","r+"); if(fp!=NULL) { // do something fclose(fp); } }