VB.NET使用TagLib#读取MP3中的ID3v2标签
Taglib#是一个为.NET开发的元数据读取类库,为一个开源项目,可以在他们的官网上获取windows版本的源码包或者编译好的类库:http://download.banshee.fm/taglib-sharp/
可以使用下面的一个小小的类读取mp3音频文件中的ID3v2标签,类模块输出的字段包括最常用的专辑名称、专辑作者、歌曲标题和内嵌于mp3文件中的专辑封面。
内嵌的专辑封面的读取参阅这篇文章:http://social.msdn.microsoft.com/Forums/pl-PL/vbgeneral/thread/b540120b-1904-44ad-9448-9695482aebdf
Private Class ID3v2
Dim MP3 As TagLib.File= Nothing
Public lbAlbum, lbArtist, lbTitle As String
Public AlbumArt As Image = Nothing
Private Function GetString(ByVal str As String(), ByVal strDelimeter As String) As String
Dim value As String= Nothing
For i As Integer = 0 To str.Length - 1
value += str(i)
Ifi = str.Length - 1 Then Exit For
value += strDelimeter
Next
Return value
End Function
Sub New(ByVal lpFile As String)
MP3 = TagLib.File.Create(lpFile)
If MP3.Tag.Album = Nothing OrElse MP3.Tag.Album.Trim = "" Then
lbAlbum = "Unknown"
Else
lbAlbum = MP3.Tag.Album
End If
If MP3.Tag.Title = Nothing OrElse MP3.Tag.Title.Trim = "" Then
'如果歌曲标题字段为空,则默认使用文件名作Á为歌曲的标题
lbTitle = GetFileName(lpFile)
Else
lbTitle = MP3.Tag.Title
EndIf
lbArtist = GetString(MP3.Tag.AlbumArtists, ",")
If lbArtist = Nothing OrElse lbArtist.Trim = "" Then lbArtist = "Unknown"
If Not MP3.Tag.Pictures.Length >= 1 Then
AlbumArt = My.Resources.rhythmbox
Return
End If
'Esle
Dim bin = DirectCast(MP3.Tag.Pictures(0).Data.Data, Byte())
AlbumArt = Image.FromStream(New MemoryStream(bin)).GetThumbnailImage(115, 115, Nothing, System.IntPtr.Zero)
End Sub
Private Function GetFileName(ByVal path As String) As String
Dim Tmp As String() = Split(path, "\")
'找到文件拓展名,并将其去除
For i As Integer = Tmp(Tmp.Length - 1).Length To 1 Step -1
IfMid(Tmp(Tmp.Length - 1), i, 1) = "."Then ReturnMid(Tmp(Tmp.Length - 1), 1, i - 1).Trim
Next
'没有文件拓展名的,则直接返回文件名
Return Tmp(Tmp.Length - 1).Trim
End Function
End Class
嗯,效果吗,真的很不错
不过,似乎TagLib-Sharp对utf8编码的中文不是非常的兼容,读取的时候很容易出现乱码,对于中文字符串的处理似乎需要而外的解码处理,需要在日后查阅资料来解决这个问题,郁闷纠结中。。。
VB.NET使用TagLib#读取MP3中的ID3v2标签的更多相关文章
- C#读取MP3文件的专辑图片和ID3V2Tag信息(带代码)
第二次更新,后面的代码有问题,有些专辑图片读取不到.发现是PNG图片的问题.在读取的过程中调试发现,图片帧前10个字节包含了图片的格式,在有些歌曲写着JPEG的格式,数据却是PNG的.先说下思路. j ...
- java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)
使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...
- mp3 音频 音乐 tag ID3 ID3V1 ID3V2 标签 读取信息 获得图片 jpeg bmp 图片转换等
mp3 音频 音乐 tag ID3 ID3V1 ID3V2 标签 读取信息 获得图片 jpeg bmp 图片转换(上) MP3文件格式(二)---ID3v2 图:ID3V1标签结构 图:ID3V2标签 ...
- Open Xml 读取Excel中的图片
在我的一个项目中,需要分析客户提供的Excel, 读出其中的图片信息(显示在Excel的第几行,第几列,以及图片本身). 网络上有许多使用Open Xml插入图片到Word,Excel的文章, 但 ...
- Python中如何读取xls中的数据
要想读取EXCEL中的数据,首先得下载xlrd包,地址:https://pypi.python.org/pypi/xlrd 安装方法:下载解压后,利用windows dos命令进入解压目录eg,c ...
- 读取NVRAM中的SN(barcode)
在Custom_NvRam_LID.h中,找到需要读取的ID对应的值 实现NvRAMAgent import java.lang.String; import android.os.RemoteExc ...
- php读取出字符串中的img标签中的图片路径
php读取出字符串中的img标签中的图片路径 $pageContents = '字符串,带img标签'; $pageContents = str_replace('\"','"', ...
- iOS开发--应用设置及用户默认设置【2、读取应用中的设置】
在上一节中,我们通过探讨应用的系统设置的基本功能,了解运用bundle捆绑包以及plist文件的基本开发.用户能够使用设置应用来声明他们的偏好设置,那么我们怎样去调用用户所设置的参数呢 ...
- IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中
需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A:读取文件中的数据 B:把数 ...
随机推荐
- Ceph:pg peering过程分析
转自:https://www.ustack.com/blog/ceph%ef%bc%8dpg-peering/ Peering:互为副本的三个(此处为设置的副本个数,通常设置为3)pg的元数据达到一致 ...
- Android开发调试中遇到的Waiting for HOME解决方案
显示问题如图: 基本解决思路:在AVD里面单独启动运行一次模拟器,然后尝试运行程序,基本会解决这个问题.
- Some Interview Questions About Python
一大波超链接即将袭来 Django认证流程 Python实现阶乘 Python文件处理 Python统计日志文件IP出现次数 JSON数据解析 JSON数据解析2 买卖股票的最佳时期 读取一个大文件比 ...
- 用php实现四种常见的排序算法
几种常见的排序 排序是一个程序员的基本功,对于初级phper,更是可以通过排序算法来锻炼自己的思维能力. 所谓排序,就是对一组数据,按照某个顺序排列的过程.下面就总结四种常用的php排序算法,分别是冒 ...
- beego配置文件
关于App配置: #App配置 for Api AppName = ApiService RunMode = dev RouterCaseSensitive = true ServerName = A ...
- nginx 转发 由于php语法错误 导致的 50x
server { listen 8008; root /root/php-test; index index.php index.html index.htm ...
- 【英语】Bingo口语笔记(82) - go系列
- COGS 2638. 数列操作ψ 线段树
传送门 : COGS 2638. 数列操作ψ 线段树 这道题让我们维护区间最大值,以及维护区间and,or一个数 我们考虑用线段树进行维护,这时候我们就要用到吉司机线段树啦 QAQ 由于发现若干次an ...
- Hbase 参数配置及优化
From:http://www.open-open.com/lib/view/open1346684547787.html 接触hbase已有半年的时间,查了很多资料,也参考了很多别人心得,也希望把自 ...
- Java Integer和String内存存储
标签: java内存string 2016-01-10 12:51 1545人阅读 评论(2) 收藏 举报 分类: Java(7) 版权声明:本文为博主原创文章,未经博主允许不得转载. 先看代码: ...