我正在尝试制作一个可以将两个MP3文件合并并保存到安卓SD卡上的程序。我有一段Java代码是有效的,但当我尝试将其转换为安卓时,会出现一些错误。
以下是Java代码。它运行得非常完美。
import java.io.*;
public class TuneDoorJava {
public static void main(String[] args) throws FileNotFoundException, IOException {
FileInputStream fistream1 = new FileInputStream("F:\\aa.mp3"); // first source file
FileInputStream fistream2 = new FileInputStream("F:\\bb.mp3");//second source file
SequenceInputStream sistream = new SequenceInputStream(fistream1, fistream2);
FileOutputStream fostream = new FileOutputStream("F:\\final.mp3");//destinationfile
int temp;
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();
fistream1.close();
fistream2.close();
}
}
在Android中,我想做的是:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// FileOutputStream fostream=null;
FileInputStream fist=(FileInputStream)getResources().openRawResource(R.raw.t);
FileInputStream fist2=(FileInputStream)getResources().openRawResource(R.raw.v);
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/dir1");
dir.mkdirs();
File file = new File(dir, "filename");
//FileInputStream fistream1 = new FileInputStream(); // first source file
//FileInputStream fistream2 = new FileInputStream("F:\\bb.mp3");//second source file
SequenceInputStream sistream = new SequenceInputStream(fist, fist2);
FileOutputStream fostream = new FileOutputStream(file);
int temp;
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();
fistream1.close();
fistream2.close();
}
}