[英]Converting raw byte data to audio
在我的应用程序中,我想将原始字节数据更改为音频。 因此,首先,我接收到数据并将其添加到字节数组列表中,然后我想将整个数组列表更改为音频。 由于数据是通过音频插孔输出的,如果您让我知道哪种音频格式合适(wav,3gp等),将不胜感激。 另外,我在将这些数据保存到文件中时遇到问题。 这是我的代码。 在fileOuputStream.write(audiod.toArray())行中,它给出了一个错误,并要求我将audiod的类型更改为byte。
private static ArrayList<Byte> audiod = new ArrayList<Byte>();
audioFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myaudio.wav";
if (dg == 1) {
//audiod.append(data[i]);
for (int i = 0; data != null && i < data.length; i++) {
audiod.add(data[i]);
}
if (stt.equalsIgnoreCase(("r"))) {
dg = 0;
recordButton.setEnabled(true);
File file = new File(audioFilePath);
try {
FileOutputStream fileOuputStream = new FileOutputStream(audioFilePath);
fileOuputStream.write( audiod.toArray());
fileOuputStream.close();
System.out.println("Done");
}
catch(Exception e) {
e.printStackTrace();
}
}
}
audiod.toArray()
将为您提供Byte[]
,但是您需要一个byte[]
。 在Java中,原始数据类型有所谓的包装器类。 Byte
是保存byte
值的对象。
为什么要使用Byte
列表? 它比您似乎拥有的简单byte[]
( data
)需要更多的内存。
数据格式(wav,3gp等)取决于您如何获取数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.