java - 加入MP3文件——将Java代码转换为Android

标签 java android mp3

我正在尝试制作一个可以加入 2 个 MP3 文件并将它们保存在 android SD 卡上的程序。我有可用的 Java 代码,但当我尝试将其转换为 Android 时,出现了一些错误。

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();
    }
}

最佳答案

- 授予此权限WRITE_EXTERNAL_STORAGE

这是我项目的工作代码:

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();
                }


            }
        });
    }
}

关于java - 加入MP3文件——将Java代码转换为Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13656559/

相关文章:

java - 为什么 JPA 中名为 native 查询的别名不起作用?

android - 这个 Android Lint 是什么意思 : "Wrong orientation?"

java - 使用 Google App Engine 在服务器端读取 ID3 标签

ios - 从 NSData 解码 MP3 文件

android - Cocos2dx替换场景报错

c - 使用lame编码音频: Converting 32bit float to mp3

java - Gradle with ajc 不读取 Lombok 注释

java - 如何在 Android 编程中从图像中选择像素并降低该像素的不透明度

java - 为什么在 Android Studio 中使用 Firebase 数据库时 onClick 内的 "If Condition"不起作用?

android - BottomSheetDialogFragment 打开一半