0

.wav ファイルがあり、このバイト形式を XML に書き込みます。この曲を自分のフォームで再生したいのですが、正しいかどうか確信が持てず、うまくいきません。Str は私のファイルのバイト形式です。

byte[] soundBytes = Convert.FromBase64String(str);
MemoryStream ms = new MemoryStream(soundBytes, 0, soundBytes.Length);
ms.Write(soundBytes, 0, soundBytes.Length);
SoundPlayer ses = new SoundPlayer(ms);
ses.Play();
4

1 に答える 1

1

MemoryStream問題は、バッファで初期化してから、同じバッファをストリームに書き込んでいることだと思います。したがって、ストリームはデータの特定のバッファから始まり、同じバッファで上書きしますが、その過程でストリーム内の現在の位置を最後まで変更しています。

byte[] soundBytes = Convert.FromBase64String(str);
MemoryStream ms = new MemoryStream(soundBytes, 0, soundBytes.Length);
// ms.Position is 0, the beginning of the stream
ms.Write(soundBytes, 0, soundBytes.Length);
// ms.Position is soundBytes.Length, the end of the stream
SoundPlayer ses = new SoundPlayer(ms);
// ses tries to play from a stream with no more bytes to consume
ses.Play();

への呼び出しを削除して、ms.Write()機能するかどうかを確認します。

于 2012-08-01T02:51:27.233 に答える