Şu anda sesi yakalamak için NAudio kullanıyorum ve sadece bir wav dosyası oluşturuyorum. Dosyayı kaydetmeden önce bir mp3'e şifrelemek için bir yol arıyorum. LAME buldum ama lame_enc.dll dosyasını eklemeye çalıştığımda "Referans eklenemedi. Lütfen dosyanın erişilebilir olduğundan emin olun ve geçerli bir derleme veya COM bileşeni". Herhangi bir yardım takdir edilecektir.Bir wav'ı bir mp3 c'ye kodlamak için LAME'yi nasıl kullanabilirim? #
cevap
Sadece lame_enc.dll dosyasını bin klasörüne yerleştirin ve başvuruyu eklemeyi denemeyin. Bundan sonra bu kodu deneyin. 64,128 gibi ..... Burada da ayarlayabilirsiniz bit hızı
public byte[] ConvertWavToMP3(byte[] bt, uint bitrate)
{
MemoryStream ms = new MemoryStream(bt);
ms.Seek(0, SeekOrigin.Begin);
var ws = new WaveFileReader(ms);
byte[] wavdata = null;
using (MemoryStream wavstrm = new MemoryStream())
using (WaveFileWriter wavwri = new WaveFileWriter(wavstrm, ws.WaveFormat))
{
ws.CopyTo(wavwri);
wavdata = wavstrm.ToArray();
}
WaveLib.WaveFormat fmt = new WaveLib.WaveFormat(ws.WaveFormat.SampleRate, ws.WaveFormat.BitsPerSample, ws.WaveFormat.Channels);
Yeti.Lame.BE_CONFIG beconf = new Yeti.Lame.BE_CONFIG(fmt, bitrate);
byte[] srm = null;
using (MemoryStream mp3strm = new MemoryStream())
using (Mp3Writer mp3wri = new Mp3Writer(mp3strm, fmt, beconf))
{
mp3wri.Write(wavdata, 0, wavdata.Length);
byte[] mp3data = mp3strm.ToArray();
return mp3data;
}
}
lame_enc.dll
Eğer sadece .NET uygulamasında bir referansı ekleyemezsiniz yani yönetilmeyen bir DLL dosyası. Giriş noktalarının ne olduğunu ve nasıl çağrıldığını tanımlamak için bir sarıcıya ihtiyacınız var. change format from wav to mp3 in memory stream in NAudio: lame_enc.dll
için ben bir adım-adım yanıtta MP3 kodlama için soruyu bu nasıl kullanılacağı yayınlanan this CodeProject article.
bağlı kod bulunabilir Yeti
sarmalayıcı kullanın. Bu seni başlatmalı.
Net 4.0 kolay yolu:
Kullanım visual studio Nuget Paket yöneticisi konsolu:
Install-Package NAudio.Lame
Kod Snip:
//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);
}
}
: mp3 olarak kaydetmek sonra, bir bellek akışı konuşma gönder
retMs bu örnekte hiçbir şey yapmaz mı? –
- 1. Bir papağanı kodlamak için hangi algoritmayı kullanırdınız?
- 2. JSON bellekte saklamak ve kodlamak için kodlamak
- 3. URL NSString'i kodlamak için nasıl
- 4. Sanal bir aygıtı kodlamak için başlangıç noktası
- 5. Xamarin formu belirli bir satırı kodlamak için
- 6. Bir TextBlock'ta StringFormat için nasıl statik kaynak kullanabilirim veya kullanabilirim?
- 7. arrayBuffer bir mp3 ses dosyasına nasıl dönüştürülür? Javascript AudioContext kullanarak
- 8. Bir sorgudan gelen bir alan sonucunu kodlamak
- 9. Bir sözlüğü "kesmek" için LINQ'u nasıl kullanabilirim?
- 10. ParseInt'i bir çift için nasıl kullanabilirim?
- 11. Bir çerez değerini kodlamak için güvenli bir yol C#
- 12. Bir mp3 dosyasını uygulamaya indirmek için NSURLRequest/NSURLConnection nasıl kullanılır?
- 13. Tüm dosyayı indirmeden bir VBR mp3 için BitRate nasıl hesaplanır?
- 14. .NET'te bir tarayıcıyı nasıl kullanabilirim?
- 15. Kalifiye bir yöntemi nasıl kullanabilirim?
- 16. Python, mp3'e dönüştürebilir
- 17. MySQL'de farklı bir tabloyu güncellemek için nasıl bir tetikleyici kullanabilirim?
- 18. Python bir mp3 dosyasını açabilir
- 19. urllib.quote(), URI kodlamak için KeyError
- 20. böyle mesajlarla bir HTML tablosu kodlamak için HTML tablosunun
- 21. Bir UWP uygulamasında .mp3 (veya başka bir) dosya nasıl oynatılır?
- 22. mp3 sıkıştırmak için sox nasıl kullanılır?
- 23. nasıl Linux bir MP3 bir dalga görüntüsü oluşturabilir?
- 24. Bir AAC akışını belleğe kodlamak için AVCaptureSession kullanabilir miyim?
- 25. Bunu kodlamak için daha verimli bir yolu var mı?
- 26. javafx kullanarak oynamak için bir mp3 dosyası alma
- 27. iOS uygulamasında bir mp3 dosyası çalma
- 28. Aksanları doğru şekilde kodlamak nasıl?
- 29. nasıl bir QueryString bir DateTime kodlamak ve asp okumak için: QueryStringParameter
- 30. Linq'u bir T4 şablonunda nasıl kullanabilirim?
http://www.codeproject.com/Articles/501521/How-to-convert-between-most-audio-formats-in-NET – MichaC