播放WAV / MP3从内存 [英] Play wav/mp3 from memory

查看:175
本文介绍了播放WAV / MP3从内存的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我玩MP3 / WAV从文件创建一个推动作用。然而,一个Atom处理器的平板电脑上,有一个延迟,当我触摸按钮。

我会尝试从内存而不是文件系统播放WAV / MP3。谁能给一个code段或线索?

  System.Media.SoundPlayer球员=新System.Media.SoundPlayer();
player.SoundLocation = System.Windows.Forms.Application.StartupPath +\\哔7.wav;
player.Play();
 

解决方案

这样的事情?

 公共类的MediaPlayer
{
    System.Media.SoundPlayer声音播放;

    公众的MediaPlayer(byte []的缓冲区)
    {
        VAR的MemoryStream =新的MemoryStream(缓冲,真正的);
        声音播放=新System.Media.SoundPlayer(MemoryStream的);
    }

    公共无效播放()
    {
        soundPlayer.Play();
    }

    公共无效播放(byte []的缓冲区)
    {
        soundPlayer.Stream.Seek(0,SeekOrigin.Begin);
        soundPlayer.Stream.Write(缓冲液,0,buffer.Length);
        soundPlayer.Play();
    }
}
 

I play mp3/wav from file to create a push effect. However on an Atom CPU based tablet PC, there is a delay when I touch the button.

I'll try to play wav/mp3 from memory instead of file system. Can anyone give a code snippet or a clue?

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

解决方案

Something like this?

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

这篇关于播放WAV / MP3从内存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆