9 Ноябрь 2009

Как получить длину WAV файла (в сек. или в сэмплах)

Мультимедиа |  Таги: , , , , ,

Как получить длину WAV файла (в сек. или в сэмплах)

Option Explicit

Enum LEN_FORMAT
    frmSeconds = 0
    frmSamples = 1
End Enum
Type RIFF_HEAD
    riffFmt As String * 4
    lenOfFileData As Long
End Type
Type WAVE_HEAD
    waveFmt As String * 8
    lenOfThunk As Long
    format As Integer
    channels As Integer
    samplesPerSecond As Long
    avgBytesPerSecond As Long
    blockAlign As Integer
    bitsPerSample As Integer
End Type
Type DATA_HEAD
    dataStr As String * 4
    lenOfThunk As Long
End Type 

Public Function GetLenOfWaveFile(ByVal fileName As String, format As LEN_FORMAT) As Single
    Dim riffHead As RIFF_HEAD
    Dim waveHead As WAVE_HEAD
    Dim dataHead As DATA_HEAD

    ReadWaveHeader fileName, riffHead, waveHead, dataHead
    If format = frmSeconds Then
        GetLenOfWaveFile = (dataHead.lenOfThunk / waveHead.samplesPerSecond)
    Else
        GetLenOfWaveFile = dataHead.lenOfThunk
    End If
End Function


У нас один комментарий на запись “Как получить длину WAV файла (в сек. или в сэмплах)”

Почему бы Вам не высказать свое мнение! Позвольте нам узнать, что Вы думаете...

  1. 1 On 09.11.2009, Для школы said:

    Спасибо за код, ВЫ меня спасли.

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

Я не робот.


знаком ва дл ек а и ек знаком ва к пи в магазине.