我使用AudioRecorder录制了音频。我需要将录制的文件合并为一个文件。任何建议。
getAudioPath() - audiofiles的路径。 getCombineFile()---组合文件的路径。我的问题是单独播放第一个文件,而不是该目录中的整个文件
public void readAudioAsStream()
{
getAudioPath();
File f=null;
FileInputStream ins = null;
ReadSDDatas rds=new ReadSDDatas();
try
{
String comfile=rds.getCombineFile();
//FileOutputStream fos=new FileOutputStream(comfile);
Log.d("combined file",comfile);
File file=new File(comfile);
RandomAccessFile raf = new RandomAccessFile(file, "rw");
Log.d("path size",Integer.toString(audFullPath.size()));
for(int i=0;i<audFullPath.size();i++)
{
String filepath=audFullPath.get(i);
Log.d("Filepath",filepath);
f=new File(audFullPath.get(i));
fileContent = new byte[read];
ins=new FileInputStream(audFullPath.get(i));
int numofbytes=ins.read(fileContent);
System.out.println("Number Of Bytes Read===========>>>"+numofbytes);
raf.seek(file.length());
raf.write(fileContent);
}
}
catch (FileNotFoundException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*String path=audFullPath.get(val);
playAudio(path);*/
playAudio();
/*
for(int i=0;i<audFullPath.size();i++)
{
Log.d("fullpathsize",Integer.toString(audFullPath.size()));
playAudio(audFullPath.get(i));
}*/
}
答案 0 :(得分:0)
如果你正在使用AudioRecord.read()
,我假设你有短数据或字节数组的PCM数据。如果是这种情况,您需要做的就是创建一个与两个原件一样大的新阵列,然后一个接一个地复制数据。像这样:
short[] newData = new short[dataOne.length + dataTwo.length];
for(int i=0;i<dataOne.length;i++)
newData[i] = dataOne[i];
for(int i=0;i<dataTwo.length;i++)
newData[i+dataOne.length] = dataTwo[i];
然后你有一个包含所有PCM数据的数组,你可以用你所想做的。