如何用C#合并多个MP3文件?

时间:2022-09-10 06:37:01
比如:将a.mp3和b.mp3两个音乐文件连接起来,合并成c.mp3。
   最好给出代码。。

   谢谢大虾们帮忙!

24 个解决方案

#1


你去找找解碼MP3资料吧

#2


你最好现去了解MP3的数据结构,否则合并啊分割啊,无从谈起

#3


没有做过这方面的

#4



mp3 A=a.mp3;
mp3 B=b.mp3;
mp3 C=new mp3();
C = A + B; 

开玩笑的,其实我也不会

#5


朝着这方向去写吧!

FileStream AddStream = new FileStream(ExePath + "C.MP3", FileMode.Create); //C.MP3
BinaryWriter AddWriter = new BinaryWriter(AddStream);  

#6


要了解MP3文件的编码格式。
没研究过这个相关的。帮顶。

#7


谢谢大家顶啊,还需要了解mp3的数据结构吗?C#不提供此类的方法吗?我刚才试Dos里面的copy /b功能就可以实现

#8


该回复于2011-05-13 20:23:49被版主删除

#9


学习

#10



            FileStream AddStream = new FileStream(@"C:\C.mp3", FileMode.Create); //C.MP3
            BinaryWriter AddWriter = new BinaryWriter(AddStream);
            
            FileStream TempStreamA = new FileStream(@"C:\A.MP3", FileMode.Open);
            BinaryReader TempReaderA = new BinaryReader(TempStreamA);

            AddWriter.Write(TempReaderA.ReadBytes((int)TempStreamA.Length));
            TempReaderA.Close();     
            TempStreamA.Close();    

 
            FileStream TempStreamB = new FileStream(@"C:\B.MP3", FileMode.Open);          
            BinaryReader TempReaderB = new BinaryReader(TempStreamB);

            AddWriter.Write(TempReaderB.ReadBytes((int)TempStreamB.Length));
            TempReaderB.Close();
            TempStreamB.Close();

            AddWriter.Close();
            AddStream.Close();

#11


首先要了解mp3文件的数据结构,合并两个文件其实很简单。

#12


#10楼 的答案就可以,就是有点繁琐。
但确实是一个标准的正确答案。
不必理会MP3格式什么的东西,合并以后直接就可以播放,不会出现问题的。

#13


学习!!!!

#15


http://www.codeproject.com/KB/audio-video/CWave.aspx 

可以合成.wav文件,你再找找有没有合成mp3文件的

#16


以我现在的操作系统知识,貌似不用理会什么mp3格式吧,什么格式在电脑里都是一段二进制流,要播放出来才需要理会格式
直接把这两个文件流读入内存,拼接好再存入硬盘不就好了?

#17


MP3文件尾记录了一些信息,如直接合并,不知在播放时会怎样?

#18


学习~~

#19


jf来的

#20


谢谢大家,方法像10楼的就可以,我试验了一下没有问题,万分感谢!!

#21


ding...

#22


学习下,正需要,谢谢

#23


我也需要这样的功能函数。

#24


不错,学习了

#1


你去找找解碼MP3资料吧

#2


你最好现去了解MP3的数据结构,否则合并啊分割啊,无从谈起

#3


没有做过这方面的

#4



mp3 A=a.mp3;
mp3 B=b.mp3;
mp3 C=new mp3();
C = A + B; 

开玩笑的,其实我也不会

#5


朝着这方向去写吧!

FileStream AddStream = new FileStream(ExePath + "C.MP3", FileMode.Create); //C.MP3
BinaryWriter AddWriter = new BinaryWriter(AddStream);  

#6


要了解MP3文件的编码格式。
没研究过这个相关的。帮顶。

#7


谢谢大家顶啊,还需要了解mp3的数据结构吗?C#不提供此类的方法吗?我刚才试Dos里面的copy /b功能就可以实现

#8


该回复于2011-05-13 20:23:49被版主删除

#9


学习

#10



            FileStream AddStream = new FileStream(@"C:\C.mp3", FileMode.Create); //C.MP3
            BinaryWriter AddWriter = new BinaryWriter(AddStream);
            
            FileStream TempStreamA = new FileStream(@"C:\A.MP3", FileMode.Open);
            BinaryReader TempReaderA = new BinaryReader(TempStreamA);

            AddWriter.Write(TempReaderA.ReadBytes((int)TempStreamA.Length));
            TempReaderA.Close();     
            TempStreamA.Close();    

 
            FileStream TempStreamB = new FileStream(@"C:\B.MP3", FileMode.Open);          
            BinaryReader TempReaderB = new BinaryReader(TempStreamB);

            AddWriter.Write(TempReaderB.ReadBytes((int)TempStreamB.Length));
            TempReaderB.Close();
            TempStreamB.Close();

            AddWriter.Close();
            AddStream.Close();

#11


首先要了解mp3文件的数据结构,合并两个文件其实很简单。

#12


#10楼 的答案就可以,就是有点繁琐。
但确实是一个标准的正确答案。
不必理会MP3格式什么的东西,合并以后直接就可以播放,不会出现问题的。

#13


学习!!!!

#14


#15


http://www.codeproject.com/KB/audio-video/CWave.aspx 

可以合成.wav文件,你再找找有没有合成mp3文件的

#16


以我现在的操作系统知识,貌似不用理会什么mp3格式吧,什么格式在电脑里都是一段二进制流,要播放出来才需要理会格式
直接把这两个文件流读入内存,拼接好再存入硬盘不就好了?

#17


MP3文件尾记录了一些信息,如直接合并,不知在播放时会怎样?

#18


学习~~

#19


jf来的

#20


谢谢大家,方法像10楼的就可以,我试验了一下没有问题,万分感谢!!

#21


ding...

#22


学习下,正需要,谢谢

#23


我也需要这样的功能函数。

#24


不错,学习了