• C#播放音乐的几种方式


    好久没用都要忘记了,记录下,温故而知新。

    1. 播放系统事件声音

    System.Media.SystemSounds.Asterisk.Play();

    System.Media.SystemSounds.Beep.Play();

    System.Media.SystemSounds.Exclamation.Play();

    System.Media.SystemSounds.Hand.Play();

    2 使用System.Media.SoundPlayer播放.wav音乐文件

    播放WAV格式的声音
    常用属性
    IsLoadCompleted 声音资源是否加载完成
    LoadTimeout 加载声音资源的最大允许时间(毫秒)
    SoundLocation 声音资源的位置
    Stream 声音资源的字节流(可以指定声音资源的位置,也可以指定已经加载的字节流)
    常用方法

    Dispose() 释放声音资源并销毁对象
    Load() 加载声音资源
    Play() 在新线程播放一次,如果声音资源未加载,则首先加载
    PlayLooping() 在新线程循环播放,如果声音资源未加载,则首先加载

    Stop() 停止播放
    常用事件

    Disposed 声音资源被释放后触发
    LoadCompleted 声音资源加载完成或失败后触发
    SoundLocationChanged 声音资源的位置改变后触发
    StreamChanged 声音资源的字节流改变后触发

    System.Media.SoundPlayer sp = new SoundPlayer(); 
    sp.SoundLocation = @"D:/ms.wav"; 
    sp.PlayLooping();

    3.使用MCI Command String多媒体设备程序接口播放mp3,avi等

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;
    
    namespace MyWenxinTool
    {
        public class musicplay
        {
    
            public static uint SND_ASYNC = 0x0001;
            public static uint SND_FILENAME = 0x00020000;
            [DllImport("winmm.dll")]
            public static extern uint mciSendString(string lpstrCommand, string lpstrReturnString, uint uReturnLength, uint hWndCallback);
    
            public static void PlayNmusinc(string path)
            {
                mciSendString(@"close temp_alias", null, 0, 0);
                mciSendString(@"open """+path+@""" alias temp_alias", null, 0, 0);
                mciSendString("play temp_alias repeat", null, 0, 0);
            }
    
            /// <summary>
            /// 播放音乐文件(重复)
            /// </summary>
            /// <param name="p_FileName">音乐文件名称</param>
            public static void PlayMusic_Repeat(string p_FileName)
            {
                try
                {
                    mciSendString(@"close temp_music", " ", 0, 0);
                    mciSendString(@"open " + p_FileName + " alias temp_music", " ", 0, 0);
                    mciSendString(@"play temp_music repeat", " ", 0, 0);
                }
                catch
                { }
            }
    
            /// <summary>
            /// 播放音乐文件
            /// </summary>
            /// <param name="p_FileName">音乐文件名称</param>
            public static void PlayMusic(string p_FileName)
            {
                try
                {
                    mciSendString(@"close temp_music", " ", 0, 0);
                    //mciSendString(@"open " + p_FileName + " alias temp_music", " ", 0, 0);
                    mciSendString(@"open """ + p_FileName + @""" alias temp_music", null, 0, 0);
                    mciSendString(@"play temp_music", " ", 0, 0);
                }
                catch
                { }
            }
    
            /// <summary>
            /// 停止当前音乐播放
            /// </summary>
            /// <param name="p_FileName">音乐文件名称</param>
            public static void StopMusic(string p_FileName)
            {
                try
                {
                    mciSendString(@"close " + p_FileName, " ", 0, 0);
                }
                catch { }
            }
    
        }
    
    }
  • 相关阅读:
    CSS基础学习记录——CSS选择器及其特殊性计算
    CSS基础学习记录——CSS中哪些属性可以继承?
    行内框和行框的概念,line-height和vertical-align的关系理解
    【转】DOM中NodeList、HTMLCollection、NamedNodeMap三个动态集合的理解
    property参数讲解
    CocoaPods安装方法
    ios UITextField 以及键盘显示总结
    Xcode11 在Xib中进行UIScrollView布局
    锁问题总结-同一个线程两次获取同一把锁
    【转载】ARM MMU详解
  • 原文地址:https://www.cnblogs.com/wangyonglai/p/15619310.html
Copyright © 2020-2023  润新知