可以说明如何合并/合并两个媒体文件到一个?
我发现了一个关于audioInputStream
的主题,但现在它在Android中不受支持,并且所有代码都是java。
在StackOverflow上,我在这里找到了这个链接 但在那里我找不到解决方案 - 这些链接仅适用于流媒体音频。谁能告诉我?
P.S以及为什么我不能开始赏金?:(
答案 0 :(得分:10)
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();
}
}
答案 1 :(得分:4)
考虑.mp3
个文件的两种情况:
在这种情况下,我们可以将第二个文件附加到第一个文件的末尾。这可以使用Android上提供的文件类来实现。
在这种情况下,必须重新编码其中一个剪辑,以确保两个文件具有相同的采样频率和通道数。要做到这一点,我们需要解码MP3,获取PCM样本,处理它以改变采样频率,然后重新编码为MP3。据我所知,android没有转码或重新编码API。一种选择是通过JNI使用像lame / FFMPEG这样的外部库来重新编码。