标题:获取MP3里的TAG信息[如歌手,网址,专集等]
只看楼主
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
结帖率:100%
 问题点数:0 回复次数:12 
获取MP3里的TAG信息[如歌手,网址,专集等]

using System;
using System.IO;
namespace mpthreemsg
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
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:\news.mp3", FileMode.Open); //use filestream open your mp3file
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();
}
}
}

搜索更多相关主题的帖子: TAG 专集 summary 歌手 网址 
2007-02-03 08:43
spa429
Rank: 1
等 级:新手上路
威 望:1
帖 子:52
专家分:0
注 册:2006-9-4
得分:0 
顶,哈哈

2007-02-03 10:20
zone0356224
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-2-1
得分:0 
TAG是什么意思啊?
这段程序怎么使用呢???
把MP3拽到这个运行的程序里面?

2007-02-03 10:24
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
顶啊

2007-02-03 10:30
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
得分:0 
这是一段控件台[DOS]形式 的程序,
每个MP3文件都有一段TAG信息里面保存有歌手名字,专集名字等等信息。不信你用记事本打开你那动听的MP3文件,翻到最后能认出一些信息来的。
你在用千千静听听歌看列表时提示一首歌的TAG信息,
用C#就是这样得来的!

XAplus!
讨论群:51090447
删吧删吧,把我的号给删了!
2007-02-03 10:33
zone0356224
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-2-1
得分:0 
哦,刚才没看到,不好意思。这段就是从“d:\news.mp3”的路径中获取信息吧。
FileStream fs = new FileStream(@"d:\news.mp3", FileMode.Open);

2007-02-03 10:34
zone0356224
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-2-1
得分:0 
我想问下这三句代码是什么意思呢?

fs.Seek(-128, SeekOrigin.End);
fs.Read(b, 0, 128);

String sFlag = System.Text.Encoding.Default.GetString(b, 0, 3);

2007-02-03 10:35
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
得分:0 
第一句文件定位,定位到MP3 TAG信息处
第二句读取定位块的TAG信息,
第三句读TAG信息到一个变量中。用ENCODEING是为了支持中文及其他语言!

XAplus!
讨论群:51090447
删吧删吧,把我的号给删了!
2007-02-03 10:46
zone0356224
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-2-1
得分:0 
学到了,谢谢

2007-02-03 10:53
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
得分:0 
http://bbs.bc-cn.net/dispbbs.asp?boardid=117&replyid=405988&id=104871&page=1&skin=0&Star=1

效果地址,播放列表提示的那黄色的就是TAG信息了,当然没这么多,有些是我自己加的附加TAG信息

XAplus!
讨论群:51090447
删吧删吧,把我的号给删了!
2007-02-03 10:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-119427-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.344165 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved