VB.NET/ASP.NET - 上传MP3文件的持续时间

时间:2013-05-03 16:36:44

标签: asp.net vb.net audio mp3

我正在尝试将MP3文件上传到网站并同时查找音频的持续时间。我是ASP和VB.NET的新手,但我已经设法使用文件上传工具将文件上传到服务器。

但是我似乎无法弄清楚如何读取音频文件的持续时间?

我并不是特别想要一个完整的解决方案(尽管那会很好),但如果有人能指出我正确的方向,我会非常感激。

如果您需要更多信息,请告诉我,我会将其添加到问题中。

3 个答案:

答案 0 :(得分:0)

我在最近使用naudio的项目中完成了这个(使用包管理器下载)。我已快速转换c#中的代码而不进行测试,因此请仔细检查错误。

    private shared function GetMp3Duration(filename as string) as double
        Dim duration as double = 0.0
        using (fs as FileStream = File.OpenRead(filename))
            Dim frame as Mp3Frame = Mp3Frame.LoadFromStream(fs)
            while (frame isnot nothing)
                if (frame.ChannelMode = ChannelMode.Mono) then
                    duration += frame.SampleCount / frame.SampleRate
                else
                    duration += frame.SampleCount * 2.0 / frame.SampleRate
                end if
                frame = Mp3Frame.LoadFromStream(fs)
            End While
        End Using
        return duration
    End Function

答案 1 :(得分:0)

我不相信" * 2.0"在上一个答案中是合适的。对于立体声mp3声音样本,我试过这个,结果持续时间是实际的两倍。我建议在MSVS社区2013中成功测试以下代码:

Imports NAudio.Wave
'...
Private Shared Function GetMp3Duration(filename As String) As Double
    Dim reader As New Mp3FileReader(filename)
    Dim duration As Double = reader.TotalTime.TotalSeconds
    reader.Dispose()
    Return duration
End Function

答案 2 :(得分:0)

hii将此代码添加到轨迹栏计时器,别忘了将laber添加到播放器

 Label4.Text = AxWindowsMediaPlayer1.Ctlcontrols.currentItem.durationString