我想创建录音机近似功能已完成但是,我需要为此功能实现暂停和恢复功能我需要合并我的两个音频文件但我无法获得准确的结果。我已经使用了序列输入流,但这只合并了第一个文件 这是我的代码
FileInputStream fis1 = new FileInputStream(mergeFile.get(0));
@SuppressWarnings("resource")
FileInputStream fis2 = new FileInputStream(mergeFile.get(1));
Vector<FileInputStream> v = new Vector<FileInputStream>();
v.add(fis1);
v.add(fis2);
Enumeration<FileInputStream> e = v.elements();
String filepath = Environment.getExternalStorageDirectory()
.getPath();
File file = new File(filepath, "Test");
file.mkdir();
// InputStream inputStream1 = new FileInputStream(recording1);
// InputStream inputStream2 = new FileInputStream(recording2);
@SuppressWarnings("resource")
SequenceInputStream sistream = new SequenceInputStream(e);
FileOutputStream fostream = new FileOutputStream(file
+ "/myfile.mp3");
int temp = 0;
while ((temp = sistream.read()) != -1) {
// System.out.print( (char) temp ); // to print at DOS prompt
fostream.write(temp); // to write to file
}
fostream.close();
sistream.close();
// recording1.close();
// r/ecording2.close();
}
当我播放最终结果时,它只播放第一个文件。
答案 0 :(得分:1)
使用此合并代码
import java.io.*;
import java.util.*;
class Merger
{
public static void main(String args[]) throws Exception
{
System.out.println("enter the filename");
int a,no,i,j=1;
String str,start;
int ch;
Console c=System.console();
str=c.readLine();
System.out.println("enter the destination file size");
start=c.readLine();
a=Integer.parseInt(start);
File fr=new File(j+str);
if(!fr.exists())
{
System.out.println("error");
System.exit(0);
}
FileOutputStream fos=new FileOutputStream((str));
for(i=0,j=1; ;)
{
FileInputStream f=new FileInputStream(j+str);
for(i=0; (ch=f.read())!=-1 ;++i)
fos.write(ch);
j++;
File fq=new File(j+str);
if(!(fq).exists())
{
System.out.println("process completed");
System.exit(0);
}
}
}
}
为此您需要将您的mp3文件转换为输入流&amp;使用第二个输入流添加此输入流。这段文本文件的代码也可以用于音频文件。