vb.net - 如何从 OpenFileDialog 获取专辑、艺术家等
问题描述
我基本上是在 vb.net 中制作一个音频播放器,用户可以在其中使用 openfiledialog 上传文件,然后稍后播放。我想从我上传的歌曲中收集一些元数据,例如要显示的专辑和艺术家。
我环顾四周,但似乎无法找到有关此问题的任何信息,如果有人有任何想法,将不胜感激。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button_Upload.Click
OpenFileDialog1.InitialDirectory = "C:\"
OpenFileDialog1.Title = "Upload A Song"
OpenFileDialog1.Filter = "Audio Files|*.mp3; *.wav"
OpenFileDialog1.Multiselect = False
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
Dim Upload_Path As String = IO.Path.Combine(Application.StartupPath, "Resources")
If IO.Directory.Exists(Upload_Path) Then
IO.File.Copy(OpenFileDialog1.FileName, IO.Path.Combine(Upload_Path, IO.Path.GetFileName(OpenFileDialog1.FileName)))
Else
System.IO.Directory.CreateDirectory(Upload_Path)
IO.File.Copy(OpenFileDialog1.FileName, IO.Path.Combine(Upload_Path, IO.Path.GetFileName(OpenFileDialog1.FileName)))
End If
Else
MsgBox("Invalid Selection")
End If
End Sub
解决方案
查看taglib-sharp。它支持从多种格式读取信息。
Dim tfile = TagLib.File.Create("C:\My audio.mp3");
Dim title As String = tfile.Tag.Title;
Dim duration As TimeSpan = tfile.Properties.Duration;
Console.WriteLine("Title: {0}, duration: {1}", title, duration);
推荐阅读
- python - 无法导入名称“MultiRNNCell”
- typescript - Vue @Watch 未触发布尔值更改
- authentication - 使用 oauth 2.oc 从 azure 函数调用 web api#
- r - knitr 在 ggplots 中渲染缺少的标签
- python - python3从字符串中提取:)符号
- assembly - AVR 汇编中的“set”指令有什么作用?
- java - 无法将类型“java.lang.String”的属性值转换为所需类型“java.sql.Date”
- java - Android Studio:Java:使用 ID 填充带有按钮的 2D 数组
- json - 如何在 db2 中查询扩展的 json 内容
- java - $text 查询需要 MongoDB 文本索引