Воспроизведение WAV / MP3 из памяти - PullRequest
10 голосов
/ 14 июня 2011

Я играю mp3 / wav из файла, чтобы создать эффект push.Однако на планшетном ПК с процессором Atom при нажатии кнопки происходит задержка.

Попробую воспроизвести wav / mp3 из памяти вместо файловой системы.Кто-нибудь может дать фрагмент кода или подсказку?

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

1 Ответ

18 голосов
/ 14 июня 2011

Как то так?

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