zoukankan      html  css  js  c++  java
  • 声音

    1、调用系统的声音来提示用户

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

    2、播放波形文件WAV格式

               if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    SoundPlayer player = new SoundPlayer();
                    player.SoundLocation = this.openFileDialog1.FileName;
                    //player.LoadAsync();
                    player.Load();
                    player.Play();
                }

    3、播放MP3文件 比较复杂啊

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Windows.Forms;
    
    namespace MP3播放器
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
            clsMCI cm = new clsMCI();
            string filename = "";
            private void btnPlay_Click(object sender, EventArgs e)
            {
                if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    cm.FileName = this.openFileDialog1.FileName;
                    filename = cm.FileName;
                    cm.Play();
                }
            }
    
            private void btnStop_Click(object sender, EventArgs e)
            {
                cm.Stop();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                cm.FileName = filename;
                cm.Play();
            }
        }
        public class clsMCI
        {
            public clsMCI()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
            }
    
            //定义API函数使用的字符串变量 
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
            private string Name = "";
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
            private string durLength = "";
            [MarshalAs(UnmanagedType.LPTStr, SizeConst = 128)]
            private string TemStr = "";
            int ilong;
            //定义播放状态枚举变量
            public enum State
            {
                mPlaying = 1,
                mPuase = 2,
                mStop = 3
            };
            //结构变量
            public struct structMCI
            {
                public bool bMut;
                public int iDur;
                public int iPos;
                public int iVol;
                public int iBal;
                public string iName;
                public State state;
            };
            public structMCI mc = new structMCI();
            //取得播放文件属性
            public string FileName
            {
                get
                {
                    return mc.iName;
                }
                set
                {
                    //ASCIIEncoding asc = new ASCIIEncoding(); 
                    try
                    {
                        TemStr = "";
                        TemStr = TemStr.PadLeft(127, Convert.ToChar(" "));
                        Name = Name.PadLeft(260, Convert.ToChar(" "));
                        mc.iName = value;
                        ilong = APIClass.GetShortPathName(mc.iName, Name, Name.Length);
                        Name = GetCurrPath(Name);
                        //Name = "open " + Convert.ToChar(34) + Name + Convert.ToChar(34) + " alias media";
                        Name = "open " + Convert.ToChar(34) + Name + Convert.ToChar(34) + " alias media";
                        ilong = APIClass.mciSendString("close all", TemStr, TemStr.Length, 0);
                        ilong = APIClass.mciSendString(Name, TemStr, TemStr.Length, 0);
                        ilong = APIClass.mciSendString("set media time format milliseconds", TemStr, TemStr.Length, 0);
                        mc.state = State.mStop;
                    }
                    catch
                    {
                    }
                }
            }
            //播放
            public void Play()
            {
                TemStr = "";
                TemStr = TemStr.PadLeft(127, Convert.ToChar(" "));
                APIClass.mciSendString("play media", TemStr, TemStr.Length, 0);
                mc.state = State.mPlaying;
            }
            //停止
            public void Stop()
            {
                TemStr = "";
                TemStr = TemStr.PadLeft(128, Convert.ToChar(" "));
                ilong = APIClass.mciSendString("close media", TemStr, 128, 0);
                ilong = APIClass.mciSendString("close all", TemStr, 128, 0);
                mc.state = State.mStop;
            }
            public void Puase()
            {
                TemStr = "";
                TemStr = TemStr.PadLeft(128, Convert.ToChar(" "));
                ilong = APIClass.mciSendString("pause media", TemStr, TemStr.Length, 0);
                mc.state = State.mPuase;
            }
            private string GetCurrPath(string name)
            {
                if (name.Length < 1) return "";
                name = name.Trim();
                name = name.Substring(0, name.Length - 1);
                return name;
            }
            //总时间
            public int Duration
            {
                get
                {
                    durLength = "";
                    durLength = durLength.PadLeft(128, Convert.ToChar(" "));
                    APIClass.mciSendString("status media length", durLength, durLength.Length, 0);
                    durLength = durLength.Trim();
                    if (durLength == "") return 0;
                    return (int)(Convert.ToDouble(durLength) / 1000f);
                }
            }
            //当前时间
            public int CurrentPosition
            {
                get
                {
                    durLength = "";
                    durLength = durLength.PadLeft(128, Convert.ToChar(" "));
                    APIClass.mciSendString("status media position", durLength, durLength.Length, 0);
                    mc.iPos = (int)(Convert.ToDouble(durLength) / 1000f);
                    return mc.iPos;
                }
            }
        }
        public class APIClass
        {
            [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
            public static extern int GetShortPathName(
                string lpszLongPath,
                string shortFile,
                int cchBuffer
            );
            [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
            public static extern int mciSendString(
                string lpstrCommand,
                string lpstrReturnString,
                int uReturnLength,
                int hwndCallback
            );
        }
    }
    View Code
  • 相关阅读:
    java工厂方法模式
    java简单工厂设计模式
    Springboot接口简单实现生成MySQL插入语句
    JMeter 源码二次开发函数示例
    AssertJ断言系列-----------<数据库断言三>
    钉钉机器人集成Jenkins推送消息模板自定义发送报告
    删除ORECLE表主键ID的索引
    日志——log4j.properties配置文件说明
    java基础——反射机制(reflect)的使用
    spring batch (四) Job的配置及配置文件说明介绍
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3308806.html
Copyright © 2011-2022 走看看