This answer शैल 32 के लिए पी/Invoke के बारे में मुझे सामान्य Windows Vista/7/2008/2008R2 API तक पहुंचने के लिए Windows API Code Pack की याद दिला दी।
यह बहुत आसान था शामिल नमूनों में PropertyEdit डेमो का उपयोग कर, Shell32 एपीआई यह पता लगाने की अवधि की तरह, विभिन्न मीडिया फ़ाइल गुण प्राप्त करने के।
मुझे लगता है एक ही शर्त उचित demultiplexers स्थापित होने के लिए लागू होता है, लेकिन यह काफी सरल था, क्योंकि यह केवल 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);
}
एक के लिए कुछ सामान्य गुण एमपीईजी -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
यह डायरेक्टशॉट एपीआई कहां है? क्या आप मुझे इस तीसरे हिस्से का यूआरएल भी दे सकते हैं? या क्या आपका मतलब है कि लाइट मेगा कोडेक पैक? – MonsterMMORPG
ठीक है एक फ़ाइल की कोशिश की और यह अवधि दिखाता है नैन: डी – MonsterMMORPG
धन्यवाद यह लाइन सेकंड के रूप में सही अवधि देता है: mediaDet.get_StreamLength (आउट मीडिया लम्बाई); – MonsterMMORPG