如何解决合并音频文件
| 我录制了一些音频文件,并将它们存储在sdcard中。我需要将所有录制的文件合并为一个音频文件。我用下面的代码。我的问题是合并的文件仅包含第一个记录的文件。任何建议...在readAudioAsStream()方法中,我尝试合并文件。public void readAudioAsStream() {
getFullAudioPath()
File f;
FileInputStream ins = null;
try
{
String comfile=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[(int)f.length()];
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) {
e1.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
public ArrayList<String> getFullAudioPath() {
ArrayList<String> fullPath=new ArrayList<String>();
fullPath.clear();
String path=filePath();
File f=new File(path);
if(f.isDirectory())
{
File[] files=f.listFiles();
for(int i=0;i<files.length;i++)
{
String fpath=path+File.separator+files[i].getName().toString().trim();
System.out.println(\"File Full Path======>>>\"+fpath);
fullPath.add(fpath);
}
}
return fullPath;
}
public String filePath() {
String newFolderName=\"/MyAudio\";
String extstoredir=Environment.getExternalStorageDirectory().toString();
String newPath=extstoredir+newFolderName;
return newPath;
}
public String getCombineFile() {
String newFolderName=\"/MyComAudio\";
String extstoredir=Environment.getExternalStorageDirectory().toString();
String path=extstoredir+newFolderName;
File myNewPath=new File(path);
if(!myNewPath.exists()) {
myNewPath.mkdir();
}
String audname=\"ComAudio\";
String ext=\".3gp\";
File audio=new File(myNewPath,audname+ext);
if(audio.exists()) {
audio.delete();
}
String audpath=path+\"/\"+audname+ext;
Log.d(\"Combined audio file\",audpath);
return audpath;
}
解决方法
您不能仅通过在另一个
.3gp
文件的末尾写入一个ѭ1end文件的内容来合并两个.3gp
文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。