2011-06-14 87 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