This answer о P/Invoke для Shell32 напомнил мне об Windows API Code Pack для доступа к общим API-интерфейсам Windows Vista/7/2008/2008R2.
Было очень просто, используя демонстрацию PropertyEdit во включенных образцах, чтобы выяснить API Shell32, чтобы получить различные свойства медиафайлов, такие как продолжительность.
Я предполагаю, что то же самое условие применяется для Установив соответствующие демультиплексоры, но это было довольно просто, как это требуется только добавление ссылки на Microsoft.WindowsAPICodePack.dll
и Microsoft.WindowsAPICodePack.Shell.dll
и следующий код:
using Microsoft.WindowsAPICodePack.Shell;
using Microsoft.WindowsAPICodePack.Shell.PropertySystem;
using (ShellPropertyCollection properties = new ShellPropertyCollection(filePath))
{
foreach (IShellProperty prop in properties)
{
string value = (prop.ValueAsObject == null) ? "" : prop.FormatForDisplay(PropertyDescriptionFormatOptions.None);
Console.WriteLine("{0} = {1}", prop.CanonicalName, value);
}
}
using (ShellObject shell = ShellObject.FromParsingName(filePath))
{
// alternatively: shell.Properties.GetProperty("System.Media.Duration");
IShellProperty prop = shell.Properties.System.Media.Duration;
// Duration will be formatted as 00:44:08
string duration = prop.FormatForDisplay(PropertyDescriptionFormatOptions.None);
}
Некоторые общие свойства MPEG-4/AAC аудио файлов СМИ:
System.Audio.Format = {00001610-0000-0010-8000-00AA00389B71}
System.Media.Duration = 00:44:08
System.Audio.EncodingBitrate = ?56kbps
System.Audio.SampleRate = ?32 kHz
System.Audio.SampleSize = ?16 bit
System.Audio.ChannelCount = 2 (stereo)
System.Audio.StreamNumber = 1
System.DRM.IsProtected = No
System.KindText = Music
System.Kind = Music
Где этот API DirectShot? Можете ли вы также указать мне URL этой третьей части? Или вы имеете в виду, например, k lite mega кодек кодекса? – MonsterMMORPG
Хорошо пробовал файл, и он показывает продолжительность NAN: D – MonsterMMORPG
Спасибо, что эта строка дает правильную продолжительность в секундах: mediaDet.get_StreamLength (out mediaLength); – MonsterMMORPG