VB 如何读取MP3文件的Tag信息,比如如何侦测到一个MP3文件中Tag属性里面的歌手名、歌曲名、专辑名等?
要详细可用的代码。网上的那个GetMp3Tag()函数好像不能用。那读取mp3文件头前面128字节文件信息的具体代码如何写呢?...
要详细可用的代码。网上的那个GetMp3Tag()函数好像不能用。
那读取mp3文件头前面128字节文件信息的具体代码如何写呢? 展开
那读取mp3文件头前面128字节文件信息的具体代码如何写呢? 展开
2个回答
展开全部
在窗体代码区复制下面代码,运行即可:
Option Explicit
'获得要操作的文件,返回一个包含文件名和路径的数组
Function MyGetFile()
On Error Resume Next
Dim strFile, objFso, objFile, objDialog
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "mp3 文件|*.mp3|wma 文件|*.wma|wav 文件|*.wav|所有 文件|*.*"
objDialog.ShowOpen
strFile = objDialog.FileName
Set objDialog = Nothing
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.GetFile(strFile)
If Err Then
If Err.Number = 5 Then Unload Me
MsgBox Err.Description
Err.Clear
Unload Me
Else
MyGetFile = Array(objFile.Name, objFile.ParentFolder)
End If
Set objFile = Nothing
Set objFso = Nothing
End Function
Private Sub Form_Load()
Dim arrFile(), oFile, oDir, oShell
Dim i, sTmp, sPrint
arrFile = MyGetFile()
Set oShell = CreateObject("Shell.Application")
Set oDir = oShell.NameSpace(arrFile(1) + "\")
Set oFile = oDir.ParseName(arrFile(0))
For i = 0 To 100
sTmp = oDir.GetDetailsOf(, i) + vbTab
If sTmp = vbTab Then Exit For
sPrint = sPrint + vbCrLf + sTmp + vbTab + _
oDir.GetDetailsOf(oFile, i)
Next
MsgBox sPrint
Set oFile = Nothing
Set oDir = Nothing
Set oShell = Nothing
End Sub
Option Explicit
'获得要操作的文件,返回一个包含文件名和路径的数组
Function MyGetFile()
On Error Resume Next
Dim strFile, objFso, objFile, objDialog
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "mp3 文件|*.mp3|wma 文件|*.wma|wav 文件|*.wav|所有 文件|*.*"
objDialog.ShowOpen
strFile = objDialog.FileName
Set objDialog = Nothing
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.GetFile(strFile)
If Err Then
If Err.Number = 5 Then Unload Me
MsgBox Err.Description
Err.Clear
Unload Me
Else
MyGetFile = Array(objFile.Name, objFile.ParentFolder)
End If
Set objFile = Nothing
Set objFso = Nothing
End Function
Private Sub Form_Load()
Dim arrFile(), oFile, oDir, oShell
Dim i, sTmp, sPrint
arrFile = MyGetFile()
Set oShell = CreateObject("Shell.Application")
Set oDir = oShell.NameSpace(arrFile(1) + "\")
Set oFile = oDir.ParseName(arrFile(0))
For i = 0 To 100
sTmp = oDir.GetDetailsOf(, i) + vbTab
If sTmp = vbTab Then Exit For
sPrint = sPrint + vbCrLf + sTmp + vbTab + _
oDir.GetDetailsOf(oFile, i)
Next
MsgBox sPrint
Set oFile = Nothing
Set oDir = Nothing
Set oShell = Nothing
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询