2011-06-14 63 views
6

我從文件播放mp3/wav以創建推送效果。但是,在基於Atom CPU的平板電腦上,按下按鈕時會有延遲。播放內存中的wav/mp3

我會嘗試從內存而不是文件系統播放wav/mp3。任何人都可以給出一個代碼片段或線索?

System.Media.SoundPlayer player = new System.Media.SoundPlayer(); 
player.SoundLocation = System.Windows.Forms.Application.StartupPath + "\\beep-7.wav"; 
player.Play(); 
+1

'File.ReadAllBytes(路徑)' – SLaks 2011-06-14 14:10:00

回答

15

是這樣的嗎?

public class MediaPlayer 
{ 
    System.Media.SoundPlayer soundPlayer; 

    public MediaPlayer(byte[] buffer) 
    { 
     var memoryStream = new MemoryStream(buffer, true); 
     soundPlayer = new System.Media.SoundPlayer(memoryStream); 
    } 

    public void Play() 
    { 
     soundPlayer.Play(); 
    } 

    public void Play(byte[] buffer) 
    { 
     soundPlayer.Stream.Seek(0, SeekOrigin.Begin); 
     soundPlayer.Stream.Write(buffer, 0, buffer.Length); 
     soundPlayer.Play(); 
    } 
} 
+0

我想使用Windows Media Player從及部件記憶播放MP4。我可以使用這個樣本嗎? – saeed 2018-01-27 12:40:36