如何将两个 mp3 文件合并为一个(合并/加入)

Posted

技术标签:

【中文标题】如何将两个 mp3 文件合并为一个(合并/加入)【英文标题】:How to merge two mp3 files into one (combine/join) 【发布时间】:2011-10-07 13:14:58 【问题描述】:

谁能告诉我如何合并/合并两个媒体文件合二为一?

我找到了一个关于audioInputStream 的主题,但现在android 不支持它,所有代码都适用于java。

在 *** 上我在这里找到了这个链接 但是我找不到解决方案-这些链接仅在流式音频上。谁能告诉我?

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

【问题讨论】:

对于 p.s:问题还不到 2 天;在这里阅读更多:meta.stackexchange.com/questions/54994/… 嗨,我想要两个将两个 mp3 音频文件合并为一个文件。如果你知道如何合并帮助我。提前谢谢 【参考方案1】:
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();
    

【讨论】:

是相互附加音频还是混合音频? @ArslanAhmad 这是用于附加音频的。 SequenceInputStream 是这段代码的核心部分。如文档中所述,SequenceInputStream 连接两个 FileInputStream。此代码不会混合,而是会加入。 @shiva 我使用相同的代码但不适合我这里是我的问题链接帮助我。 ***.com/questions/35340025/… 我已经尝试过这段代码,所以它可以工作,但除了 final.mp3 文件的长度与第一个相同,因此音频播放器可以播放第二个音频。我想问一下如何查看音频的总长度。 它只会增加大小,但是当我打开它时,只播放第一个音频。【参考方案2】:

考虑.mp3 文件的两种情况:

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

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

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

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

【讨论】:

不,这对我没有帮助 :( 我想我会等 2 天,然后开始赏金......也许比人们可以提供的帮助 @Peter,你能解释一下你想合并哪些媒体文件格式吗? mp3 。我不需要将一个文件附加到另一个文件。需要两个声音(例如:第一个文件:1 分钟,第二个 35 秒)合并为一个:| @Peter 据我了解,您想合并部分 mp3 文件而不是完整文件? 和“完整文件”(看起来像一个文件中的视频和配乐)

以上是关于如何将两个 mp3 文件合并为一个(合并/加入)的主要内容,如果未能解决你的问题,请参考以下文章

合并iPhone上的音频文件

如何在 ffmpeg 中合并两个输入 rtp 流?

c#如何合并多个dll文件

如何将多个文件进行合并?

如何将MYSQL数据库 2个同样的数据库合并在一起?

如何将两个 wav 文件合并/合并为一个 wav 文件?