Aktualnie używam NAudio do przechwytywania dźwięku i tworzy on tylko plik WAV. Szukam sposobu kodowania go do pliku mp3 przed zapisaniem pliku. Znalazłem LAME, ale gdy próbuję dodać plik lame_enc.dll, jest napisane: "Nie można dodać odwołania. Upewnij się, że plik jest dostępny i jest to poprawny komponent lub składnik COM". Każda pomoc będzie doceniona.Jak mogę użyć LAME do kodowania pliku WAV do pliku mp3 C#
Odpowiedz
Po prostu umieść plik lame_enc.dll w folderze bin i nie próbuj dodawać go do pliku referencyjnego. Następnie wypróbuj ten kod. Tutaj można również ustawić szybkość transmisji jak 64,128 .....
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;
}
}
Plik lame_enc.dll
jest niekontrolowana DLL, co oznacza, że nie można po prostu dodać odniesienie do niej w aplikacji .NET. Potrzebujesz otoki, aby określić, jakie są punkty wejścia i jak są wywoływane. Dla lame_enc.dll
używam Yeti
opakowanie, które można znaleźć w kodzie dołączonym do this CodeProject article.
Zamieściłem krok po kroku, w jaki sposób to wykorzystać do kodowania MP3 w odpowiedzi na pytanie: change format from wav to mp3 in memory stream in NAudio. To powinno ci na początek wystarczyć.
Najłatwiej w .NET 4.0:
Użyj visual studio Nuget Pakiet konsoli kierownik:
Install-Package NAudio.Lame
Kod Snip: Wyślij mowę do strumienia pamięci, a następnie zapisać jako 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);
}
}
RetMs nic nie robi w tym przykładzie? –
- 1. Jak rozszyfrować mp3 do wav używając lame w C/C++?
- 2. Konwersja pliku .wav do .mp3
- 3. Android PCM do Ulaw kodowania pliku WAV
- 4. C# Zapisywanie tekstu na mowę do pliku MP3
- 5. Jak mogę użyć msbuild do pobrania pliku?
- 6. sox do konwersji pliku flac do 320 bitów mp3
- 7. Jak zmienić plik mp3 na plik wav w pliku node.js
- 8. Jak przekonwertować plik .caf do pliku .mp3?
- 9. Używanie System.Speech do konwersji pliku mp3 na tekst
- 10. Jaki jest algorytm konwersji pliku mp3 na plik wav?
- 11. Kompilacja Lame MP3 Encoder dla Androida
- 12. Czy mogę użyć AVCaptureSession do kodowania strumienia AAC do pamięci?
- 13. Wyodrębnianie listy amplitudy z pliku * .wav do użycia w Pythonie
- 14. Odtwarzanie pliku mp3 przy użyciu javascript
- 15. typ zawartości do pobrania pliku mp3
- 16. Odtwarzanie pliku .WAV w .NET
- 17. Znajdowanie długości pliku MP3 w języku C#
- 18. Jak mogę użyć tej wtyczki jQuery do usunięcia pliku cookie?
- 19. Jak mogę użyć gulp do zamiany łańcucha w pliku?
- 20. Jak mogę użyć vima do konwersji mojego pliku na utf8?
- 21. Jak przekonwertować .wav do .mp3 za pomocą Java?
- 22. Jak mogę użyć kodu SWIFT do kodowania w słowniku?
- 23. Odczytywanie i przetwarzanie danych pliku WAV w języku C/C++
- 24. Przeczytaj metadane pliku mp3
- 25. Java - downsampling pliku audio wav
- 26. Jak użyć JarOutputStream do utworzenia pliku JAR?
- 27. Przechowywanie pliku do System uri?
- 28. Java ogg do konwersji wav
- 29. Jak użyć pliku NSURLRequest/NSURLConnection, aby pobrać plik mp3 do aplikacji?
- 30. jak użyć org.springframework.web.filter.CharacterEncodingFilter do poprawnego kodowania znaków?
http://www.codeproject.com/Articles/501521/How-to-convert-between-most-audio-formats-in-NET – MichaC