2016-04-06 2 views
0

Comment puis-je obtenir des informations internes sur les fichiers son en utilisant un MediaElement?VB.net obtenir des informations d'étiquette dans les fichiers mp3

Je sais comment obtenir la durée d'un fichier de morceau avec la propriété NaturalDuration mais je souhaite accéder à Author et d'autres balises que de nombreux fichiers mp3 incluent eux-mêmes. Y at-il un moyen de le faire en utilisant seulement MediaElement? Je sais comment le faire, mais seulement avec WMP et je dois vraiment le faire juste avec un MediaElement parce que mon application est une application UWP.

Merci !!!

Répondre

0

Ok, en retard et peut-être pas si élégant mais c'était ma solution pour obtenir la durée d'un fichier mp3. J'ai utilisé la classe MusicProperties. Avec cette classe, vous avez accès à toutes les informations sur les étiquettes musicales dans le fichier.

Fonction publique 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 

End Function Pour accéder aux fichiers plus tard sur Windows 10, vous devez enregistrer l'autorisation pour les fichiers et/ou dossiers. Faites-le lorsque vous les sélectionnez.

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

où RUTAS est un objet SotorageFolder.