先简单说一下MP3的ID3 标记,因为主要是操作这个玩意
MP3最开始的时候没有我们今天看到的那样,有歌手、年代,专集等等信息
只有一些简单的参数如yes/no来表示是不是privated或者copyrighted等信息,这样对MP3的相关工作带来了很多不便,1996年的时候有个老外提出来在每个MP3后面追加一段数据,用以存放上述的那些信息,后来就发展成为id3 v1 据我所知的现在已经到1.1了,具体的还是自己去查一下吧
还是老习惯,用metadata来引入DLL,我以前有文章贴过的,不知道的请自己去查
看代码
<!--METADATA TYPE="typelib"
UUID="00000205-0000-0010-8000-00AA006D2EA4"
NAME="ADODB Type Library"
-->
<%
Function ConvertBin(Binary)
'This function converts a binary byte into an ASCII byte.
for i = 1 to LenB(Binary)
strChar = chr(AscB(MidB(Binary,i,1)))
ConvertBin = ConvertBin & strChar
Next
End Function
dim objStream
dim strTag, strSongName, strArtist, strAlbum, strYear, _
strComment, strGenre, strFile
'Specify the folder to iterate through, displaying all the MP3s
Const folder = "C:\mp3s\"
'Grab the folder information
Dim objFSO, objFolder, objFile
Set objFSO = Server.CreateObject("Scripting.FileSYstemObject")
Set objFolder = objFSO.GetFolder(folder)
'Create the Stream object
set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
'Loop through the files in the folder
For Each objFile in objFolder.Files
'Open the stream
objStream.Open
objStream.LoadFromFile objFile.Path
'Read the last 128 bytes
objStream.Position = objStream.size - 128
'Read the ID3 v1 tag info
strTag = ConvertBin(objStream.Read(3))
if ucase(strTag) = "TAG" then
strSongName = ConvertBin(objStream.Read(30))
strArtist = ConvertBin(objStream.Read(30))
strAlbum = ConvertBin(objStream.Read(30))
strYear = ConvertBin(objStream.Read(4))
strComment = ConvertBin(objStream.Read(30))
end if
'Display the results
response.write "<table><tr><td colspan=2><h3>" & _
"ID3 Tag info for:</td></tr><tr>" & _
"<td colspan=2>" & objFile.Name & "</td></tr>"
response.write "<tr><td><b>Artist: </b></td>" & _
"<td>" & strArtist & "</td></tr>"
response.write "<tr><td><b>Track: </b></td>" & _
"<td>" & strSongName & "</td></tr>"
response.write "<tr><td><b>Album: </b></td>" & _
<td>" & strAlbum & "</td></tr>"
response.write "<tr><td><b>Year: </b></td>" & _
"<td>" & strYear & "</td></tr>"
response.write "<tr><td><b>Comment: </b>" & _
"</td><td>" & strComment & "</td></tr>"
response.write "</table>"
objStream.Close
Response.Write "<p><hr><p>"
Next
Set objStream = Nothing 'Clean up...
%>
自己试试吧
希望能对你有所帮助
用ASP实现对MP3曲目信息的操作
2019-10-31 13:40asp教程网 ASP教程
先简单说一下MP3的ID3 标记,因为主要是操作这个玩意 MP3最开始的时候没有我们今天看到的那样,有歌手、年代,专集等等信息 只有一些简单的参数如yes/no来表示是不是privated或者copyrighted等信息,这样对MP3的相关工作带来了很多不
延伸 · 阅读
- 2019-10-31ASP中FSO对象对IIS WEB服务器数据安全的威胁及对策
- 2019-10-31ASP中文本文件与数据库文件的数据交换(FSO)
- 2019-10-31ASP中FSO的神奇功能 - FSO不能做到的
- 2019-10-31ASP中FSO的神奇功能 - 用FSO进行内容管理
- 2019-10-31ASP中FSO的神奇功能 - 使用FSO进行搜索
- 2019-10-31ASP中FSO的神奇功能 - 权限许可
- ASP教程
ASP编程入门进阶(八):内置对象Session
ASP对象中除了用于发送(Response)、接收和处理数据(requeest)、服务器访问(Server)的对象外,还有一些非常实用的标记Active Server应用程序(Application)和...
- ASP教程
ASP 递归调用 已知节点查找根节点的函数
ASP 递归调用 已知节点查找根节点的函数...
- ASP教程
asp数组的使用介绍
定义简单数组 有两种方法在asp中定义和初始化数组,让我们看看每种的例子: 方法一: MyArray = Array(Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct, Nov,Dec) 数组大小由初始...
- ASP教程
ASP备份SQL Server数据库改进版
改进的ASP备份SQL Server数据库,网上原理的不是很好,需要的朋友可以参考下。...
- ASP教程
用xmlhttp编写web采集程序
web采集程序?网页抓取程序?小倫程序?不管怎么叫,这种程序应用倒是蛮广的。本文不讨论这种使用这种程序引起的版权或道德问题,只谈这种程序在...
- ASP教程
基于ASP实现QQ在线查询功能
这篇文章给大家介绍使用asp实现qq在线查询功能,涉及到的知识点有xmlhttp读取腾讯网站相应的html代码获取qq头像。对qq在线查询感兴趣的朋友可以参考下本...
- ASP教程
用js实现QQ在线查询功能
这段程序的方法是利用XMLHTTP来读取腾讯网站的相应HTML代码获取QQ的头像,根据这个想法,我们还可以抓取很多其他网站的信息,如天气预报、新闻等等。...
- ASP教程
ASP正则表达式清除HTML指定标签的方法
这篇文章主要介绍了ASP正则表达式清除HTML指定标签的方法,告诉大家如何精准的过滤掉某些特定的属性标签和参数,感兴趣的小伙伴们可以参考一下...