Узнать продолжительность (время) звучания аудиофайла (MP3, WAV и т.д.), или длительность видеофайла (видеоролика) из Excel совсем несложно.
Используйте функцию ПродолжительностьМедиафайла:
(функцию можно использовать как в макросах, так и на листе Excel)
Sub Пример_Использования_Функции_ПродолжительностьМедиафайла() Путь = "E:\Music\MODERN_TALKING With_a_little_love.mp3" MsgBox "Продолжительность в секундах: " & ПродолжительностьМедиафайла(Путь), vbInformation, Путь End Sub
А вот и код самой функции:
Function ПродолжительностьМедиафайла(ByVal filename$) As Double ' получает в качестве параметра полный путь к медиафайлу ' возвращает целое число - его продолжительность (в секундах) On Error Resume Next: Dim MCI As New clsMCI ' создаём новый экземпляр класса MCI.OpenMCI filename$ ' открываем медиафайл (AVI, MPEG, MP3, WAV и т.д.) ' если удалось прочитать медиафайл If MCI.MCIError = False Then ПродолжительностьМедиафайла = MCI.Length MCI.CloseMCI: Set MCI = Nothing ' уничтожаем объект MCI End Function
Для работы этой функции используется модуль класса (см. пример во вложении)
Обратите внимание на формулы в зелёных ячейках - они по имени файла возвращают его продолжительность в секундах
Можно использовать и компонент WindowsMediaPlayer:
В форме используется следующий код:
Private Sub CommandButton1_Click() Me.WindowsMediaPlayer1.URL = "D:\LedStudio content\ambulance.avi" End Sub Private Sub CommandButton2_Click() Me.TextBox1 = "": On Error Resume Next With Me.WindowsMediaPlayer1.currentMedia Me.TextBox1 = Me.TextBox1 & "Продолжительность ролика:" & vbNewLine Me.TextBox1 = Me.TextBox1 & "В секундах: " & .duration & vbNewLine Me.TextBox1 = Me.TextBox1 & "В минутах: " & .durationString & vbNewLine End With End Sub
Пример - в прикреплённом файле WindowsMediaPlayer.xls
Комментарии
Добрый день! Ловлю крест "Ошибка при инициализации MCI", предполагаю, что спотыкается на файлах mp3 нулевой продолжительности. Может быть подскажите, как это можно обойти?
Подскажите как для большого количества аудиофайлов вытянуть их продолжительность в миллисекундах, по имени файлов
Отправить комментарий