商城网站建设需求,一个网页大概多少钱,wordpress安装和使用方法,四川网络推广seo使用 mciSendString 播放音乐
mciSendString 支持 mp3、wma、wav、mid 等多种媒体格式#xff0c;使用非常简单。这里做一个简单的范例#xff0c;用 mciSendString 函数播放 MP3 格式的音乐#xff0c;代码如下#xff1a;
// 编译该范例前#xff0c;请把 music.mp3 放…使用 mciSendString 播放音乐
mciSendString 支持 mp3、wma、wav、mid 等多种媒体格式使用非常简单。这里做一个简单的范例用 mciSendString 函数播放 MP3 格式的音乐代码如下
// 编译该范例前请把 music.mp3 放在项目文件夹中
// 发布时请把 music.mp3 和编译的 exe 放在一起
// 编译环境VC6~VC2019 EasyX_20210115
//
#include graphics.h
#include conio.h
// 引用 Windows Multimedia API
#pragma comment(lib, Winmm.lib)int main()
{initgraph(640, 480);// 打开音乐mciSendString(_T(open music.mp3 alias mymusic), NULL, 0, NULL);outtextxy(0, 0, _T(按任意键开始播放));_getch();// 播放音乐mciSendString(_T(play mymusic), NULL, 0, NULL);outtextxy(0, 0, _T(按任意键停止播放));_getch();// 停止播放并关闭音乐mciSendString(_T(stop mymusic), NULL, 0, NULL);mciSendString(_T(close mymusic), NULL, 0, NULL);outtextxy(0, 0, _T(按任意键退出程序));_getch();closegraph();return 0;
}
简单讲解一下
一定要引用 Winmm.lib 库文件。这个范例中是通过 #pragma comment 命令引用的也可以在项目属性中设置这里不作介绍。
mciSendString 函数的功能很强大甚至可以播放视频不过这里就不多作介绍了详细请参见 MSDN。多数情况只需要用到第一个参数将另外三个参数置为 NULL, 0, NULL 即可。
第一个参数是多媒体命令字符串不区分大小写。程序中先要通过 open 命令打开 background.mp3并用 alias 指定了别名为“mymusic”这样在之后的代码中就可以方便的通过“mymusic”这个别名访问该音乐了。当然并不是必须要指定别名每次通过文件名访问也是可以的。
open 后面的 mp3 用绝对路径或相对路径都可以。
然后就是play mymusic 开始播放stop mymusic 停止播放close mymusic 关闭文件。
如果需要同时播放多个音乐请为不同的音乐指定不同的别名然后分别操作即可。
不再需要播放的音乐请记得用 close 命令关闭。
另外还有一个 PlaySound 函数也可以用来播放声音不过可惜不支持 mp3 / wma这里就不多做介绍了。
一些有用的多媒体命令
从头播放 xxx
play xxx from 0
循环播放 .mp3 文件.wma 文件同样可以
open xxx.mp3
play xxx.mp3 repeat
循环播放 .wav 文件.mid 文件同样可以
open xxx.wav type MPEGVideo
play xxx.wav repeat
关闭当前程序打开的所有多媒体文件
close all
如果文件名中有空格需要用双引号引起来文件名注意转义
mciSendString(open \D:\\My Music\\俞丽拿 梁祝 化蝶.mp3\ alias mymusic, NULL, 0, NULL);
使用 mciSendCommand 播放音乐
mciSendCommand 与 mciSendString 的功能类似只是控制方式略有区别。因此对 mciSendCommand 不做过多介绍只看一个使用例子吧。以下范例实现 mp3 的循环播放
// 该范例演示使用 mciSendCommand 函数循环播放 mp3
// 编译环境VC2008~VC2019 EasyX_20210115
//
#include graphics.h
#include Digitalv.h
#include conio.h
#pragma comment(lib, winmm.lib)int main()
{initgraph(640, 480);// 打开音乐文件MCI_OPEN_PARMS mciOpenParms;mciOpenParms.lpstrDeviceType Lsequencer;mciOpenParms.lpstrElementName LR:\\Downloads\\test.mp3;mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_WAIT, DWORD_PTR(mciOpenParms)); // 打开指定媒体文件UINT wDeviceID mciOpenParms.wDeviceID; // 返回的 Device ID 需要保存下来以便实现后续控制outtextxy(0, 0, L按任意键开始播放);_getch();// 播放音乐MCI_PLAY_PARMS mciPlayParms;mciSendCommand(wDeviceID, MCI_PLAY, MCI_DGV_PLAY_REPEAT, DWORD_PTR(mciPlayParms));outtextxy(0, 0, L按任意键停止播放);_getch();// 停止播放并关闭音乐mciSendCommand(wDeviceID, MCI_STOP, 0, NULL); // 停止播放mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL); // 关闭音乐outtextxy(0, 0, L按任意键退出程序);_getch();closegraph();return 0;
}
解决某些 MP3 无法播放的问题
有些 mp3 无法用 mciSendString 播放是因为用了比较大的封面我测试过一个 mp3 的封面尺寸是 1824x1824直接无法播放。将封面尺寸修改为 500x500顺利播放。当然更简单的办法是直接移除封面。这里给大家推荐个工具Mp3tag官网https://www.mp3tag.deMp3tag 的操作方法非常简单点点鼠标就能搞定这里不再详述。
使用 PlaySound 函数播放音乐
PlaySound 可以用来播放 wav 和系统声音使用很简单一些常用的用法如下
// 注意
// 1. 需要使用预编译指令 #pragma comment(lib, winmm.lib) 链入库文件
// 2. 第一个参数是字符串注意使用程序中约定的字符集例如 Unicode 字符集需要在字符串前面加 L
//
PlaySound(C:\\SOUNDS\\BELLS.WAV, NULL, SND_SYNC); // 播放 Bells.wav并等待直到播放结束
PlaySound(C:\\SOUNDS\\BELLS.WAV, NULL, SND_ASYNC); // 后台播放 Bells.wav函数立即返回
PlaySound(SystemExclamation, NULL, SND_ASYNC); // 后台播放系统定义的 SystemExclamation 声音
PlaySound(C:\\SOUNDS\\BELLS.WAV, NULL, SND_LOOP | SND_ASYNC); // 后台循环播放 Bells.wav
PlaySound(NULL, NULL, 0); // 停止后台播放
更多好玩的小项目看我哔哩哔哩、Q裙小鱼快来啊的个人空间-小鱼快来啊个人主页-哔哩哔哩视频哔哩哔哩小鱼快来啊的个人空间提供小鱼快来啊分享的视频、音频、文章、动态、收藏等内容关注小鱼快来啊账号第一时间了解UP注动态。编程学习群725022484 每天分享一个编程小游戏~C/C游戏源码素材及各种安装包 私信不常看https://space.bilibili.com/1827181878?spm_id_from333.1007.0.0