上一篇:怎样判断一个盘上是否有文件 >>
用ASP实现对MP3曲目信息的操作
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...
%>
自己试试吧
希望能对你有所帮助
http://www.sanchat.com
下一篇:关于用ADO STREAM做的无组件上传程序简单介绍 >>
相关文章:
- · 列出指定目录下的所有文件和目录
- · 读取目录下的所有文件(包括子目录下的所有文件)
- · ASP中FSO的神奇功能 - FSO不能做到的
- · ASP中FSO的神奇功能 - 用FSO进行内容管理
- · ASP中FSO的神奇功能 - 使用FSO进行搜索
- · ASP中FSO的神奇功能 - 权限许可
- · ASP中FSO的神奇功能 - 文件读取
- · ASP中FSO的神奇功能 - 写文件
- · ASP中FSO的神奇功能 - 简介
- · 读取目录下的文件得到一个数组
- · 奇妙的文件系统对象组件
- · ASP.NET2.0导航功能之配置会员和角色
- · C#+ASP.NET开发基于Web的RSS阅读器
- · 在ASP.NET程序中实现语音合成
- · 在Apache上调试ASP.NET 1.1/2.0代码
- · ASP.NET初学:建立ASP.NET开发平台
- · 用ASP.Net和Access编写留言本
- · .net中发mail到hotmail中乱码问题的解决
- · ASP.Net应用程序的多进程模型
- · 用 ASP.NET 2.0 改进的 ViewState 加快网站速度
- · 在ASP.NET中使用Session常见问题集锦
- · ASP.NET文章管理系统:系统分析与设计
- · asp.net开发常用技巧收集
- · ASP.NET 2.0运行时简要分析
- · 在IIS6.0下ASP .NET 的版本冲突问题
- · ASP.NET:目录的遍历
- · ASP.NET:目录创建和删除
- · ASP.Net:基于窗体的身份验证
- · 防刷新重复提交、防后退方法
- · ASP.NET程序实现博客日历
- · 掌握Web窗体的生命周期与状态管理
- · ASP.NET 移动 Web 窗体和 ASP.NET 兼容性
- · ASP.NET入门随想之多态、接口与委托
- · ASP.Net项目出错处理方法汇总
- · 利用ASP.NET程序来访问Excel文档
- · ASP.NET应用程序开发七大技巧
- · VB.NET开发人员必备参考10本书目
- · 用ADO.NET处理层次数据
