有没有用c#写的读取mp3的tag信息的例子啊? mp3的tag信息在mp3文件的头部和尾部你应该去看看具体是怎么定义的然就不就知道该怎么做了? (-: 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我知道它是在mp3 的最后128字节里定义的,但是我不知道用c#怎么取出来这128个字节的信息从一个mp3 文件里面。呜呜, 可以使用editplus或者UltraEdit将mp3文件打开。在mp3文件的开头,结尾 会有些文本信息。这些就是楼主说的mp3文件的tag信息吧。不过到底在什么地方开始,什么地方结束。楼主得查查资料了 我有vb的例子,正在翻译到C#里面,楼上的朋友,这里Mp3 tag有2个版本,你们说的是版本1,目前大家都在使用版本2用对版本1的处理方式,不能正确的现在版本2的全部信息 谢谢大家哦,应该是版本2,就是ID3 的版本2吧,过河兵 说到的editplus和ultraedit是文本编辑器吧? 我想知道在c#里面怎么取呢!cysoft 能告诉我你如何翻译到c#里面么,用c#怎么读入mp3 文件呢(字符串还是文件流或者文本呢)?希望说详细一点哦! <code author="maddog"> fs=File.OpenRead("e:\\path\\2.mp3"); fs.Seek(-128,System.IO.SeekOrigin.End); byte[] buf= new Byte[128]; fs.Read(buf,0,128); Console.Write("test"); Console.Write(System.Text.Encoding.Default.GetString(buf)); <code> static void Main(string[] args) { byte[] b = new byte[128]; string sTitle; string sSinger; string sAlbum; string sYear; string sComm; FileStream fs = new FileStream(@"d:\mp3.mp3", FileMode.Open); fs.Seek(-128, SeekOrigin.End); fs.Read(b, 0, 128); bool isSet=false; String sFlag = System.Text.Encoding.Default.GetString(b, 0, 3); if (sFlag.CompareTo("TAG")==0) { System.Console.WriteLine ("Tag is setted!"); isSet=true; } if (isSet) { //get title of song; sTitle = System.Text.Encoding.Default.GetString (b,3,30); System.Console.WriteLine ("Title:" + sTitle); //get singer; sSinger = System.Text.Encoding.Default.GetString (b,33,30); System.Console.WriteLine ("Singer:" + sSinger); //get album; sAlbum = System.Text.Encoding.Default.GetString (b,63,30); System.Console.WriteLine ("Album:" + sAlbum); //get Year of publish; sYear= System.Text.Encoding.Default.GetString (b,93,4); System.Console.WriteLine ("Year:" + sYear); //get Comment; sComm= System.Text.Encoding.Default.GetString (b,97,30); System.Console.WriteLine ("Comment:" + sComm); } System.Console.WriteLine("Any key to exit!"); System.Console.Read(); } 求.net Reflector7.0插件 远程连接sql2000,IP是变动的,有路由器 未将对象的引用设置到对象的实例 c# 承繼後的 where 字 c# form中listbox绑定的郁闷问题,请教用过的人 一条sql语句,请赐教 接分贴:请wangao88(呆子)接分 怎样侦听文件或目录的变动 在VC中的写了个 dll, 返回一个字符串(CString类型),C#中如何使用? usercontrol怎么大小怎么动态改变? 怎么做能播放wav、mp3等音频文件的控件(我没分了后日再补) 上传问题请net_lover(孟子E章) 回答?谢谢分不够再给,,,
在mp3文件的开头,结尾 会有些文本信息。
这些就是楼主说的mp3文件的tag信息吧。
不过到底在什么地方开始,什么地方结束。楼主得查查资料了
用对版本1的处理方式,不能正确的现在版本2的全部信息
过河兵 说到的editplus和ultraedit是文本编辑器吧? 我想知道在c#里面怎么取呢!
cysoft 能告诉我你如何翻译到c#里面么,用c#怎么读入mp3 文件呢(字符串还是文件流或者文本呢)?希望说详细一点哦!
fs=File.OpenRead("e:\\path\\2.mp3");
fs.Seek(-128,System.IO.SeekOrigin.End);
byte[] buf= new Byte[128];
fs.Read(buf,0,128);
Console.Write("test"); Console.Write(System.Text.Encoding.Default.GetString(buf));
<code>
{
byte[] b = new byte[128];
string sTitle;
string sSinger;
string sAlbum;
string sYear;
string sComm; FileStream fs = new FileStream(@"d:\mp3.mp3", FileMode.Open);
fs.Seek(-128, SeekOrigin.End);
fs.Read(b, 0, 128);
bool isSet=false;
String sFlag = System.Text.Encoding.Default.GetString(b, 0, 3);
if (sFlag.CompareTo("TAG")==0)
{
System.Console.WriteLine ("Tag is setted!");
isSet=true;
}
if (isSet)
{
//get title of song;
sTitle = System.Text.Encoding.Default.GetString (b,3,30);
System.Console.WriteLine ("Title:" + sTitle);
//get singer;
sSinger = System.Text.Encoding.Default.GetString (b,33,30);
System.Console.WriteLine ("Singer:" + sSinger);
//get album;
sAlbum = System.Text.Encoding.Default.GetString (b,63,30);
System.Console.WriteLine ("Album:" + sAlbum);
//get Year of publish;
sYear= System.Text.Encoding.Default.GetString (b,93,4);
System.Console.WriteLine ("Year:" + sYear);
//get Comment;
sComm= System.Text.Encoding.Default.GetString (b,97,30);
System.Console.WriteLine ("Comment:" + sComm);
}
System.Console.WriteLine("Any key to exit!");
System.Console.Read();
}