问题 如何将两个mp3文件合并为一个(组合/连接)


可以告诉你怎么做 结合/合并 两个媒体文件合二为一?

我发现了一个主题 audioInputStream 但现在它不支持android,以及java的所有代码。

在StackOverflow上,我在这里找到了这个链接 但在那里我找不到解决方案 - 这些链接仅适用于流媒体音频。谁能告诉我?

P.S和为什么我不能开始赏金?:(


8803
2017-07-18 09:52


起源

对于p.s:问题还不到2天;在这里阅读更多: meta.stackexchange.com/questions/54994/... - Adinia
嗨,我想将两个合并两个mp3音频文件合并到一个文件中。如果你知道如何合并帮助me.thanks提前 - sandeep


答案:


考虑两种情况 .mp3 文件:

  • 具有相同采样频率和通道数的文件

在这种情况下,我们可以将第二个文件附加到第一个文件的末尾。这可以使用Android上提供的File类来实现。

  • 具有不同采样频率或通道数的文件。

在这种情况下,必须重新编码其中一个剪辑以确保两个文件具有相同的采样频率和通道数。要做到这一点,我们需要解码MP3,获取PCM样本,处理它以改变采样频率,然后重新编码为MP3。据我所知,android没有转码或重新编码API。一种选择是通过JNI使用像lame / FFMPEG这样的外部库进行重新编码。


4
2017-07-18 10:08



不,这对我没有帮助:(我想我会等待2天,而不是开始赏金..也许比人们可以帮助 - Peter
@Peter,你能解释一下你要合并的媒体文件格式吗? - Oak Bytes
mp3。我不需要将一个文件附加到其他文件。需要两个声音(例如:firts文件:1分钟,第二个35秒)合并为一个:| - Peter
@Peter从我的理解,你想合并部分MP3文件而不是完整的文件? - Oak Bytes
和“complite files”(在一个文件中看起来像视频和音轨) - Peter


import java.io.*;
public class TwoFiles
{
    public static void main(String args[]) throws IOException
    {
        FileInputStream fistream1 = new FileInputStream("C:\\Temp\\1.mp3");  // first source file
        FileInputStream fistream2 = new FileInputStream("C:\\Temp\\2.mp3");//second source file
        SequenceInputStream sistream = new SequenceInputStream(fistream1, fistream2);
        FileOutputStream fostream = new FileOutputStream("C:\\Temp\\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();
    }
}

10
2017-07-26 08:10



它是否相互附加音频或混合音频? - Ahmad Arslan
@ArslanAhmad这是为了追加音频。 SequenceInputStream是此代码的核心部分。 SequenceInputStream连接文档中提到的两个FileInputStream。此代码不会混合,而是会加入。 - Advait S
@shiva我使用相同的代码但不在我这里工作是我的问题链接帮助我。 stackoverflow.com/questions/35340025/... - Nisar Ahmad
我已经尝试过这个代码,所以它的工作原理,但除了final.mp3文件的长度与第一个相同,所以音频播放器可以播放第二个音频。我想问一下如何才能看到音频的总长度。 - kamboj
它只增加尺寸,,,但是当我打开它时,只播放第一个音频。 - SRB bans