用API播放音频及视频文件

news/2024/5/19 0:13:50 标签: api, null, application, signal, delete, windows

如果想在Windows下播放音频或视频文件,可以使用API函数中的mciSendString实现,非常简单。

 

源代码如下:

/****************************************************************/

/*  超简易媒体播放器                                             */

/*  作者: 卢培培(goodname008)                                    */

/****************************************************************/

#include "windows.h"

 

int main(int argc, char *argv[])

{

    char filename[255];

    strcpy(filename, "open ");

    strcat(filename, argv[1]);

    strcat(filename, " alias media");

   

    if (argc == 2)

    {

        mciSendString("close media", NULL, NULL, NULL);

        mciSendString(filename, NULL, NULL, NULL);

        mciSendString("play media", NULL, NULL, NULL);

        system("pause");

    }

   

    return 0;

}

 

    链接的时候别忘了加上winmm.lib,一个非常非常简单的媒体播放器就OK了。当然,如果上面这堆代码能够被称做播放器的话,我想世界上现存的播放器可能不会有比这个再简单的了,你见过播放器做成console application的吗?呵呵。运行时只需要一个参数,就是要播放的媒体文件的文件名,可以这样说,媒体播放器能播的它都能播。

   

    其实,mciSendString这个函数非常有用,而且非常复杂。上面的代码仅仅是一个播放器的最简单实现,不能实现暂停,不能实现快进等等。如果要实现更复杂的功能,只要配合MCI指令集就可以了。

 

下面是MCI指令集的列表:

break

capability

capture

close

configure

copy

cue

cut

delete

escape

freeze

index

info

list

load

mark

monitor

open

paste

pause

play

put

quality

realize

record

reserve

restore

resume

save

seek

set

setaudio

settimecode

settuner

setvideo

signal

spin

status

step

stop

sysinfo

undo

unfreeze

update

where

window

 

    至于每条指令的具体用法,我想MSDN应该是最权威的了,当然,网上也有相关的中文资料供大家参考。

 

细心的人应该已经发现了,使用mciSendString函数配合MCI指令集,再加上一些作界面的知识,做一个漂亮实用的播放器应该是不成问题了。你说呢?   :D

 

 

*-------------------------------------------*

*  转载请通知作者并注明出处,CSDN欢迎您!   *

*  作者:卢培培(goodname008              *

*  邮箱:goodname008@163.com                *

*  专栏:http://blog.csdn.net/goodname008   *

*-------------------------------------------*

 


http://www.niftyadmin.cn/n/1536662.html

相关文章

[转帖]nginx 禁止ip访问以及禁止post方法的简单方法

nginx禁止IP访问站点的设置方法 http://www.512873.com/archives/471.htmlhttp://www.512873.com/archives/312.html conf目录下面,新建blocksip.conf 在blocksip.conf里面写入deny 1.1.1.1; 这句就是禁止这个IP的意思(整个段是:deny 1.1.1.0/24;&#x…

Win32 函数原型

Win32函数原型分为普通、ANSI和Unicode三种。其实如果严格地说,并不能有普通这种分法,也就是只有ANSI和Unicode这两种。普通,一般都是MSDN开发文档中直接给出的形式。比如,下面是SetWindowText的普通原型:BOOL SetWind…

Linux sed 批量替换多个文件中的字符串

sed -i "s/oldstring/newstring/g" grep oldstring -rl yourdir例如:替换/home下所有文件中的www.bcak.com.cn为bcak.com.cnsed -i "s/www.bcak.com.cn/bcak.com.cn/g" grepwww.bcak.com.cn-rl /homesed -i "s/ray/eses/g" grep ray …

核心对象

首先让我解释什么叫做“核心对象”(kernel object)。“GDI对象”是大家比较熟悉的东西,我们利用GDI函数所产生的一支笔(pen)或一支刷(brush)都是所谓的“GDI对象”。但什么又是“核心对象”呢&a…

什么是C Runtime函数库的多线程版本

当C Runtime函数库于20世纪70年代产生出来时,PC的内存容量还很小,多任务是个新奇观念,更别提什么多线程了。因此以当时产品为基础所演化的C Runtime函数库在多线程(multithreaded)的表现上有严重问题,无法被多线程程序…

[转帖]postgresql查看用户连接以及杀死连接的会话

postgresql查看用户连接以及杀死连接的会话 2017年10月11日 15:21:18 DB_su 阅读数 8908更多 分类专栏: postgresql版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接&#xff…

MockWebServer使用指南

转载请标明出处:http://blog.csdn.net/shensky711/article/details/52771797 本文出自: 【HansChen的博客】 MockWebServer介绍MockWebServer能帮我们做什么MockWebServer不能帮我们做什么MockWebServer环境配置MockWebServer一般步骤MockWebServer使用方法添加预置…

[转帖]虚拟化讲座

虚拟化讲座https://www.cnblogs.com/tcicy/p/10475030.html 目录 UNIX历史Linux历史虚拟化历史 虚拟化都有哪些虚拟化分类虚拟化演示KVM特性UNIX历史 Linux历史 虚拟化历史 虚拟化都有哪些 虚拟化分类 系统级虚拟化实现 VMwareMicrosoftXenKVMOracle VM VirtualBoxBochsQEMU操作…