現在、NAudioを使用してサウンドをキャプチャしており、wavファイルのみを作成しています。私はファイルを保存する前にmp3にエンコードする方法を探しています。私はLAMEを見つけましたが、lame_enc.dllファイルを追加しようとすると、「参照を追加できませんでした。ファイルがアクセス可能であり、有効なアセンブリまたはCOMコンポーネントであることを確認してください。どんな助けもありがとう。LAMEを使用してwavをmp3にエンコードする方法#
6
A
答えて
1
lame_enc.dllをbinフォルダに置き、参照に追加しないでください。その後、このコードを試してください。ここでは、また、64128のようなビットレートを設定することができ、.....
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;
}
}
1
ファイルlame_enc.dll
は、あなたがちょうどあなたの.NETアプリケーションで、それへの参照を追加することができないことを意味し、アンマネージドDLLです。エントリポイントとは何かを定義するラッパーが必要です。 change format from wav to mp3 in memory stream in NAudio:lame_enc.dll
のために私は私がステップバイステップ応答でMP3のエンコード用の質問をこれを使用する方法についての投稿をthis CodeProject article.
に添付コードで見つけることができYeti
ラッパーを使用します。それはあなたを始めるはずです。
8
.NET 4.0で簡単な方法:
使用のVisual Studio Nugetパッケージマネージャコンソール:
Install-Package NAudio.Lame
コードスニップ:
//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として保存し、メモリストリームにスピーチを送ります
+2
retMsはこの例では何もしませんか? –
関連する問題
- 1. Mac appでLAMEを使用したmp3をエンコード
- 2. NAudio/Lameを使用して.wavをmp3に変換するときのチャンネルとサンプルレートの設定方法は?
- 3. アンドロイドのLameライブラリを使って.PcmファイルをMp3に変換する方法
- 4. Javaを使用して.wavを.mp3に変換するには?
- 5. pythonスクリプトを使用してオーディオファイル(mp3/.wav)を停止/閉じる方法
- 6. AS3でwav/mp3としてオーディオを録音する方法は?
- 7. LAME - オーディオファイルのデコードとエンコード
- 8. naudioを使ってmp3ファイルとwavファイルを結合する方法C#MVC?
- 9. mp3をwavにプログラムでデコードする簡単な方法は?
- 10. Android:MP4AオーディオをJavaを使用してMP3またはWavに変換する方法
- 11. LAME APIを使用してM4A(MPEG-4オーディオ)をMP3に変換するCまたはC++コード
- 12. wavをmp3に符号化するアルゴリズム
- 13. .wavファイルを.mp3に変換する
- 14. mp3をJavaのwavに変換する
- 15. WAVをMP3に変換する
- 16. Streamed mp3パケットのバッファをExtAudioFileWrite iosを使用してwavファイルに書き込む
- 17. SIPpで再生するWAVをエンコードする方法
- 18. CでGstreamパイプラインを使用してPCMファイルをMP3またはAC3にエンコードする方法
- 19. AndroidのAACにwavをエンコードする
- 20. レコードをエンコードしてwavファイルを再生して保存する
- 21. PHPを使用してJSONPにMysqlデータをエンコードする方法
- 22. MediaCodecを使用してビットマップをビデオにエンコードする方法は?
- 23. プロファイルを使用してAACにオーディオをエンコードする方法FF_PROFILE_AAC_LOW
- 24. pure Javaを使用してmp3をストリーミングする方法
- 25. Javaを使用してmp3ストリームを実現する方法Servlet
- 26. Delphiを使用すると、MP3をWAVにデコードするのにどのツールを使用できますか?
- 27. NodeJSを使用してオーディオストリームをwavファイルとして保存する方法
- 28. NAudioを使用してWindows 10に.wavファイルを保存する方法
- 29. パンダを使用して値の範囲をエンコードする方法
- 30. Ruby Base64モジュールを使用してハッシュをエンコードする方法
http://www.codeproject.com/Articles/501521/How-to-convert-between-most-audio-formats-in-NET – MichaC