2012-07-31 44 views
0

我有一個.wav文件,我將這個字節格式寫入XML。我想在我的表格上播放這首歌曲,但我不確定我是否正確,並且不起作用。 Str是我的文件的字節形式。XML聲音的字節形式

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(); 

回答

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()的呼叫,看看它是否有效。