Определение хронометража mp3 файла - VB
Формулировка задачи:
Здравствуйте! Подскажите пожалуйста есть ли пример кода как считать длительность mp3 файла из vb6? Знаю что расширенная версия ID3 тега содержит поле "время конца". Но во всех примерах которые попадались мне по тегам нет подобного.
Решение задачи: «Определение хронометража mp3 файла»
textual
Листинг программы
Option Explicit
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringW" (ByVal lpstrCommand As Long, ByVal lpstrReturnString As Long, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Const MCI_ALIAS As String = "Media_1" ' Любой псевдоним
Sub form_load()
Dim strFileName As String
Dim buf As String
Dim Length As Single
Dim dLength As Date
' Задаем имя аудио-файла
strFileName = "u:\Разная\9-para_normalnih vstavay.mp3"
' Обход ошибки пробелов в имени и пути к файлу
strFileName = Replace(strFileName, Chr(34), "")
If InStr(strFileName, " ") <> 0 Then strFileName = Chr(34) & strFileName & Chr(34)
buf = Space$(100)
mciSendString StrPtr("Close " & MCI_ALIAS), 0&, 0&, 0&
If 0 = mciSendString(StrPtr("Open " & strFileName & " alias " & MCI_ALIAS), 0&, 0&, 0&) Then
mciSendString StrPtr("Set " & MCI_ALIAS & " time format milliseconds"), 0&, 0&, 0&
If 0 = mciSendString(StrPtr("Status " & MCI_ALIAS & " length"), StrPtr(buf), Len(buf), 0&) Then
Length = CSng(Left$(buf, InStr(buf, vbNullChar) - 1))
dLength = TimeSerial(0, 0, Length \ 1000)
Debug.Print Length & " ms. = " & dLength
End If
mciSendString StrPtr("Close " & MCI_ALIAS), 0&, 0&, 0&
End If
End Sub