Android - 合并mp3文件

时间:2016-04-18 14:59:25

标签: android audio join mp3

我正在尝试使用此功能合并Android应用程序中的一些mp3文件:

private void mergeSongs(File mergedFile, Vector<InputStream> inputStreams){

    Enumeration<InputStream> enu = inputStreams.elements();

    try {

        SequenceInputStream sis = new SequenceInputStream(enu);

        if(!mergedFile.exists()){
            mergedFile.createNewFile();}

        FileOutputStream fos = new FileOutputStream(mergedFile);

        int temp;

        while ((temp = sis.read())!= -1){

            fos.write((byte)temp);

        }

        for (int i=0; i<inputStreams.size(); i++){

            InputStream fis1 = inputStreams.get(i);

            fis1.close();

        }

        sis.close();
        fos.close();

    } catch (IOException e) {
        e.printStackTrace();
    }

}

通过以下几行代码调用:

Vector<InputStream> inputStreams = new Vector<InputStream>();


    try {

        for (int i=1; i<6; i++){

            InputStream fis1 = getResources().openRawResource(getResources().getIdentifier("a" + i, "raw", getPackageName()));

            inputStreams.add(fis1);

        }


    } catch (Exception e) {
        e.printStackTrace();
    }

    mergeSongs(new File(Environment.getExternalStorageDirectory().getPath() + "/mergedFile.mp3"), inputStreams);

这是有效的,但合并音频的持续时间与第一个音频相同。 我该如何解决?

*我试图以三种不同的方式获得持续时间: 1)在android上使用mediaplayer 2)在android中使用MediaMetadataRetriever (所有这两个都返回相同的错误长度) 3)使用Windows资源管理器和Windows媒体播放器返回正确的长度

0 个答案:

没有答案