Определение хронометража 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

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы