zoukankan      html  css  js  c++  java
  • 声音播放钩子

    1、WAV声音格式文件播放辅助类AudioHelper

    实现效果 

     1)本辅助类主要是用来方便实现播放WAV声音格式文件的操作。

     2)声音播放可以用在特定事件的触发上,如来电、收到消息等,经典的就如QQ收到信息,咳嗽的声音,使用声音播放可以提高更好的用户体验。

    实现代码 

    1)辅助类提供的方法接口如下所示:

     /// <summary>    

    复制代码
    /// 播放 .wav 格式的声音文件    
    /// </summary>    
    /// <param name="location">声音文件路径 </param>    
    public static void Play(string location)    
       
    /// <summary>    
    /// 播放 .wav 格式的声音文件    
    /// </summary>    
    /// <param name="playMode">播放声音的枚举模式。默认为AudioPlayMode.Background。</param>    
    /// <param name="location">声音文件路径</param>    
    public static void Play(string location, AudioPlayMode playMode)    
       
    /// <summary>    
    /// 播放 .wav 格式的声音文件    
    /// </summary>    
    /// <param name="stream"><see cref="T:System.IO.Stream"></see>声音文件的流对象</param>    
    /// <param name="playMode">播放声音的枚举模式。默认为AudioPlayMode.Background。</param>    
    public static void Play(Stream stream, AudioPlayMode playMode)    
       
    /// <summary>    
    /// 播放 .wav 格式的声音文件    
    /// </summary>    
    /// <param name="data">声音文件的字节数组</param>    
    /// <param name="playMode">播放声音的枚举模式。默认为AudioPlayMode.Background。</param>    
    public static void Play(byte[] data, AudioPlayMode playMode)    
       
    /// <summary>    
    /// 播放系统声音    
    /// </summary>    
    public static void PlaySystemSound(SystemSound systemSound)    
       
    /// <summary>    
    /// 停止正在后台播放的声音    
    /// </summary>    
    public static void Stop()  
    复制代码

    2) 辅助类AudioHelper的使用例子代码如下所示

    复制代码
    private void btnPlaySound_Click(object sender, EventArgs e)    
    {    
        try   
        {    
            AppConfig config = new AppConfig();    
            string SoundFilePath = config.AppConfigGet("SoundFilePath");    
            AudioHelper.Play(SoundFilePath);//AudioHelper.Play("ringin.wav");    
        }    
        catch (Exception ex)    
        {    
            LogHelper.Error("没找到声音文件" , ex);    
        }    
    }  
    复制代码

    2、声音文件播放操作辅助类SoundPlayerHelper。除了MP3声音文件外,还可以播放WAV格式、midi格式声音文件。

    实现效果 

     1)本辅助类主要是用来方便实现MP3文件、WAV文件、Midi文件等声音的播放操作,并提供音量控制操作功能。

    实现代码 

    1)辅助类提供的方法接口如下所示:

     /// <summary>    

    复制代码
    /// 播放声音文件    
    /// </summary>    
    /// <param name="soundFileName">声音文件路径(可以是MP3、WAV、Midi等声音文件)</param>    
    /// <param name="Repeat">是否重复播放</param>    
    public static void Play(string soundFileName,bool Repeat)    
       
    /// <summary>    
    /// 播放声音嵌入资源字节数组    
    /// </summary>    
    /// <param name="soundEmbeddedResource">声音文件嵌入资源字节数组(可以是MP3、WAV、Midi等声音格式)</param>    
    /// <param name="Repeat">是否重复播放</param>    
    public static void Play(byte[] soundEmbeddedResource, bool Repeat)    
       
    /// <summary>    
    /// 暂停播放    
    /// </summary>    
    public static void Pause()    
       
    /// <summary>    
    /// 停止播放    
    /// </summary>    
    public static void Stop()    
       
    /// <summary>    
    /// 清除操作    
    /// </summary>    
    public static void Dispose()    
       
    /// <summary>    
    /// 获取或设置音量的百分比    
    /// </summary>    
    /// <returns></returns>    
    public static float VolumePercent    
       
       
    /// <summary>    
    /// 获取音量    
    /// </summary>    
    /// <returns></returns>    
    public static float GetVolume()    
       
    /// <summary>    
    /// 设置音量    
    /// </summary>    
    /// <param name="volume"></param>    
    public static void SetVolume(float volume)    
       
    /// <SUMMARY>    
    /// 返回当前状态播放:播放,暂停,停止等    
    /// </SUMMARY>    
    public static string Status  
    复制代码

    2)辅助类SoundPlayerHelper的使用例子代码如下所示 

    复制代码
    bool isPlay = false;    
    private void btnPlayMp3_Click(object sender, EventArgs e)    
    {    
        if (!isPlay)    
        {    
            string mp3File = Path.Combine(Application.StartupPath, "伤不起.mp3");    
            string waveFile = Path.Combine(Application.StartupPath, "ringin.wav");    
            string midFile = @"C:\Windows\Media\onestop.mid";    
       
            SoundPlayerHelper.Play(mp3File, false);    //播放MP3格式文件    
            //SoundPlayerHelper.Play(waveFile, true); //播放WAV格式文件    
            //SoundPlayerHelper.Play(midFile, false);  //播放Midi格式文件    
            this.btnPlayMp3.Text = "停止播放";    
        }    
        else   
        {    
            SoundPlayerHelper.Stop();//停止播放    
            //SoundPlayerHelper.Pause();//暂停播放    
            this.btnPlayMp3.Text = "播放声音";    
        }    
       
        string statu = SoundPlayerHelper.Status;    
        this.Text = statu;    
        isPlay = !isPlay;    
    }    
       
    private void trackBar1_Scroll(object sender, EventArgs e)    
    {    
        //设置音量    
        float vol = SoundPlayerHelper.VolumePercent;    
        SoundPlayerHelper.VolumePercent = trackBar1.Value;   
    }    
    复制代码
  • 相关阅读:
    rhel5.4 x64安装apache http server2.2.27,并创建自动启服务
    解决BEA-000438 Unable to load performance pack.
    为aix系统挂载iso镜像-命令
    IBM小型机创建RAID
    linux下使用parted工具划分大于2T的分区
    linux下的SElinux
    日立HDS AMS2100存储的调试
    rhel创建yum源
    rfid安全简介
    安卓模拟器抓包
  • 原文地址:https://www.cnblogs.com/zhaohainuo/p/2842220.html
Copyright © 2011-2022 走看看