mciSendString 播放声音视频

游戏没有声音多单调。

这里做一个简单的范例,用 mciSendString 函数播放 MP3 格式的音乐,先看看代码吧:

// 编译该范例前,请把 background.mp3 放在项目文件夹中
// 发布时,请把 background.mp3 和编译的 exe 放在一起
// 编译环境:VC6 + EasyX v20100825
//
#include <graphics.h>
#include <conio.h>
// 引用 Windows Multimedia API
#pragma comment(lib,"Winmm.lib")

void main()
{
	initgraph(640, 480);

	// 打开音乐
	mciSendString("open background.mp3 alias mymusic", NULL, 0, NULL);

	outtextxy(0, 0, "按任意键开始播放");
	getch();

	// 播放音乐
	mciSendString("play mymusic", NULL, 0, NULL);

	outtextxy(0, 0, "按任意键停止播放");
	getch();

	// 停止播放并关闭音乐
	mciSendString("stop mymusic", NULL, 0, NULL);
	mciSendString("close mymusic", NULL, 0, NULL);

	outtextxy(0, 0, "按任意键退出程序");
	getch();
	closegraph();
}

简单讲解一下:

一定要引用 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 / .mid 同样可以):
"open xxx.mp3" 然后 "play xxx.mp3 repeat"

循环播放 .wav 文件:
"open xxx.wav type MPEGVideo" 然后 "play xxx.wav repeat"

关闭当前程序打开的所有多媒体文件:
"close all" 

如果文件名中有空格,需要用双引号引起来文件名(注意转义):
mciSendString("open \"D:\\My Music\\俞丽拿 梁祝 化蝶.mp3\" alias mymusic", NULL, 0, NULL);

如果希望将 mp3 嵌入到 exe 中,请参考:http://www.easyx.cn/skills/View.aspx?id=87

实际中可能会遇到各种各样的问题,这里给出一个完整的范例程序,可以下载到本机试试能否正常播放。【点这里下载

这些暂时应该够用了吧,更多的多媒体命令请参见 MSDN。

时间: 2024-10-08 17:23:16

mciSendString 播放声音视频的相关文章

Android 音视频深入 十一 FFmpeg和AudioTrack播放声音(附源码下载)

项目地址,求starhttps://github.com/979451341/AudioVideoStudyCodeTwo/tree/master/FFmpeg%E6%92%AD%E6%94%BE%E9%9F%B3%E4%B9%90%EF%BC%88%E4%BF%9D%E7%A8%8B%E5%BA%8F%E4%B8%8D%E6%AD%BB%EF%BC%89 这个是FFmpeg解码出音频,给AudioTrack播放,这回才算是java与c语言之间合作 这回我们将会从c++里调用java函数,下面就

录音和播放声音 mciSendString

  https://files.cnblogs.com/files/xe2011/mciSendString2020111183816.rar mciSendString API [DllImport("WinMm.dll",CharSet = CharSet.Auto,CallingConvention = CallingConvention.Cdecl)] public static extern int mciSendString(string lpstrCommand,stri

音视频处理

之前介绍的系统声音服务(System Sound Services)提供了一个接口,用于播放不超过30秒的声音.要进一步使用iOS的音频功能,有两个框架:Media Player和AV Foundation. Media Player框架 Media Player框架用于播放本地和远程资源中的视频和音频.在应用程序中,可使用它来打开模态iPod界面.选择歌曲以及控制播放.这个框架让您能够与设备提供的所有内置多媒体功能集成. 框架有5个常用类: MPMoviePlayerController -

【分享】性能比肩美拍秒拍的Android视频录制编辑特效解决方案【1】

前言 本人接触Android的时间有限,如果您有更好的解决方案,欢迎吐槽. 众所周知,Android平台开发分为Java层和C++层,即Android SDK和Android NDK.常规产品功能只需要涉及到Java层即可,除非特殊需要是不需要引入NDK的.但如果是进行音视频开发呢?Android系统Java层API对音视频的支持在MediaCodec之前,还停留在非常抽象API的级别(即只提供简单的参数和方法,可以控制的行为少,得不到中间数据,不能进行复杂功能的开发,更谈不上扩展).而在Med

WebRTC 视频对话

今天聊一下WebRTC.很多开发者,可能会觉得有些陌生,或者直接感觉繁杂.因为WebRTC在iOS上的应用,只是编译都让人很是头痛.这些话,到此为止,以防让了解者失去信心.我们只传播正能量,再多的困难都是可以解决的.本博客会不断更新增加内容,不要怕长.首先看一下定义.WebRTC,名称源自网页实时通信(WebReal-TimeCommunication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购GlobalIPSolutions公司而获得的

html5声频audio和视频video说明

现在已经掀起了html5热潮,本文来说明下html5声频audio和视频video 在html5中出现了一些新特性: * canvas 元素    * 视频 video 和 声频audio 元素 :    * 对本地离线存储(localStorage,sessionStorage)的支持 :    * 新增特殊内容元素:article.footer.header.nav.section :    * 新增表单控件: calendar.date.time.email.url.search . 今天

Android实例-MediaPlayer播放音乐和视频(XE8+小米2)

结果: 1.播放视频需要手动放入MediaPlayerControl1控件,设置MediaPlayerControl1.MediaPlayer := MediaPlayer1; 2.播放声音文件正常,但播放器视时发现,第一边正常第二边就报错了(哪位大神知道的,请M我哦,先谢谢了). 3.打包时需要打入MP3与MP4文件,路径为"assets\internal\". 实例代码: 1 unit Unit1; 2 3 interface 4 5 uses 6 System.SysUtils,

HTML5音频与视频

HTML5的两个重要元素audio和video,对于这两个元素,HTML5规范提供了通用.完整.可脚本化控制的API. audio元素来播放声音文件或音频流,controls属性用于提供播放.暂停和音量控件,音频不加这个特性,那么页面上任何信息都不会出现,因为音频元素唯一可视化信息就是对于的控制界面.使用source元素来连接到不同的音频文件,浏览器会自动选择第一个可以识别的格式. <audiosrc="samplesong.mp3" controls="control

执法记录仪视频恢复案例

执法记录仪又称警用执法记录仪或现场执法记录仪.集数码摄像.数码照相.对讲送话器功能于一身,能够对执法过程中进行动态.静态的现场情况数字化记录,便于公安干警在各种环境中执法使用,为执法人员提供了更为安全有效的证据. 近期遇到某支队的请求其在一次出警过程中出现暴力抗法情况,且记录仪被抢夺里面视频则全部被格式化导致现场情况视频全部丢失,客户使用执法仪为警翼执法仪,内存为32G空间,遭遇删除后没有进行录制,根据以上客户提供信息觉得恢复的可能性极大,让客户将执法仪通过专业工具进行镜像后进行视频的提取恢复操