VB.NET/ASP.NET-获取上传时MP3文件的持续时间
我正试图上传一个MP3文件到一个网站,同时查找音频的持续时间。我对ASP和VB.NET非常陌生,但我已经设法使用文件上载工具将文件上载到服务器 然而,我似乎不知道如何读取音频文件的持续时间 我并不是特别想要一个完整的解决方案(尽管那会很好),但如果有人能给我指出正确的方向,我将非常感激VB.NET/ASP.NET-获取上传时MP3文件的持续时间,asp.net,vb.net,audio,mp3,Asp.net,Vb.net,Audio,Mp3,我正试图上传一个MP3文件到一个网站,同时查找音频的持续时间。我对ASP和VB.NET非常陌生,但我已经设法使用文件上载工具将文件上载到服务器 然而,我似乎不知道如何读取音频文件的持续时间 我并不是特别想要一个完整的解决方案(尽管那会很好),但如果有人能给我指出正确的方向,我将非常感激 如果您需要更多信息,请告诉我,我会将其添加到问题中。我在最近使用naudio(使用软件包管理器下载)的项目中完成了这项工作。我已经快速地从c#转换了代码,没有进行测试,所以仔细检查错误 private s
如果您需要更多信息,请告诉我,我会将其添加到问题中。我在最近使用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
我不相信前面答案中的“*2.0”是合适的。我试过这个,结果是立体声mp3声音样本的实际持续时间的两倍。我建议使用以下代码,并在MSVS Community 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
hii将此代码添加到轨迹栏计时器不要忘记将标签添加到播放器
Label4.Text=AxWindowsMediaPlayer1.Ctlcontrols.currentItem.durationString
id3标记中是否有此信息>不确定。。。但如果是,你可以使用这种方法:或者类似的问题[