预备知识

mp3格式拼接只需要把文件的字节流拼在一起就能播放,这比WAV简单不要太多


程序代码

using System.Collections.Generic;
using System.IO;
using System.Text;

namespace MP3
{
class Program
{
static void Main(string[] args)
{
List<string> ls = new List<string> {
@"C:\Users\Administrator\Desktop\mp3\c.mp3",
@"C:\Users\Administrator\Desktop\mp3\a.mp3",
@"C:\Users\Administrator\Desktop\mp3\b.mp3",
@"C:\Users\Administrator\Desktop\out.mp3"
};
Get_mp3(ls);
}
static void Get_mp3(List<string> l)
{
List<string> ls = l;
int n = ls.Count;
byte[] OUT = File_2_byte(ls[0]);
for (int i = 0; i < n; i++)
{
if (i == n - 2)
{
using (StreamWriter sw = new StreamWriter(ls[i + 1], false, Encoding.GetEncoding(1252)))
{
sw.Write(Encoding.GetEncoding(1252).GetString(OUT));
}
return;
}
byte[] tmp = File_2_byte(ls[i + 1]);
OUT = Combine_2_byte(OUT, tmp);
}
}
static byte[] File_2_byte(string url)
{
long l = new FileInfo(url).Length;
byte[] b = new byte[l];
new FileStream(url, FileMode.Open).Read(b, 0, (int)l);
return b;
}
static byte[] Combine_2_byte(byte[] a, byte[] b)
{
long la = a.Length;
long lb = b.Length;
long lc = la + lb;
byte[] c = new byte[lc];
for (int i = 0; i < la; i++)
{
c[i] = a[i];
}
for (int i = 0; i < lb; i++)
{
c[i + la] = b[i];
}
return c;
}
}
}