नहीं मेरा उत्तर, नेट 4.0 में How do can I use LAME to encode an wav to an mp3 c#
सबसे आसान तरीका से पेस्ट कॉपी:
उपयोग दृश्य स्टूडियो Nuget पैकेज प्रबंधक कंसोल:
Install-Package NAudio.Lame
कोड स्निप: मेमोरी स्ट्रीम में भाषण भेजें, फिर mp3 के रूप में सहेजें:
//reference System.Speech
using System.Speech.Synthesis;
using System.Speech.AudioFormat;
//reference Nuget Package NAudio.Lame
using NAudio.Wave;
using NAudio.Lame;
using (SpeechSynthesizer reader = new SpeechSynthesizer()) {
//set some settings
reader.Volume = 100;
reader.Rate = 0; //medium
//save to memory stream
MemoryStream ms = new MemoryStream();
reader.SetOutputToWaveStream(ms);
//do speaking
reader.Speak("This is a test mp3");
//now convert to mp3 using LameEncoder or shell out to audiograbber
ConvertWavStreamToMp3File(ref ms, "mytest.mp3");
}
public static void ConvertWavStreamToMp3File(ref MemoryStream ms, string savetofilename) {
//rewind to beginning of stream
ms.Seek(0, SeekOrigin.Begin);
using (var retMs = new MemoryStream())
using (var rdr = new WaveFileReader(ms))
using (var wtr = new LameMP3FileWriter(savetofilename, rdr.WaveFormat, LAMEPreset.VBR_90)) {
rdr.CopyTo(wtr);
}
}
का उपयोग करके एक पूर्ण पथ होने की आवश्यकता होगी, मैंने आपके समान कोड का प्रयास किया था, स्थानीय पर सही काम करता था लेकिन सर्वर पर एमपी 3 फ़ाइल बनाने में असमर्थ था। क्या आपको पता है कि सर्वर पर हमें किस कॉन्फ़िगरेशन की आवश्यकता है? –
आपको काम करने के लिए नोडियो के लिए सर्वर पर कुछ डीएलएस तैनात करने की आवश्यकता है उदा। क्या आपने libmp3lame.32.dll और libmp3lame.64.dll को अपने exe के समान फ़ोल्डर में रखा था? – Cel
हां मेरे पास है, मेरे पास उन्हें बिन फ़ोल्डर और रूट निर्देशिका में भी है। लेकिन जब मैं सर्वर पर यह एप्लिकेशन चलाता हूं तो यह आपके द्वारा दर्ज किए गए बहुत बड़े टेक्स्ट से स्वतंत्र 2kb के आकार के साथ एक एमपी 3 फ़ाइल बनाता है और एमपी 3 नहीं खेलता है। मुझे लगता है कि सर्वर पर कुछ मुद्दों के कारण यह एमपी 3 ठीक से नहीं बना सकता है। –