加入MP3文件 - 转换的Java code到Android [英] Join MP3 files - converting Java code to Android

查看:103
本文介绍了加入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_STORAG​​E

这是从我的项目工作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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆