VB.net将标签信息转换为mp3文件

时间:2016-04-06 14:09:41

标签: mediaelement

如何使用MediaElement获取有关声音文件的内部信息?

我知道如何获取具有NaturalDuration属性的歌曲文件的持续时间,但我希望能够访问Author,而其他人则标记许多mp3文件包含在自身中。有没有办法只使用MediaElement来做到这一点?我知道怎么做,但只有WMP,我真的需要用MediaElement来做,因为我的应用程序是一个UWP应用程序。

感谢!!!

1 个答案:

答案 0 :(得分:0)

好的,迟到的可能不是那么优雅,但这是我获取mp3文件持续时间的解决方案。我使用了MusicProperties Class。使用此课程,您可以访问文件中的任何音乐标签信息。

Public Function infoMP3(elfichero As String)As String

Dim salida As String = ""
Dim miTask = Task.Run(Async Function() As Task(Of String)
                          Dim musicFile As StorageFile = Await StorageFile.GetFileFromPathAsync(elfichero)
                          Dim FileProperties As StorageItemContentProperties = musicFile.Properties
                          Dim musicFileProperties As MusicProperties = Await FileProperties.GetMusicPropertiesAsync()
                          Dim tiempo = musicFileProperties.Duration
                          Dim horas As String
                          If tiempo.Hours < 10 Then
                              horas = "0" & tiempo.Hours.ToString
                          Else
                              horas = tiempo.Hours.ToString
                          End If
                          Dim minutos As String
                          If tiempo.Minutes < 10 Then
                              minutos = "0" & tiempo.Minutes.ToString
                          Else
                              minutos = tiempo.Minutes.ToString
                          End If
                          Dim segundos As String
                          If tiempo.Seconds < 10 Then
                              segundos = "0" & tiempo.Seconds.ToString
                          Else
                              segundos = tiempo.Seconds.ToString
                          End If
                          Dim autor = musicFileProperties.Artist
                          Dim titulo = musicFileProperties.Title

                          Dim presalida As String = "[" & horas & ":" & minutos & ":" & segundos & "];[" & titulo & "];[" & autor & "]    " & elfichero
                          Return presalida
                      End Function)
miTask.Wait()
salida = miTask.Result
Return salida

结束功能 要在以后在Windows 10上访问文件,您必须保存文件和/或文件夹的权限。选择它们时,请执行此操作。

... Dim listToken = Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(rutaS)......

其中rutaS是SotorageFolder对象。