如何在核心java代码中组合两首以上的歌曲?
我想在Java代码的帮助下,将mp4、mp3、Avi和wmv等格式的歌曲组合成一个文件,因为在我的服务器中,我只有JDK环境,到目前为止,我使用的是核心Java文件操作代码。具体如下如何在核心java代码中组合两首以上的歌曲?,java,Java,我想在Java代码的帮助下,将mp4、mp3、Avi和wmv等格式的歌曲组合成一个文件,因为在我的服务器中,我只有JDK环境,到目前为止,我使用的是核心Java文件操作代码。具体如下 String str="E:\\Movies\\Dark Skies (2013)\\Dark.mp4"; String ftr="F:\\CRS\\stv.mp4"; File file=new File(str); File Kile=new File(ftr);
String str="E:\\Movies\\Dark Skies (2013)\\Dark.mp4";
String ftr="F:\\CRS\\stv.mp4";
File file=new File(str);
File Kile=new File(ftr);
FileInputStream fis=new FileInputStream(file);
FileOutputStream fos=new FileOutputStream(Kile);
int luffersize=102400000;
byte[] luffer=new byte[luffersize];
int lenght=(int) fis.available();
if ((fis.read(luffer)) != 0) {
try {
fos.write(luffer, 0, lenght);
System.out.println("working");
} catch (IOException e) {
e.printStackTrace();
}finally{
fis.close();
fos.close();
}
}
}
下面是我为演示如何将两个文件连接(顺序组合)在一起而编写的一些代码 这不考虑MP4文件格式。我不熟悉MP4,但MP3只是一系列512字节的块,带有任意ID3头。如果可以去掉第二个文件的标题,那么两个音乐文件的一般连接(即“catsong1.mpsong2.mp3>newsong.mp3”)确实可以可靠地工作。但我不熟悉MP4,我很确定它可以支持多种编解码器。因此,YMMV使用此解决方案。否则,使用编解码器库进行正式解析和流式处理 在任何情况下,下面是一些将两个文件组合在一起的示例代码:
public void CombineFiles(String filename1, String filename2, String filenameOuput) throws IOException
{
FileInputStream stream1 = new FileInputStream(filename1);
FileInputStream stream2 = new FileInputStream(filename2);
FileOutputStream streamOut = new FileOutputStream(filenameOuput);
FileInputStream stream = stream1;
byte [] buffer = new byte[8192]; // 8K temp buffer should suffice
while (true)
{
int bytesread = stream.read(buffer);
if (bytesread != -1)
{
streamOut.write(buffer, 0, bytesread);
}
else
{
// handle end of file and moving to the next file
if (stream == stream2)
break;
else
stream = stream2;
}
}
streamOut.close();
stream1.close();
stream2.close();
}
不同的文件类型包含不同的信息。您不能简单地将所有字节放入一个文件中,然后希望它能正常工作。你需要找到一个为适当修改MP3/MP4/AVI/etc文件而编写的库,并使用它。你说的“组合”是什么意思?1.混合它们?2.一个接一个?3.或者只是把它们放在一个容器里(比如拉链)?如果你选择1或2,你需要先彻底研究MP3格式的规范。组合文件意味着“在单个文件中写入两个文件的字节流,并且在播放音频或视频时应该一个接一个地播放”嗨,贾斯汀·尼塞纳,请运行我给出的代码并检查!!我能将两个相同格式的文件连接成一个有效文件!!这在玩的时候效果很好。。请不要在不了解java文件操作的情况下回复!!感谢以上代码选择!!!我给出的上述代码可以很好地组合mp3文件(通常是音频歌曲),但在以mp4格式组合(视频文件)时,它正确地写入了第一个文件InputStream,但无法在同一文件中写入第二个文件流。mp4或avi(视频格式)文件的任何帮助。提前感谢通过java代码连接视频文件(mp4格式)的所有帮助!!!!谢谢你advance@IrfanPervez-如果您喜欢该复选框,请向上投票。MP3是一种集编解码器和容器格式于一体的格式。它可以很好地处理基本的拆分和连接。但MP4只是一种容器格式。两个不同的MP4文件可以是完全不同的编码和流类型。因此,将720p录制的H264视频文件与另一个仅为AAC音频的文件连接起来意味着什么?您需要找到一个MP4解析/写入库,该库将允许您读取和写入原始编解码器流。另一个人发布,然后收回此链接: