//打开设备
//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命令的错误信息
 */

  1. DWORD dlg_login::MCIOpen(const CString &strPath)
  2. {
  3. //打开MCI设备
  4. MCI_OPEN_PARMS mciOP;
  5. DWORD opReturn;
  6. MCIDEVICEID wIDDevioce;  //保存设备ID
  7. mciOP.lpstrDeviceType = NULL;
  8. mciOP.lpstrElementName = strPath;  //设置打开的文件的名称
  9. opReturn = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD)(LPVOID)&mciOP);
  10. if (opReturn == 0)
  11. {
  12. wIDDevioce = mciOP.wDeviceID;//播放设备Id
  13. wDevioceId = mciOP.wDeviceID;
  14. //设置设备信息
  15. MCI_SET_PARMS mciSet;
  16. mciSet.dwTimeFormat = MCI_FORMAT_MILLISECONDS; //设置时间单位为毫秒
  17. mciSendCommand(wDevioceId, MCI_SET, MCI_SET_TIME_FORMAT, (DWORD)(LPVOID)&mciSet);
  18. //设置当前播放位置跳转60秒
  19. MCISeek(100);
  20. //音频播放
  21. MCIPlay();
  22. MCI_STATUS_PARMS mciStatus;
  23. mciStatus.dwItem = MCI_STATUS_TIME_FORMAT;
  24. DWORD sta2Return = mciSendCommand(wIDDevioce, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
  25. DWORD music_timestyle = mciStatus.dwReturn; //获得当前的时间格式
  26. mciStatus.dwItem = MCI_STATUS_MODE;
  27. DWORD sta3Return = mciSendCommand(wIDDevioce, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
  28. DWORD music_playstyle = mciStatus.dwReturn; //获得当前播放工作模式 播放 526  暂停525
  29. }
  30. else
  31. wIDDevioce = NULL;
  32. return opReturn;
  33. }
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;
}
  1. DWORD dlg_login::MCIPlay()
  2. {
  3. MCI_PLAY_PARMS mciPP;
  4. DWORD opReturn;
  5. opReturn = mciSendCommand(wDevioceId, MCI_PLAY, MCI_NOTIFY, (DWORD)&mciPP);
  6. return opReturn;
  7. }
DWORD dlg_login::MCIPlay()
{
MCI_PLAY_PARMS mciPP;
DWORD opReturn;
opReturn = mciSendCommand(wDevioceId, MCI_PLAY, MCI_NOTIFY, (DWORD)&mciPP);
return opReturn;
}
  1. DWORD dlg_login::MCIStatus_music_length()
  2. {
  3. MCI_STATUS_PARMS mciStatus;
  4. mciStatus.dwItem = MCI_STATUS_LENGTH;
  5. DWORD staReturn = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
  6. DWORD music_alltime = mciStatus.dwReturn / 1000; //音乐总时间
  7. return music_alltime;
  8. }
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;
}
  1. DWORD dlg_login::MCIStatus_music_pos()
  2. {
  3. MCI_STATUS_PARMS mciStatus;
  4. mciStatus.dwItem = MCI_STATUS_POSITION;
  5. DWORD sta1Return = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
  6. DWORD music_timeing = mciStatus.dwReturn / 1000; //音乐当前播放时间
  7. return music_timeing;
  8. }
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;
}
  1. //从制定位置开始播放
  2. void send_music_from_pos()
  3. {
  4. MCI_STATUS_PARMS mciStatus;
  5. mciStatus.dwItem = MCI_STATUS_POSITION;
  6. DWORD sta1Return = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
  7. DWORD music_timeing = mciStatus.dwReturn / 1000; //音乐当前播放时间
  8. MCI_PLAY_PARMS PlayParms;
  9. PlayParms.dwFrom = music_timeing; // 指定从什么地方(时间)播放
  10. DWORD ret1 = mciSendCommand(wDevioceId, MCI_PLAY, MCI_NOTIFY, (DWORD)(LPVOID)&PlayParms);
  11. }
//从制定位置开始播放
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);
}

//关闭指定设备

  1. void close_mci()
  2. {
  3. DWORD retclose=mciSendCommand(wDevioceId, MCI_CLOSE, NULL, NULL);
  4. }
void close_mci()
{
DWORD retclose=mciSendCommand(wDevioceId, MCI_CLOSE, NULL, NULL);
}
  1. //调节音量
  2. DWORD dlg_login::MCISetVolume(DWORD dwVol)
  3. {
  4. MCI_DGV_SETAUDIO_PARMS  mciSetAudioPara;
  5. mciSetAudioPara.dwCallback  = NULL;
  6. mciSetAudioPara.dwItem   = MCI_DGV_SETAUDIO_VOLUME;
  7. mciSetAudioPara.dwValue  = dwVol; //此处就是音量大小 (0--1000)
  8. DWORD dwReturn = mciSendCommand(wDevioceId, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE |  MCI_DGV_SETAUDIO_ITEM, (DWORD)(LPVOID)&mciSetAudioPara);
  9. return dwReturn;
  10. }
//调节音量
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 音频视频播放命令函数的更多相关文章

  1. CS中调用微软自带com组件实现音频视频播放(wf/wpf)

    1.mp3播放器:工具箱中右键,在弹出的菜单中选择“选择项”,添加“com组件”,选择名称“windows Media Player",点击确定就会在工具箱新增一个“windows Medi ...

  2. shell中的内建命令, 函数和外部命令

    转自shell中的内建命令, 函数和外部命令 Shell识别三种基本命令:内建命令.Shell函数以及外部命令: (1)内建命令就是由Shell本身所执行的命令.    有些命令是由于其必要性才内建的 ...

  3. HTML5学习总结-04 音频&视频播放

    一 音频播放 1 Audio(音频) HTML5提供了播放音频文件的标准 2 control(控制器) control属性攻添加播放,暂停和音量空间. 3 标签定义声音 <audio> 例 ...

  4. php 执行linux 命令函数

    php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数. 在很多时候利用php的exec,system等函数调用系统命 ...

  5. 关于exec命令函数

    exec执行某命令在命令行下没有问题,但是在php中就出错.这个问题99.99%与权限有关,但是exec执行的命令不会返回错误.一个技巧就是使用管道命令,假设你的exec调用如下: exec('con ...

  6. PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()

    php提供4种方法执行系统外部命令:exec().passthru().system(). shell_exec().在开始介绍前,先检查下php配置文件php.ini中是有禁止这是个函数.找到 di ...

  7. PHP在Linux下Apache环境中执行exec,system,passthru等服务器命令函数

    更多内容推荐微信公众号,欢迎关注: 若在服务器中使用php test.php运行exec,system,passthru等命令相关的脚本能成功运行,在web页面却没反应, [可能是服务器端,PHP脚本 ...

  8. 【转】shell中的内建命令, 函数和外部命令

    原文:http://www.cnblogs.com/xkfz007/archive/2011/10/13/2209571.html linux命令有内部命令和外部命令之分.内部命令实际上是shell程 ...

  9. FFMPEG 音频转换命令

    音频转换: .转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 .转换amr到wav: ffmpeg -acodec libamr_nb -i shenhux ...

随机推荐

  1. 工作总结 @Html 辅助方法 为 生成的 标签设置元素属性 htmlAttributes 一个对象,其中包含要为该元素设置的 HTML 特性。

    @Html.RadioButtonFor(m => m.IsJianChe, true, new { @style = "width: 18px; height: 18px;" ...

  2. 关于对象映射(Dto->model) 思路的一些想法

    最近粗浅的学习了下AutoMapper 这个做对象映射的第三方工具,觉得非常方便使用,所以简单的总结了一下我能想到的简单的对象映射的方式. 占时先不考虑源对象成员到目标对象成员的指定映射(即成员名不一 ...

  3. 迭代器适配器{(插入迭代器back_insert_iterator)、IO流迭代器(istream_iterator、ostream_iterator)}

    一.迭代器适配器 反向迭代器 插入迭代器 IO流迭代器 其中反向迭代器可以参考以前的文章. 二.插入迭代器 插入迭代器实际上是一个输出迭代器(*it=; ++) back_insert_iterato ...

  4. ansible 提示安装sshpass

    之前用ansible一直用的root身份.机器之间又早早的做好了ssh信任.所以一直也没有出现什么问题.今天想想自己不能这么浪了,还是用回普通用户吧: 然而马上就遇到了第一个问题,ansible提示安 ...

  5. Spring Cloud(八):分布式配置中心服务化和高可用

    在前两篇的介绍中,客户端都是直接调用配置中心的server端来获取配置文件信息.这样就存在了一个问题,客户端和服务端的耦合性太高,如果server端要做集群,客户端只能通过原始的方式来路由,serve ...

  6. MySQL5.0存储过程教程

    Introduction 简介 MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的.简单的来说是介绍了“存储过程.触发器.视图.信息架构视图”,在此感谢译者陈朋奕的努力 ...

  7. 01、Windows Phone 套接字(Socket)实战之交互设计

    这个 Demo 主要使用 WP 中提供的 Socket 对象,来与 PC 端进行文字.文件的互相传输.因为在 WP 中系统 对存储的操作限制的比较多,例如,你把 .doc..txt..zip 等常见的 ...

  8. linux的RMP命令(rmp包的安装与反安装)

    RMP 是 LINUX 下的一种软件的可执行程序,你只要安装它就可以了.这种软件安装包通常是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是. ...

  9. 区别:Use MFC In A Shared DLL 和 Use MFC In A Static Library

    摘自:Programming Windows with MFC, 2nd Edition Choosing Use MFC In A Shared DLL minimizes your applica ...

  10. JavaScript中的闭包详解

    闭包是JavaScript的重要特性,非常强大,可用于执行复杂的计算,可并不容易理解,尤其是对之前从事面向对象编程的人来说,对 JavaScript 认识和编程显得更难.特别是在看一些开源的JavaS ...