ผมขอพูดสั้น ๆ เกี่ยวกับแท็ก ID3 ของ MP3 ก่อน เพราะส่วนใหญ่จะใช้เพื่อควบคุมสิ่งนี้
ในตอนแรก MP3 ยังไม่มีข้อมูลเกี่ยวกับนักร้อง ปี อัลบั้ม ฯลฯ อย่างที่เราเห็นในปัจจุบัน
มีเพียงพารามิเตอร์ง่ายๆ บางตัวเท่านั้น เช่น ใช่/ไม่ใช่ เพื่อระบุว่าเป็นไฟล์ส่วนตัวหรือมีลิขสิทธิ์ เป็นต้น ซึ่งทำให้เกิดความไม่สะดวกอย่างมากกับงานที่เกี่ยวข้องกับ MP3 เพื่อใช้เก็บข้อมูลข้างต้น ต่อมาได้พัฒนาเป็น id3 v1 เท่าที่ผมรู้ตอนนี้มันถึง 1.1 แล้ว ผมควรลองดูด้วยตัวเองดีกว่า
ยังคงเป็นนิสัยเก่าในการใช้ข้อมูลเมตาเพื่อแนะนำ DLL ฉันเคยโพสต์เกี่ยวกับเรื่องนี้มาก่อน หากคุณไม่ทราบ โปรดตรวจสอบด้วยตนเอง
ดูรหัสสิ
<!--ประเภทข้อมูลเมตา=typelib
UUID=00000205-0000-0010-8000-00AA006D2EA4
NAME=ไลบรารีประเภท ADODB
-
-
ฟังก์ชั่น ConvertBin(ไบนารี่)
'ฟังก์ชันนี้จะแปลงไบต์ไบนารี่ให้เป็นไบต์ ASCII
สำหรับ i = 1 ถึง LenB (ไบนารี)
strChar = chr(AscB(MidB(ไบนารี,i,1)))
ConvertBin = ConvertBin & strChar
ต่อไป
ฟังก์ชันสิ้นสุด
dimobjStream
strTag สลัว, strSongName, strArtist, strAlbum, strYear, _
strComment, strGenre, strFile
'ระบุโฟลเดอร์ที่จะวนซ้ำโดยแสดงไฟล์ MP3 ทั้งหมด
โฟลเดอร์ Const = C:/mp3s/
'ดึงข้อมูลโฟลเดอร์
หรี่แสง objFSO, objFolder, objFile
ตั้งค่า objFSO = Server.CreateObject (Scripting.FileSYstemObject)
ตั้งค่า objFolder = objFSO.GetFolder (โฟลเดอร์)
'สร้างวัตถุสตรีม
ตั้ง objStream = Server.CreateObject (ADODB.Stream)
objStream.Type = adTypeBinary
'วนซ้ำไฟล์ในโฟลเดอร์
สำหรับแต่ละ objFile ใน objFolder.Files
'เปิดสตรีม
objStream.เปิด
objStream.LoadFromFile objFile.Path
'อ่าน 128 ไบต์สุดท้าย'
objStream.Position =objStream.size - 128
'อ่านข้อมูลแท็ก ID3 v1
strTag = ConvertBin(objStream.Read(3))
ถ้า ucase(strTag) = TAG แล้ว
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))
สิ้นสุดถ้า
'แสดงผล.
การตอบสนองเขียน <table><tr><td colspan=2><h3> & _
ข้อมูลแท็ก ID3 สำหรับ:</td></tr><tr> & _
<td colspan=2> & objFile.Name & </td></tr>
response.write <tr><td><b>ศิลปิน: </b></td> & _
<td> & strArtist & </td></tr>
response.write <tr><td><b>ติดตาม: </b></td> & _
<td> & strSongName& </td></tr>
response.write <tr><td><b>อัลบั้ม: </b></td> & _
<td> & strAlbum & </td></tr>
response.write <tr><td><b>ปี: </b></td> & _
<td> & strYear & </td></tr>
response.write <tr><td><b>ความคิดเห็น: </b> & _
</td><td> & strComment & </td></tr>
response.write </table>
objStream ปิด
การตอบสนองเขียน <p><hr><p>
ต่อไป
ตั้งค่า objStream = ไม่มีอะไร 'ล้างข้อมูล...
-
ลองด้วยตัวเอง