mciSendCommand 音频视频播放命令函数
//typedef struct {
//DWORD dwCallback; //指定一个窗口句柄
//MCIDEVICEID wDeviceID; //为成功打开的文件返回 设备标识符.
//LPCSTR lpstrDeviceType; //设备类型的名字或常量标识. (设备名可以从注册表或者 SYSTEM.INI 文件中获得)
//LPCSTR lpstrElementName; //设备元素 (通常是打开的文件全路径).
//LPCSTR lpstrAlias//可选别名
//DWORD dwBufferSeconds;
//} MCI_WAVE_OPEN_PARMS;
//播放文件
//typedef struct {
//DWORD dwCallback;//指定一个窗口句柄
//DWORD dwFrom;//设置播放起始点
//DWORD dwTo;//设置播放结束点
//} MCI_PLAY_PARMS;
//查询信息
//typedef struct {
//DWORD dwCallback;
//DWORD dwReturn;//返回的信息内容
//DWORD dwItem;//请求查询的内容
//DWORD dwTrack;//轨道的长度或数目
//} MCI_STATUS_PARMS;
/*
* 函数名称:MCI_Open
* 函数介绍:用mci命令打开文件
* 输入参数:CString strPath, 文件的路径
* 输出参数:无
* 返回值 :mci命令的错误信息
*/
- DWORD dlg_login::MCIOpen(const CString &strPath)
- {
- //打开MCI设备
- MCI_OPEN_PARMS mciOP;
- DWORD opReturn;
- MCIDEVICEID wIDDevioce; //保存设备ID
- mciOP.lpstrDeviceType = NULL;
- mciOP.lpstrElementName = strPath; //设置打开的文件的名称
- opReturn = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD)(LPVOID)&mciOP);
- if (opReturn == 0)
- {
- wIDDevioce = mciOP.wDeviceID;//播放设备Id
- wDevioceId = mciOP.wDeviceID;
- //设置设备信息
- MCI_SET_PARMS mciSet;
- mciSet.dwTimeFormat = MCI_FORMAT_MILLISECONDS; //设置时间单位为毫秒
- mciSendCommand(wDevioceId, MCI_SET, MCI_SET_TIME_FORMAT, (DWORD)(LPVOID)&mciSet);
- //设置当前播放位置跳转60秒
- MCISeek(100);
- //音频播放
- MCIPlay();
- MCI_STATUS_PARMS mciStatus;
- mciStatus.dwItem = MCI_STATUS_TIME_FORMAT;
- DWORD sta2Return = mciSendCommand(wIDDevioce, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
- DWORD music_timestyle = mciStatus.dwReturn; //获得当前的时间格式
- mciStatus.dwItem = MCI_STATUS_MODE;
- DWORD sta3Return = mciSendCommand(wIDDevioce, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
- DWORD music_playstyle = mciStatus.dwReturn; //获得当前播放工作模式 播放 526 暂停525
- }
- else
- wIDDevioce = NULL;
- return opReturn;
- }

DWORD dlg_login::MCIOpen(const CString &strPath)
{
//打开MCI设备
MCI_OPEN_PARMS mciOP;
DWORD opReturn;
MCIDEVICEID wIDDevioce; //保存设备ID
mciOP.lpstrDeviceType = NULL;
mciOP.lpstrElementName = strPath; //设置打开的文件的名称
opReturn = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD)(LPVOID)&mciOP);
if (opReturn == 0)
{
wIDDevioce = mciOP.wDeviceID;//播放设备Id
wDevioceId = mciOP.wDeviceID; //设置设备信息
MCI_SET_PARMS mciSet;
mciSet.dwTimeFormat = MCI_FORMAT_MILLISECONDS; //设置时间单位为毫秒
mciSendCommand(wDevioceId, MCI_SET, MCI_SET_TIME_FORMAT, (DWORD)(LPVOID)&mciSet); //设置当前播放位置跳转60秒
MCISeek(100);
//音频播放
MCIPlay(); MCI_STATUS_PARMS mciStatus;
mciStatus.dwItem = MCI_STATUS_TIME_FORMAT;
DWORD sta2Return = mciSendCommand(wIDDevioce, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
DWORD music_timestyle = mciStatus.dwReturn; //获得当前的时间格式 mciStatus.dwItem = MCI_STATUS_MODE;
DWORD sta3Return = mciSendCommand(wIDDevioce, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
DWORD music_playstyle = mciStatus.dwReturn; //获得当前播放工作模式 播放 526 暂停525
}
else
wIDDevioce = NULL;
return opReturn;
}
- DWORD dlg_login::MCIPlay()
- {
- MCI_PLAY_PARMS mciPP;
- DWORD opReturn;
- opReturn = mciSendCommand(wDevioceId, MCI_PLAY, MCI_NOTIFY, (DWORD)&mciPP);
- return opReturn;
- }

DWORD dlg_login::MCIPlay()
{
MCI_PLAY_PARMS mciPP;
DWORD opReturn;
opReturn = mciSendCommand(wDevioceId, MCI_PLAY, MCI_NOTIFY, (DWORD)&mciPP);
return opReturn;
}
- DWORD dlg_login::MCIStatus_music_length()
- {
- MCI_STATUS_PARMS mciStatus;
- mciStatus.dwItem = MCI_STATUS_LENGTH;
- DWORD staReturn = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
- DWORD music_alltime = mciStatus.dwReturn / 1000; //音乐总时间
- return music_alltime;
- }

DWORD dlg_login::MCIStatus_music_length()
{
MCI_STATUS_PARMS mciStatus;
mciStatus.dwItem = MCI_STATUS_LENGTH;
DWORD staReturn = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
DWORD music_alltime = mciStatus.dwReturn / 1000; //音乐总时间
return music_alltime;
}
- DWORD dlg_login::MCIStatus_music_pos()
- {
- MCI_STATUS_PARMS mciStatus;
- mciStatus.dwItem = MCI_STATUS_POSITION;
- DWORD sta1Return = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
- DWORD music_timeing = mciStatus.dwReturn / 1000; //音乐当前播放时间
- return music_timeing;
- }

DWORD dlg_login::MCIStatus_music_pos()
{
MCI_STATUS_PARMS mciStatus;
mciStatus.dwItem = MCI_STATUS_POSITION;
DWORD sta1Return = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
DWORD music_timeing = mciStatus.dwReturn / 1000; //音乐当前播放时间
return music_timeing;
}
- //从制定位置开始播放
- void send_music_from_pos()
- {
- MCI_STATUS_PARMS mciStatus;
- mciStatus.dwItem = MCI_STATUS_POSITION;
- DWORD sta1Return = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
- DWORD music_timeing = mciStatus.dwReturn / 1000; //音乐当前播放时间
- MCI_PLAY_PARMS PlayParms;
- PlayParms.dwFrom = music_timeing; // 指定从什么地方(时间)播放
- DWORD ret1 = mciSendCommand(wDevioceId, MCI_PLAY, MCI_NOTIFY, (DWORD)(LPVOID)&PlayParms);
- }

//从制定位置开始播放
void send_music_from_pos()
{
MCI_STATUS_PARMS mciStatus;
mciStatus.dwItem = MCI_STATUS_POSITION;
DWORD sta1Return = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
DWORD music_timeing = mciStatus.dwReturn / 1000; //音乐当前播放时间
MCI_PLAY_PARMS PlayParms;
PlayParms.dwFrom = music_timeing; // 指定从什么地方(时间)播放
DWORD ret1 = mciSendCommand(wDevioceId, MCI_PLAY, MCI_NOTIFY, (DWORD)(LPVOID)&PlayParms);
}
//关闭指定设备
- void close_mci()
- {
- DWORD retclose=mciSendCommand(wDevioceId, MCI_CLOSE, NULL, NULL);
- }

void close_mci()
{
DWORD retclose=mciSendCommand(wDevioceId, MCI_CLOSE, NULL, NULL);
}
- //调节音量
- DWORD dlg_login::MCISetVolume(DWORD dwVol)
- {
- MCI_DGV_SETAUDIO_PARMS mciSetAudioPara;
- mciSetAudioPara.dwCallback = NULL;
- mciSetAudioPara.dwItem = MCI_DGV_SETAUDIO_VOLUME;
- mciSetAudioPara.dwValue = dwVol; //此处就是音量大小 (0--1000)
- DWORD dwReturn = mciSendCommand(wDevioceId, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM, (DWORD)(LPVOID)&mciSetAudioPara);
- return dwReturn;
- }

//调节音量
DWORD dlg_login::MCISetVolume(DWORD dwVol)
{
MCI_DGV_SETAUDIO_PARMS mciSetAudioPara;
mciSetAudioPara.dwCallback = NULL;
mciSetAudioPara.dwItem = MCI_DGV_SETAUDIO_VOLUME;
mciSetAudioPara.dwValue = dwVol; //此处就是音量大小 (0--1000)
DWORD dwReturn = mciSendCommand(wDevioceId, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM, (DWORD)(LPVOID)&mciSetAudioPara);
return dwReturn;
}
jpg改rar 
mciSendCommand 音频视频播放命令函数的更多相关文章
- CS中调用微软自带com组件实现音频视频播放(wf/wpf)
1.mp3播放器:工具箱中右键,在弹出的菜单中选择“选择项”,添加“com组件”,选择名称“windows Media Player",点击确定就会在工具箱新增一个“windows Medi ...
- shell中的内建命令, 函数和外部命令
转自shell中的内建命令, 函数和外部命令 Shell识别三种基本命令:内建命令.Shell函数以及外部命令: (1)内建命令就是由Shell本身所执行的命令. 有些命令是由于其必要性才内建的 ...
- HTML5学习总结-04 音频&视频播放
一 音频播放 1 Audio(音频) HTML5提供了播放音频文件的标准 2 control(控制器) control属性攻添加播放,暂停和音量空间. 3 标签定义声音 <audio> 例 ...
- php 执行linux 命令函数
php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数. 在很多时候利用php的exec,system等函数调用系统命 ...
- 关于exec命令函数
exec执行某命令在命令行下没有问题,但是在php中就出错.这个问题99.99%与权限有关,但是exec执行的命令不会返回错误.一个技巧就是使用管道命令,假设你的exec调用如下: exec('con ...
- PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()
php提供4种方法执行系统外部命令:exec().passthru().system(). shell_exec().在开始介绍前,先检查下php配置文件php.ini中是有禁止这是个函数.找到 di ...
- PHP在Linux下Apache环境中执行exec,system,passthru等服务器命令函数
更多内容推荐微信公众号,欢迎关注: 若在服务器中使用php test.php运行exec,system,passthru等命令相关的脚本能成功运行,在web页面却没反应, [可能是服务器端,PHP脚本 ...
- 【转】shell中的内建命令, 函数和外部命令
原文:http://www.cnblogs.com/xkfz007/archive/2011/10/13/2209571.html linux命令有内部命令和外部命令之分.内部命令实际上是shell程 ...
- FFMPEG 音频转换命令
音频转换: .转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 .转换amr到wav: ffmpeg -acodec libamr_nb -i shenhux ...
随机推荐
- 前端异步文件上传组件 Uploader
Uploader是非常强大的异步文件上传组件,支持ajax.iframe.flash三套方案,实现浏览器的全兼容,调用非常简单,内置多套主题支持 和常用插件,比如验证.图片预览.进度条等,广泛应用于淘 ...
- python--内置函数清单
转自:http://www.cnblogs.com/vamei/archive/2012/11/09/2762224.html Python内置(built-in)函数随着python解释器的运行而创 ...
- sql 百分比
select [city], bfb=cast(cast(count(*)*100./(select count(*) from [UserBasicInfo]) as decimal(10,0)) ...
- 虚析构函数? vptr? 指针偏移?多态数组? delete 基类指针 内存泄漏?崩溃?
五条基本规则: 1.如果基类已经插入了vptr, 则派生类将继承和重用该vptr.vptr(一般在对象内存模型的顶部)必须随着对象类型的变化而不断地改变它的指向,以保证其值和当前对象的实际类型是一致的 ...
- C#位操作
一.原码与补码 在计算机系统中,数值一律用补码来存储(表示).主要原因:使用补码,可以将符号位和其他位统一处理:同时减法也可按加法来处理.另外,两个补码表示的数相加时,如果最高位(符号位)有进位,则进 ...
- C#如何判断操作系统位数是32位还是64位
方法一: 对于C#来说,调用WMI是一种简单易行的方式.我们可以用Win32_Processor类里面的AddressWidth属性来表示系统的位宽.AddressWidth的值受CPU和操作系统的双 ...
- HTML中css和js链接中的版本号
背景 在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css.js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候, 浏览器 ...
- 红米Note4X开发者选项
1.打开,设置->我的设备->全部参数 2.看到“MIUI版本”连点7次,在点击的过程中下部会有提示“在点X次就进入开发者模式”. 3.完成2步后,再次打开,设置->更多设置(系统和 ...
- dubbo相关
1 面试题:Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么? 可以的,启动dubbo时,消费者会从zk拉取注册的生产者的地址接口等数据,缓存在本地.每次 ...
- win32之全屏窗口
游戏开发中经常使用会让游戏以全屏窗口的状态运行,下面一个例子就是来实现这个效果的. #include <windows.h> void RegisterMyClass(); LRESULT ...