亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#調用mciSendString播放音頻文件

2019-11-14 14:14:17
字體:
來源:轉載
供稿:網友

mciSendString函數是一個WinAPI,主要用來向MCI(Media Control Interface)設備發送字符串命令。

一、函數的聲明如下:

        PRivate static extern long mciSendString(            string command,      //MCI命令字符串            string returnString, //存放反饋信息的緩沖區            int returnSize,      //緩沖區的長度            IntPtr hwndCallback  //回調窗口的句柄,一般為NULL            );  

 

二、完整的代碼如下,其中的細節都有注釋說明。

需要注意兩點:

1、文件路徑要用""包含起來;

2、線程需要指定為STA。

using System;using System.Runtime.InteropServices;using System.Threading;namespace Zhy.MCI{    /*     * 調用API函數mciSendString播放音頻文件     * 主要包括按指定次數播放以及循環播放     * 作者:Zhy     * 時間:2015-7-21     */    public class MCI    {        [DllImport("winmm.dll")]        private static extern long mciSendString(            string command,      //MCI命令字符串            string returnString, //存放反饋信息的緩沖區            int returnSize,      //緩沖區的長度            IntPtr hwndCallback  //回調窗口的句柄,一般為NULL            );                   //若成功則返回0,否則返回錯誤碼。        /// <summary>        /// 按指定次數播放        /// </summary>        /// <param name="file"></param>        private void PlayWait(string file)        {            /*             * open device_name type device_type alias device_alias  打開設備             * device_name     要使用的設備名,通常是文件名。             * type device_type  設備類型,例如mpegvideo或waveaudio,可省略。             * alias device_alias 設備別名,指定后可在其他命令中代替設備名。             */            mciSendString(string.Format("open /"{0}/" type mpegvideo alias media", file), null, 0, IntPtr.Zero);            /*             * play device_alias from pos1 to pos2 wait repeat  開始設備播放             * 若省略from則從當前磁道開始播放。             * 若省略to則播放到結束。             * 若指明wait則等到播放完畢命令才返回。即指明wait會產生線程阻塞,直到播放完畢             * 若指明repeat則會不停的重復播放。             * 若同時指明wait和repeat則命令不會返回,本線程產生堵塞,通常會引起程序失去響應。             */            mciSendString("play media wait", null, 0, IntPtr.Zero);            /*             * close    關閉設備             */            mciSendString("close media", null, 0, IntPtr.Zero);        }        /// <summary>        /// 循環播放        /// </summary>        /// <param name="file"></param>        private void PlayRepeat(string file)        {            mciSendString(string.Format("open /"{0}/" type mpegvideo alias media", file), null, 0, IntPtr.Zero);            mciSendString("play media repeat", null, 0, IntPtr.Zero);        }        private Thread thread;        /// <summary>        /// 播放音頻文件        /// </summary>        /// <param name="file">音頻文件路徑</param>        /// <param name="times">播放次數,0:循環播放 大于0:按指定次數播放</param>        public void Play(string file, int times)        {            //用線程主要是為了解決在播放的時候指定wait時產生線程阻塞,從而導致界面假死的現象            thread = new Thread(() =>                {                    if (times == 0)                    {                        PlayRepeat(file);                    }                    else if (times > 0)                    {                        for (int i = 0; i < times; i++)                        {                            PlayWait(file);                        }                    }                });            //線程必須為單線程            thread.SetApartmentState(ApartmentState.STA);            thread.IsBackground = true;            thread.Start();        }        /// <summary>        /// 結束播放的線程        /// </summary>        public void Exit()        {            if (thread != null)            {                try                {                    thread.Abort();                }                catch { }                thread = null;            }        }    }}

 

三、調用:

new MCI().Play("音頻文件路徑",播放次數);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
2019中文字幕在线观看| 欧美色播在线播放| 日韩视频免费观看| 91日本在线观看| 久久精品久久久久久国产 免费| 亚洲一区二区福利| 欧美电影在线观看高清| 国产视频观看一区| 97婷婷涩涩精品一区| 国产日韩欧美电影在线观看| 日韩欧美精品在线观看| 国产精品电影观看| 日韩av观看网址| 欧美另类精品xxxx孕妇| 亚洲精选一区二区| 一本一本久久a久久精品牛牛影视| 亚洲大胆人体视频| 日本欧美一二三区| 国模精品一区二区三区色天香| 久久成人免费视频| 日韩精品久久久久久福利| 中文字幕日韩在线视频| 91色视频在线导航| 性色av一区二区三区免费| 在线精品播放av| 中文字幕亚洲综合久久| 日韩精品视频免费专区在线播放| 亚洲国产精品久久精品怡红院| 宅男66日本亚洲欧美视频| 538国产精品一区二区免费视频| 亚洲一区二区久久久| 日韩国产在线播放| 红桃av永久久久| 日韩中文字幕视频在线观看| 亚洲欧美三级伦理| 亚洲精品国产精品自产a区红杏吧| 亚洲色图狂野欧美| 2018国产精品视频| 亚洲午夜精品久久久久久久久久久久| 亚洲精品一二区| 国产日本欧美一区二区三区在线| 久久久91精品国产一区不卡| 日韩欧美精品免费在线| 成人国内精品久久久久一区| 成人激情免费在线| 欧美最顶级丰满的aⅴ艳星| 91伊人影院在线播放| 久久成人这里只有精品| 一区二区欧美日韩视频| 亚洲人永久免费| 国产精品欧美一区二区| 亚洲精品一区二区三区不| 日韩在线欧美在线国产在线| 欧美激情一级精品国产| 国语自产精品视频在免费| 日韩av电影中文字幕| 亚洲久久久久久久久久| 欧美精品videos| 国产精品视频导航| 最近2019好看的中文字幕免费| 韩国精品美女www爽爽爽视频| 国语对白做受69| 国产精品色午夜在线观看| 国产精品久久久久久久久久久久久| 欧美第一黄网免费网站| 欧美国产日产韩国视频| 九九热这里只有在线精品视| 亚洲国产精彩中文乱码av| 成人xxxx视频| 国产精品久久久久不卡| 午夜精品久久久久久久久久久久久| 日韩在线视频导航| 91精品在线播放| 伊人久久大香线蕉av一区二区| 中文字幕欧美视频在线| 欧美在线观看www| 成人免费午夜电影| 久久久亚洲欧洲日产国码aⅴ| 精品久久久久久久久久久久久| 韩国日本不卡在线| 九九精品视频在线观看| 亚洲精品videossex少妇| 岛国精品视频在线播放| 国产精品成人免费视频| 亚洲精品一区二三区不卡| 日韩中文在线中文网三级| 亚洲tv在线观看| 91久久国产精品91久久性色| 91在线视频精品| 日韩欧美国产黄色| 久久中文字幕国产| 亚洲黄色av女优在线观看| 国产视频久久久久久久| 日韩中文字幕在线观看| 精品亚洲男同gayvideo网站| 亚洲一区美女视频在线观看免费| 欧美激情videos| 欧美丰满片xxx777| 欧美黑人视频一区| 欧美色另类天堂2015| 欧美性猛交xxxx免费看| 亚洲人线精品午夜| 国产福利精品av综合导导航| 欧美性猛交xxxx乱大交| 一个人看的www欧美| 亚洲乱码国产乱码精品精天堂| 粉嫩av一区二区三区免费野| 日本三级韩国三级久久| 欧美日韩亚洲91| www亚洲精品| 欧日韩在线观看| 久久久精品2019中文字幕神马| 成人免费在线视频网站| 欧美在线xxx| 国产精品偷伦免费视频观看的| 日韩精品视频免费专区在线播放| 亚洲人成在线观看网站高清| 日韩视频精品在线| 亚洲精品少妇网址| 久久99热精品这里久久精品| 久久精品视频在线观看| 成人高清视频观看www| 国产日韩在线视频| 国产精品久久色| 国产精品伦子伦免费视频| 日韩欧美国产高清91| 日韩精品在线免费观看视频| 国产精品一区二区久久| 欧美日韩国产在线播放| 欧美一二三视频| 日韩中文字幕在线免费观看| 欧美日韩另类字幕中文| 国产精品成熟老女人| 亚洲变态欧美另类捆绑| 国产丝袜一区二区三区| 91免费在线视频| 91人人爽人人爽人人精88v| 亚洲国产天堂久久综合| 精品国产乱码久久久久酒店| 这里精品视频免费| 欧美综合国产精品久久丁香| 久久久精品2019中文字幕神马| 国产mv久久久| 亚洲色图偷窥自拍| 热99精品只有里视频精品| 精品一区二区三区三区| 国产午夜精品视频| 韩剧1988在线观看免费完整版| 51ⅴ精品国产91久久久久久| 精品一区二区三区四区在线| 国产午夜精品麻豆| 成人美女av在线直播| 中文字幕在线观看亚洲| 国产精品视频一区国模私拍| 日韩国产欧美精品一区二区三区| 午夜精品久久久久久久男人的天堂| 日本欧美黄网站| 久久久久亚洲精品成人网小说| 91在线|亚洲| 亚洲色图偷窥自拍| 欧美性色19p| 国产美女精彩久久| 久久在线视频在线| 亚洲自拍欧美色图|