2011-06-07 14 views
5

में LAME (lame_enc.dll) का उपयोग कैसे करें मैं अपने सी # .NET वेबसाइट में lame_enc.dll का उपयोग करने की कोशिश कर रहा हूं और मैं अटक गया हूं।मेरी सी # वेब साइट

मैं के साथ काम कर रहा हूँ: .NET फ्रेमवर्क 3.5/विजुअल वेब डेवलपर 2008 एक्सप्रेस संस्करण/(और कुछ आप जानना चाहते हैं होगा?)

मैंने सोचा कोड पर C# MP3 Compressor से कोड प्राप्त था परियोजना। एक बात मैंने ध्यान में रखी है कि यह परियोजना/पोस्ट जनवरी 2004 से है (इसलिए, यह पुराना है)

मैंने फ़ोल्डर्स "yeti.mmedia" और "yeti.mp3" को अपनी "App_Code" निर्देशिका में रखा और "बिन" "और" obj "निर्देशिका प्रत्येक के भीतर। तब मैंने परियोजना बनाने की कोशिश की।

  • yeti.mmedia/EditWaveWriter.cs
  • yeti.mmedia/EditWaveWriter.resx
    • yeti.mmedia/AssemblyInfo.cs: जब मैं त्रुटियों मिल गया मैं निम्न फ़ाइलों को परियोजना से छोड़कर समाप्त हो गया
    • yeti.mmedia/InFormatEdit.cs
    • yeti.mmedia/InFormatEdit.resx
    • yeti.mmedia/NumericTextBox.cs
    • yeti.mmedia/NumericTextBox.resx
    • yeti.mmedia/Win32Functions.cs
    • yeti.mp3/AssemblyInfo.cs
    • yeti.mp3/EditMp3Writer.cs
    • yeti.mp3/EditMp3Writer.resx

    ये मुझे लगता है विंडोज यूआई से संबंधित कोड फाइलें होने के लिए (जिसे मुझे सोनस की आवश्यकता नहीं है मैं इसे वेब पर कर रहा हूं)।

    मैंने भी बिन निर्देशिका में "lame_enc.dll" फ़ाइल डाली।

    मैं पृष्ठ पर उदाहरण के ऊपर लिंक के आधार पर एक परीक्षण पृष्ठ बनाया:

    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.IO; 
    using WaveLib; 
    using Yeti.MMedia; 
    using Yeti.MMedia.Mp3; 
    
    public partial class Documents : System.Web.UI.Page 
    { 
        protected void Page_Load(object sender, EventArgs e) 
        { 
         WaveStream InStr = new WaveStream(Server.MapPath(@"Temp/SomeFile.wav")); 
         try { 
          Mp3Writer writer = new Mp3Writer(new FileStream(Server.MapPath(@"Temp/SomeFile.mp3"), FileMode.Create), InStr.Format); 
          try { 
           byte[] buff = new byte[writer.OptimalBufferSize]; 
           int read = 0; 
           while ((read = InStr.Read(buff, 0, buff.Length)) > 0) { 
            writer.Write(buff, 0, read); 
           } 
          } 
          finally { 
           writer.Close(); 
          } 
         } 
         finally { 
          InStr.Close(); 
         } 
        } 
    } 
    

    तो, तो मैं यह पेज और त्रुटि मैं लोड है:

    DLL लोड करने में असमर्थ 'Lame_enc.dll': निर्दिष्ट मॉड्यूल नहीं मिला। (HRESULT से अपवाद: 0x8007007E)

    (मैं अपने प्रोजेक्ट में एक संदर्भ के रूप DLL नहीं जोड़ सकते, क्योंकि यह कहते हैं, "... यह एक COM घटक नहीं है।") मैं भी कोशिश की है नवीनतम जानकारी प्राप्त करना और महानतम (लंग 3.98.4) डीएलएल और एक ही समस्या थी। इसलिए, मुझे लगता है कि किसी अन्य प्रकार की परियोजना के बजाय वेबसाइट में इस कोड का उपयोग करने के बारे में कुछ अलग है। हालांकि मुझे यह नहीं पता है।

    उत्तर

    1

    मेरा अनुमान है कि, LAME का उपयोग नहीं किया गया है, क्या आपको प्रश्न में बॉक्स में इंस्टॉल करना होगा। उसके बाद, आपको कोड प्रोजेक्ट कोड सफलतापूर्वक उपयोग करने में सक्षम होना चाहिए। यदि यह काम नहीं करता है, तो ऐसा लगता है कि Lame_Enc.dll एक देशी घटक है और आपको PInvoke विधियों को करना होगा।

    +0

    मुझे विश्वास है कि वह जिस परियोजना का उपयोग कर रहा है वह मूल Lame_Enc लाइब्रेरी के आसपास एक प्रबंधित रैपर है। –

    +0

    संभवतः, लेकिन कहानी अभी भी वही है। यदि लेम COM था, तो यह पंजीकृत नहीं है। ऐसा लगता है कि यह मुद्दा नहीं है। यदि मूल है, तो यह या तो सही स्थान पर नहीं है या सही तरीके से सेट नहीं है।किसी भी तरह से, यह सुनिश्चित करने का सबसे आसान तरीका है कि यह सही है। यदि वह अभी भी काम नहीं करता है, तो .NET फ़ाइलों में संस्करणों और वास्तविक पॉइंटर्स के बीच कुछ बदल गया है। –

    +0

    यह अनुरोध करना संभव है कि किसी अन्य उपयोगकर्ता का विषय किसी विषय पर हो? मैं किसी और को संदेश भेजने का कोई तरीका नहीं देख सकता (मैं एसओ के लिए बिल्कुल नया हूं)। एसओ पर एक और सवाल है [http://stackoverflow.com/questions/1377019/unable-to-add-a-dll-reference-to-vs-2008) जो मुझे लगता है कि संबंधित हो सकता है। मुझे आश्चर्य है कि [बेसिक लाइफ] (http://stackoverflow.com/users/156755/basiclife) इस पर मदद कर सकता है। – Hewins

    संबंधित मुद्दे