【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

在windows平台上面,开发音乐播放音乐不是一件很复杂的事情。当然,你如果需要自己进行音频的编解码工作,那还是有一些工作量的。事实上,如果我们只是用到播放音乐这个功能,比如写个小游戏、教育软件啥的,那么使用windows自带的API就可以实现这个目的。

1、添加多媒体库

#pragma comment(lib, "winmm.lib")

2、打开文件

MCI_OPEN_PARMS open_param;
open_param.lpstrElementName = _T("demo.mp3");
mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT, DWORD_PTR(&open_param));

3、带阻塞地播放音乐,也就是播放不结束函数不返回

MCI_PLAY_PARMS play_param;
mciSendCommand(open_param.wDeviceID, MCI_PLAY, MCI_WAIT, DWORD_PTR(&play_param));

4、非阻塞地播放音乐,也就是命令发送结束就返回

MCI_PLAY_PARMS play_param;
mciSendCommand(open_param.wDeviceID, MCI_PLAY, MCI_NOTIFY, DWORD_PTR(&play_param));

5、结束音乐播放

MCI_GENERIC_PARMS close_param;
mciSendCommand(open_param.wDeviceID, MCI_CLOSE, 0, DWORD_PTR(&close_param));

6、所有的多媒体子命令

/* MCI command message identifiers */
#define MCI_OPEN                        0x0803
#define MCI_CLOSE                       0x0804
#define MCI_ESCAPE                      0x0805
#define MCI_PLAY                        0x0806
#define MCI_SEEK                        0x0807
#define MCI_STOP                        0x0808
#define MCI_PAUSE                       0x0809
#define MCI_INFO                        0x080A
#define MCI_GETDEVCAPS                  0x080B
#define MCI_SPIN                        0x080C
#define MCI_SET                         0x080D
#define MCI_STEP                        0x080E
#define MCI_RECORD                      0x080F
#define MCI_SYSINFO                     0x0810
#define MCI_BREAK                       0x0811
#define MCI_SAVE                        0x0813
#define MCI_STATUS                      0x0814
#define MCI_CUE                         0x0830
#define MCI_REALIZE                     0x0840
#define MCI_WINDOW                      0x0841
#define MCI_PUT                         0x0842
#define MCI_WHERE                       0x0843
#define MCI_FREEZE                      0x0844
#define MCI_UNFREEZE                    0x0845
#define MCI_LOAD                        0x0850
#define MCI_CUT                         0x0851
#define MCI_COPY                        0x0852
#define MCI_PASTE                       0x0853
#define MCI_UPDATE                      0x0854
#define MCI_RESUME                      0x0855
#define MCI_DELETE                      0x0856

ps:

从前自己写代码过分关注技术本身,反而对场景和应用不是很在意。就像这音乐播放一样,如果只是使用,使用mci库函数早就足够了。如果还需要进一步分析编解码的话,可能就需要研究一下ffmpeg之类的开源软件了。

多媒体播放(windows音乐播放)相关推荐

  1. 单机版音乐播放器--ZTPlayer

    由于现在的Windows音乐播放器,没有单纯的播放,经常会弹出小广告或者附带安装不必要的软件,有的播放器,没有联网甚至都不能播放,也就是必须基于联网和账号绑定,本人非常反感这现象,下面是本人开发的单机 ...

  2. EasyX和Windows库函数实现音乐播放

    文章目录 1 EasyX和Windows库函数实现音乐播放 1 EasyX和Windows库函数实现音乐播放 EasyX只是用来显示背景图片,仅此而已,哈哈哈. #include <graphi ...

  3. 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能...

    原文:与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 [源码下载] 与众不同 windows phone (40 ...

  4. Python调用Windows API函数编写录音机和音乐播放器

    功能描述: 1)使用tkinter设计程序界面: 2)调用Windows API函数实现录音机和音乐播放器. 参考代码: . 运行界面:

  5. 用C/C++写一个简单的音乐播放器(基于windows控制台编程)

    学习内容:1. 使用单例模式设计,让加载资源唯一化. 2. 控件管理. 3. 按键消息处理 4. 音频函数的使用 1. 资源管理与加载 1.1 公共头文件 将用到的头文件保存到一个公共头文件" ...

  6. 在Winform(C++/CLR)平台设计的(本地在线)音乐播放器(基于WMP(Windows Media Player)控件实现)

    首先,祝贺阿根廷获得2022世界杯冠军! 文章目录 简介 功能展示 1.用户注册.登录.自定义主题 2.本地歌曲导入.播放并读取歌词文件 3.在线歌曲搜索.收藏.播放 4.歌词同步及桌面歌词 5.在线 ...

  7. 音乐播放器制作一(Windows Media Player控件)

    VS2013 MFC做音乐播放器,需要使用到ActiveX控件(Windows Media Player),可以播放音视频,支持歌单添加,删除,保存操作,支持循环,顺序,随机播放.   话不多说,先来 ...

  8. C语言Windows下实现音乐播放器

    前言 由于之前没有开发过Windows下跑的exe程序,听着歌,想着能不能用C语言写一个windows跑的音乐播放器呢? 于是乎便开始探寻想法的可行性,难易程度,搜寻资料了解到,可以使用EasyX图形 ...

  9. 可听周杰伦许嵩周深的歌,Windows,macOS,Linux均可用的全平台音乐播放器

    title: 可听周杰伦许嵩周深的歌,Windows,macOS,Linux均可用的全平台音乐播放器 Windows10版运行 image-20201214152050007 Mac版运行 image ...

最新文章

  1. Actipro WPF Studio破解
  2. VMware HA实战攻略之四VMware HA安装及配置
  3. 星巴克、苹果、谷歌、亚马逊等巨头,为何同时做这件事?
  4. OVS DPDK--物理端口配置(三)
  5. k86跟mysql_MySQL【基础架构】
  6. 输入3个字符串,按由小到大顺序输出
  7. @Pointcut的用法
  8. C/C++语言函数参数里的“...”作用,va_list的使用(stdarg.h)
  9. ASP存储过程在开发中的应用分析。
  10. php是世界上最好的语言吗
  11. python蓝屏_plt.绘图()导致windows出现蓝屏
  12. 基于Pytorch实现GAT(图注意力网络)
  13. 微信小程序-抖音/字节小程序
  14. 智能宠物饲养系统设计
  15. Linus Torvalds 在 22 号宣布Linux 5.18发布
  16. mysql count 去重复_mysql – 忽略COUNT中的重复行
  17. 000 我和网安的故事.doc
  18. 我们学校有计算机房用英语怎么说,根据中英提示,完成下列各句1、他们学校有3个计算机房??......
  19. C/C++使用Windows的API实现共享内存以及同步
  20. 成为一流软件开发者的 34 条建议

热门文章

  1. 关于AI和区块链的技术落地,你不知道的是……
  2. redhat6.5配置阿里云yum源
  3. 视图层、业务逻辑层、数据访问层及实体层的关系(入门)
  4. 与人方便,随遇而安!
  5. 10年10亿才能烧好电子商务?
  6. JavaScript——Prototype详探
  7. servlet,session对象的生命周期
  8. [LeetCode] Remove Element 分析
  9. [转]使用xcode4 workspace 多个project协同工作
  10. CString转换为char*