加入MP3文件 - 转换的Java code到Android [英] Join MP3 files - converting Java code to Android
本文介绍了加入MP3文件 - 转换的Java code到Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图做一个程序,可以加入2 MP3文件,并将它们保存在android的SD卡上。我有Java的code,它是工作,但是当我尝试将其转换到Android也给出了一些错误。
在Java的code下面写的。它的工作完美。
进口java.io. *;
公共类TuneDoorJava {
公共静态无效的主要(字串[] args)抛出FileNotFoundException异常,IOException异常{
的FileInputStream fistream1 =新的FileInputStream(F:\\ aa.mp3); //第一个源文件
的FileInputStream fistream2 =新的FileInputStream(F:\\ bb.mp3); //第二个源文件
的SequenceInputStream sistream =新的SequenceInputStream(fistream1,fistream2);
FileOutputStream中fostream =新的FileOutputStream(F:\\ final.mp3); // destinationfile
INT温度;
而((TEMP = sistream.read())!= -1)
{
// System.out.print((char)的温度); //打印在DOS提示符下
fostream.write(临时); //写入档案
}
fostream.close();
sistream.close();
fistream1.close();
fistream2.close();
}
}
在Android的,我想要做的是:
公共类MainActivity延伸活动{
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
// FileOutputStream中fostream = NULL;
的FileInputStream拳=(的FileInputStream)getResources()openRawResource(R.raw.t)。
的FileInputStream fist2 =(的FileInputStream)getResources()openRawResource(R.raw.v)。
文件SD卡= Environment.getExternalStorageDirectory();
文件DIR =新的文件(sdCard.getAbsolutePath()+/ DIR1);
dir.mkdirs();
档案文件=新的文件(目录,文件名);
//的FileInputStream fistream1 =新的FileInputStream(); //第一个源文件
//的FileInputStream fistream2 =新的FileInputStream(F:\\ bb.mp3); //第二个源文件
的SequenceInputStream sistream =新的SequenceInputStream(握拳,fist2);
FileOutputStream中fostream =新的FileOutputStream(文件);
INT温度;
而((TEMP = sistream.read())!= -1)
{
// System.out.print((char)的温度); //打印在DOS提示符下
fostream.write(临时); //写入档案
}
fostream.close();
sistream.close();
fistream1.close();
fistream2.close();
}
}
解决方案
- 给这个权限 WRITE_EXTERNAL_STORAGE
这是从我的项目工作code:
公共类ConcateSongActivity延伸活动{
按钮mbutt;
/ **第一次创建活动时调用。 * /
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
mbutt =(按钮)findViewById(R.id.button_Click_Karo);
mbutt.setOnClickListener(新OnClickListener(){
@覆盖
公共无效的onClick(查看为arg0){
尝试 {
的FileInputStream FIS1 =新的FileInputStream(/ SD卡/ viv0.wav);
的FileInputStream FIS2 =新的FileInputStream(/ SD卡/ viv1.wav);
的SequenceInputStream SIS =新的SequenceInputStream(FIS1,FIS2);
FileOutputStream中FOS =新的FileOutputStream(新文件(/ SD卡/ vis.wav));
INT温度;
尝试 {
而((TEMP = sis.read())!= -1){
fos.write(临时);
}
}赶上(IOException异常E){
// TODO自动生成的catch块
e.printStackTrace();
}
}赶上(FileNotFoundException异常E){
// TODO自动生成的catch块
e.printStackTrace();
}
}
});
}
}
I am trying to make a program which can join 2 MP3 files and save them on the android SD card. I have Java code that is working but when I try to convert it to Android it gives some error.
In Java code is written below. It's working perfect.
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();
}
}
In Android, what I'm trying to do is:
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();
}
}
解决方案
- Give this permission WRITE_EXTERNAL_STORAGE
Here is the working code from my project:
public class ConcateSongActivity extends Activity {
Button mbutt;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mbutt = (Button)findViewById(R.id.button_Click_Karo);
mbutt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
try {
FileInputStream fis1 = new FileInputStream("/sdcard/viv0.wav");
FileInputStream fis2 = new FileInputStream("/sdcard/viv1.wav");
SequenceInputStream sis = new SequenceInputStream(fis1,fis2);
FileOutputStream fos = new FileOutputStream(new File("/sdcard/vis.wav"));
int temp;
try {
while ((temp = sis.read())!= -1){
fos.write(temp);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
}
这篇关于加入MP3文件 - 转换的Java code到Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文