Obtenga la duración de Mp3 usando Shell32.Shell
Frecuentes
Visto 343 equipos
0
Tengo el siguiente código para obtener la duración del archivo mp3, pero devuelve una cadena vacía. El archivo se encuentra en la unidad c:
private string GetDuration(string FileFullPath)
{
string duration = "";
string fName = FileFullPath.Substring(FileFullPath.LastIndexOf("\\") + 1);
string filePath = FileFullPath.Substring(0, FileFullPath.LastIndexOf("\\"));
Shell32.Shell shell = new Shell32.ShellClass();
Shell32.Folder folder = shell.NameSpace(filePath);
Shell32.FolderItem folderItem = folder.ParseName(fName);
if (folderItem != null)
{
duration = folder.GetDetailsOf(folderItem, 21); //Only Empty for 21
}
folderItem = null;
folder = null;
shell = null;
return duration;
}
0 Respuestas
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c# winforms or haz tu propia pregunta.
¿De dónde viene el 21? De acuerdo con esta documentación, solo se documentan los valores -1 a 4: msdn.microsoft.com/en-us/library/windows/desktop/… - goric
Mire aquí. El audio es {64440490-4C8B-11D1-8B70-080036B11A03}, la propiedad de longitud es 3, la unidad es milisegundos. - Hans Passant
Gracias Hans, agregué esta cadena prop = (string)itm2.ExtendedProperty("{64440490-4C8B-11D1-8B70-080036B11A03} 3"); da el error: No se puede convertir el objeto de tipo 'System.UInt64' para escribir 'System.String'. - ARH