2011-04-19 19 views
5

में मिनटों में ऑडियो फ़ाइल की लंबाई खोजने की आवश्यकता है मेरे पास एएसपीनेट एप्लिकेशन है जिसमें मैं उन्हें स्ट्रीम में परिवर्तित करके और डेटाबेस में अपलोड करके ऑडियो फाइल अपलोड कर रहा हूं। लेकिन लंबाई नहीं ढूंढ पा रहा है ऑडियो फाइल मिनटों में। यहां समस्या यह है कि मेरा एएसपीनेट एप्लिकेशन क्लाउड में मौजूद है। अपलोड करने के लिए मैं एएसपीनेट के अपलोड फ़ाइल नियंत्रण का उपयोग कर रहा हूं। कृपया इसके लिए समाधान सुझाएं।एएसपीनेट

+2

नीचे दिए गए द्वारा तुम क्या सभी ऑडियो स्वरूपों का समर्थन? –

+0

प्रवाह पर स्टैक पर एक समान पोस्ट का एक लिंक यहां दिया गया है http://stackoverflow.com/questions/1214040/how-to-get-the-length-of-a-mp3-in-c-sharp – Wajeeh

+0

यहां प्रवाह पर स्टैक पर एक समान पोस्ट का एक लिंक है http://stackoverflow.com/questions/1214040/how-to-get-the-length-of-a-mp3-in-c-sharp – Wajeeh

उत्तर

0

पर लग सकता है मैं उम्मीद है कि आप बिट दर और फ़ाइल लंबाई से गणना कर सकते हैं: (file.lenghtInBits/kbsp)/= 60 मिनट।

बल्कि मानते हैं कि आप फ़ाइल शीर्षलेख से थोड़ी दर प्राप्त कर सकते हैं।

0

आपको विंडोज मीडिया प्लेयर का संदर्भ देने की आवश्यकता होगी। अपनी परियोजना में wmp.dll जोड़ने के लिए कॉम ऐड-इन्स पर जाएं।

string Duration = null; 
WMPLib.WindowsMediaPlayer w = new WMPLib.WindowsMediaPlayer(); 
WMPLib.IWMPMedia mediaFile = w.newMedia(Filename); 
if (mediaFile != null) { 
    Duration = mediaFile.durationString; 
} 
w.close(); 
+0

आपके क्लाइंट पर काम करेगा लेकिन हमेशा विंडोज सर्वर पर .avi और .wav फ़ाइलों के लिए 0 की अवधि देता है। – desmati

0

हम इसे आसानी से कर सकते कोड

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); 
} 
folderItem = null; 
folder = null; 
shell = null; 
return duration; 
}