声音播放钩子

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;   
}    
复制代码

 

posted @ 2013-01-02 16:35  老实方丈  阅读(357)  评论(0编辑  收藏  举报