我做了个音乐播放和管理软件,其中涉及到对音乐信息的处理。对于MP3,我已经能够处理其曲名,艺术家,专辑,年代等信息了(即ID3 TAG),但WMA似乎和MP3很不一样,找不到合适的方法。所以在这里提出此问题,我相信这里高手如云的环境一定可以解决的。
具体要求和简单,就是在VB中读取和写入WMA的那些信息即可。(曲名,艺术家,专辑,年代等)。如果有第三方控件能实现,也可以!
为这个问题我可头痛了很久了,感谢大家帮助!:)
具体要求和简单,就是在VB中读取和写入WMA的那些信息即可。(曲名,艺术家,专辑,年代等)。如果有第三方控件能实现,也可以!
为这个问题我可头痛了很久了,感谢大家帮助!:)
'在窗体上添加一个按钮,一个listbox
Private Sub Command1_Click()
Dim media As WMPLib.IWMPMedia
Dim mMediaPlayer As New WindowsMediaPlayer
Dim mfile As String, i As Long, s As String
Dim AttributeName As String, attributeCount As Long
mfile = "e:\media\music.wma"
Set media = mMediaPlayer.newMedia(mfile)
attributeCount = media.attributeCount
For i = 0 To attributeCount - 1
AttributeName = media.getAttributeName(i)
s = media.getItemInfo(AttributeName)
List1.AddItem AttributeName + "=" + s
Next
Set media = Nothing
Set mMediaPlayer = Nothing
End Sub
http://msdn.microsoft.com/library/en-us/wmform95/htm/workingwithmetadata.asp
【注意:这里索引都是以0为起点的。另外,并非所有属性都可以改!】Private Sub Command2_Click() '修改信息
Dim Media As WMPLib.IWMPMedia
Dim mMediaPlayer As New WindowsMediaPlayer
Dim i As Long, s As String, Itemname As String, mFile As String
s = txtTitle.Text '设置的新title值
'下面输入要更改的项目索引。第28项属性是WMA的TITLE,即曲目名称
i = Val(InputBox("Enter the index for the attribute:", , 28))
If i = 0 Then Exit Sub
mFile = Text1.Text '设置wma文件路径
Set Media = mMediaPlayer.newMedia(mFile)
If Trim(s) = "" Then Exit Sub
Itemname = Media.getAttributeName(i) '取得第28项属性的Itemname,因为下面必须用它才能更改
Media.setItemInfo Itemname, s '根据上面的Itemname和新的曲目s来更改
Set Media = Nothing
Set mMediaPlayer = Nothing
End Sub依照这种原理,对WMA的信息读取和写入都很简单了。不过,这里依赖着WMP.DLL,虽然WMP被微软捆绑再系统里,我们也不能保障每台机器上都有它的存在,如果要将它加入自己的程序安装包,那它4、5MB的体积确实有点...所以还是不很灵活。所以,问题还是没有完全解决,希望哪位知道如何按照文件格式写入wma信息的大侠给予指点!谢谢!PS.我也看了看那个MSDN信息,又多又难懂,我还只是个刚刚跨入大学校门的FRESHMAN,要把那些专业资料啃懂恐怕即使是中文的也很难...唉
http://dev.csdn.net/develop/article/68/68439.shtm