değil cevabım, .NET 4.0 How do can I use LAME to encode an wav to an mp3 c#
En kolay yoldan kopyalayıp yapıştırarak Snip: Bir bellek akışına konuşun, ardından mp3 olarak kaydedin:
//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);
}
}
kullanarak tam bir yol olmalı, aynı kodunuzu denedim, yerelde mükemmel çalışıyor ancak sunucuda mp3 dosyası oluşturamıyor. Sunucuda hangi yapılandırmaya ihtiyacımız olduğuna dair bir fikrin var mı? –
çalışmak için sunucuya bazı dlls dağıtmak gerekir. libb3lame.32.dll ve libmp3lame.64.dll dosyasını exe'nizdeki aynı klasöre koydunuz mu? – Cel
Evet, onları var, Bin klasörüne ve kök dizinine de sahibim.Ama bu uygulamayı sunucuda çalıştırdığımda, 2kb boyutunda, girdiğiniz çok büyük metinden bağımsız olarak bir mp3 dosyası oluşturur. mp3 oynamıyor. Ben sunucudaki bazı sorunlar nedeniyle mp3 düzgün bir şekilde oluşturamaz düşünüyorum. –