Функция VB (VBA) для определения продолжительности медиафайла

Получение длительности медиафайла формулой Excel

Узнать продолжительность (время) звучания аудиофайла (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:

Компонент WindowsMediaPlayer на форме VBA в Excel

В форме используется следующий код:

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 нулевой продолжительности. Может быть подскажите, как это можно обойти?

Подскажите как для большого количества аудиофайлов вытянуть их продолжительность в миллисекундах, по имени файлов

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
  ____    _     _       _____   ____    ____  
| ___| | |_ | | |___ | | _ \ / ___|
|___ \ | __| | | / / | | | | \___ \
___) | | |_ | |___ / / | |_| | ___) |
|____/ \__| |_____| /_/ |____/ |____/
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.