用ASP实现就MP3曲目信息的操作全攻略

时间:2008-05-28 12:42:00 

先简单说一下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...
%>

自己试试吧

希望能对你有所帮助

标签:mp3,fso,操作,DLL,asp
0
投稿

猜你喜欢

  • Python爬虫中Selenium实现文件上传

    2023-03-27 22:00:26
  • Mootools 1.2教程(12)——用Drag.Move实现拖拽和拖放

    2008-12-05 12:29:00
  • python3实现的zip格式压缩文件夹操作示例

    2023-07-31 18:17:48
  • 解决Python传递中文参数的问题

    2021-04-10 09:00:07
  • mysql创建外键报错的原因及解决(can't not create table)

    2024-01-15 11:57:44
  • javascript解锁前端密码框常见功能做法

    2024-04-16 10:36:33
  • 使用Numpy打乱数组或打乱矩阵行

    2022-09-18 09:40:10
  • 基于express中路由规则及获取请求参数的方法

    2024-05-11 10:17:53
  • 打包发布Python模块的方法详解

    2021-04-03 06:10:56
  • python 如何将office文件转换为PDF

    2022-10-07 11:41:48
  • SQL中日期与字符串互相转换操作实例

    2024-01-27 15:41:56
  • django在接受post请求时显示403forbidden实例解析

    2021-12-19 22:41:27
  • python 文本单词提取和词频统计的实例

    2022-10-25 04:53:03
  • Python可视化神器pyecharts绘制饼状图

    2023-11-27 17:06:18
  • numpy实现合并多维矩阵、list的扩展方法

    2022-01-14 22:59:52
  • python math模块的基本使用教程

    2022-01-30 23:07:53
  • 详解python的数字类型变量与其方法

    2023-12-05 18:40:53
  • 一文学会利用python解决文章付费限制问题

    2021-04-09 08:23:51
  • 解决Atom安装Hydrogen无法运行python3的问题

    2021-07-19 22:16:01
  • pyhon如何把程序打包为whl

    2023-06-16 11:30:48
  • asp之家 网络编程 m.aspxhome.com