iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言使用mciSendString实现播放音乐功能
  • 277
分享到

C语言使用mciSendString实现播放音乐功能

摘要

目录使用 mciSendString 播放音乐使用 mciSendCommand 播放音乐解决某些 MP3 无法播放的问题使用 PlaySound 函数播放音乐使用 mciSendS

使用 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 = L"sequencer";
    mciOpenParms.lpstrElementName = L"R:\\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.de,Mp3tag 的操作方法非常简单,点点鼠标就能搞定,这里不再详述。

使用 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);                                        // 停止后台播放

到此这篇关于C语言使用mciSendString实现播放音乐功能的文章就介绍到这了,更多相关C语言mciSendString播放音乐内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言使用mciSendString实现播放音乐功能

本文链接: https://www.lsjlt.com/news/195968.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言使用mciSendString实现播放音乐功能
    目录使用 mciSendString 播放音乐使用 mciSendCommand 播放音乐解决某些 MP3 无法播放的问题使用 PlaySound 函数播放音乐使用 mciSendS...
    99+
    2023-02-14
    C语言mciSendString播放音乐 C语言 播放音乐 C语言mciSendString
  • 怎么使用C语言实现音乐播放器
    本文小编为大家详细介绍“怎么使用C语言实现音乐播放器”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用C语言实现音乐播放器”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。介绍该程序是一个小的DEMO,实现了以...
    99+
    2023-07-05
  • java使用JMF实现音乐播放功能
           JMF实际上是Java的一个类包。JMF 2.1.1技术提供了先进的媒体处理能力,从而扩展了Java平台的功能。这些功能包括:媒体捕获、压缩、流转、回放,以及对各种主...
    99+
    2023-05-31
    java jmf 音乐播放
  • C语言如何实现音乐播放器
    本文小编为大家详细介绍“C语言如何实现音乐播放器”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现音乐播放器”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实例代码如下:#include &l...
    99+
    2023-06-08
  • C语言实现音乐播放器的示例代码
    目录介绍实现代码介绍 该程序是一个小的DEMO,实现了以下几个功能,可以借鉴学习。 功能1:鼠标选择互动功能。通过鼠标的移动和按下,按钮的颜色也会发生改变。 功能2:音乐的播放与暂停...
    99+
    2023-02-26
    C语言实现音乐播放器 C语言音乐播放器 C语言音乐播放
  • Python实现多功能音乐播放器详解
    目录前言准备工作知识点和所需模块环境完整代码效果展示导入模块界面按钮功能创建一个文件目录音乐读取功能显示已加载的音乐播放音乐停止播放下一首上一首音量控制关闭窗口前言 就是用Pytho...
    99+
    2024-04-02
  • python实现闹钟定时播放音乐功能
    可以使用Python的time模块和pygame库来实现闹钟定时播放音乐的功能。首先,需要安装pygame库:```pip inst...
    99+
    2023-08-16
    python
  • C#实现语音播报功能
    本文实例为大家分享了C#实现语音播报功能的具体代码,供大家参考,具体内容如下 环境: window10vs2019 16.5.5.netframework4.5 一、关于语音播报 语...
    99+
    2024-04-02
  • 如何使用html实现音乐播放
    小编给大家分享一下如何使用html实现音乐播放,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在html中可以使用“<audio>”标签定义声音,只需要...
    99+
    2023-06-07
  • C++ Qt实现音视频播放功能
    由于最近着手的Qt项目需要视频播放 自己做的时候踩了很多坑 避免以后踩坑 故在此记录实现过程  Qt版本 5.9 基于C++11 Qt核心组件与附加组件安装时请打钩 否则可能出现项目...
    99+
    2024-04-02
  • Android语音播放功能怎么实现
    Android平台上可以使用MediaPlayer或者SoundPool来实现语音播放功能。 使用MediaPlayer实现语音播...
    99+
    2023-10-22
    Android
  • C#基于winform实现音乐播放器
    本文实例为大家分享了C#基于winform实现音乐播放器的具体代码,供大家参考,具体内容如下 首先,右键工具箱的组件,找到选择项,找到Windows Media Player组件并添...
    99+
    2024-04-02
  • PHP怎么实现音乐播放器的隐藏功能
    要实现音乐播放器的隐藏功能,可以使用PHP结合JavaScript来实现。首先,在PHP中定义一个变量来表示音乐播放器的隐藏状态,例...
    99+
    2023-08-29
    PHP
  • python怎么实现闹钟定时播放音乐功能
    要实现闹钟定时播放音乐的功能,可以使用Python的标准库中的time和os模块,以及第三方库pygame。下面是一个简单的示例代码...
    99+
    2023-08-17
    python
  • 怎么用VBS实现音乐播放
    这篇文章主要介绍怎么用VBS实现音乐播放,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一个代码,会使用默认mp3文件关联的程序,会出现音乐播放框 代码如下:wscript.sleep 12000 set ws=cr...
    99+
    2023-06-08
  • 怎么在Android中利用SeekBar实现音乐播放器功能
    怎么在Android中利用SeekBar实现音乐播放器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一.Demo简介 利用AIDL为Activity绑定服务,...
    99+
    2023-05-31
    android seekbar roi
  • HTML5中如何实现背景音乐自动播放功能
    小编给大家分享一下HTML5中如何实现背景音乐自动播放功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!音乐的自动播放属性,这里...
    99+
    2024-04-02
  • java实现录音播放功能
    本文实例为大家分享了java实现录音播放的具体代码,供大家参考,具体内容如下 需求: 1.实现可以从麦克风进行录音 2.可以停止录音 3.实现播放录音内容 4.并将所录的mp3文件全...
    99+
    2022-11-13
    java 录音 播放
  • C#使用DirectX.DirectSound播放语音
    最近在做项目时,需要进行音频文件的即时播放,并且要求同时播放多条语音,之前C#程序中语音播放一直使用System.Media类库的SoundPlayer类进行播放,但是这个播放类有个...
    99+
    2024-04-02
  • 使用Python的音乐播放器GUI的实现
    音乐播放器可让您快速轻松地管理和收听所有音乐文件。在本文中,我将带您了解如何使用 Python 创建音乐播放器 GUI。 如何使用 Python 创建音乐播放器 GUI? 第一步是...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作