VC++编写视频音乐播放器

发布时间:2021-06-07

Softeem Consultancy Service

VC++编写视频音乐播放器

Softeem Consultancy Service

音乐播放器程序主要功能音乐播放器可以播放Windows下常用的音频和视 频文件,如MP3、MIDI、WAV、WMA等。程序 的界面如图所示。用户可通过文件对话框添加想 要播放的文件和删除音乐文件,并可实现暂停、 关闭或重播的功能,保存播放列表,并显示播放 的时间和正在播放文件的全路径和文件名,同时, 在媒体文件播放的过程中,用户可随时调节音量, 还可以设置播放模式,如单曲循环,顺序播放等, 同时,可以同步歌词,同步视频,并在桌面显示 等。

Softeem Consultancy Service

程序界面

Softeem Consultancy Service

运行效果

Softeem Consultancy Service

创建初始界面程序 实现界面美化1,首先新建一个工程,取个好听的名字,这里命名为Multimedia,然 后选择Dialog based,点击OK完成。2,设置对话框显示风格。在对话框点右键 属性,设置边框为细小,把标题 栏复选框去掉,其他默认。如图:

Softeem Consultancy Service

3,界面布局。在对话框中添加相应的控件,完成相应功能,最终效果如图:

Softeem Consultancy Service

4.进行对话框、控件的相应美化。 (1)给对话框添加背景 (2)给按钮添加位图 (3)使静态文本透明 (4) 相关控件的具体美化

实现播放音乐Windows MCI与多媒体软件开发 Windows MCI(Media Control Interface)是控制多媒体设备的高层命令接口, 提供了与设备无关的控制多媒体设备的方法。MCI可控制的多媒体设备包括标准 的多媒体设备,如CD音频(CD Audio)、数字视频、动画、Wave格式数字声 音和MIDI音序器,以及影碟机等可选设备。MCI包含在Windows系统的 MMSYSTEM.DLL动态链接库中,用以协调多媒体事件和MCI设备驱动程序之间 的通信。一些MCI设备驱动程序,影碟机设备驱动程序,可以直接控制目标设备 ;另外一些MCI 设备驱动程序,如Wave和MIDI 设备驱动程序,通过 MMSYSTEM中的函数间接控制目标设备;还有一些MCI设备驱动程序则提供了 与其他Windows动态链接库的高层接口。MCI提供两种不同但相互联系的接口方 式。第一种方式利用消息和数据结构来给多媒体设备发送命令并接收设备传来的 信息,这种方法用函数mciSendCommand来给设备发送命令。其原型为:

Softeem Consultancy Service

MCIERROR mciSendCommand ( MCIDEVICEID IDDevice, UINT uMsg, DWORD fdwCommand, DWORD dwParam ); 参数IDDevice表示用来接收命令的设备的标识符,注意在打开设备时不用该参数 uMsg是要发送的命令;fdwCommand是命令消息的标志,而参数dwParam则是一 个指向包含命令消息的参数的结构。如该参数返回非0 值,则表示设备驱动出错, 这时可用m

ciGetErrorString函数来取得错误信息,其原型为: BOOL mciGetErrorString ( DWORD fdwError, LPTSTR lpszErrorText, UINT cchErrorText ); 参 数 fdwError 是由mciSendCommand 或mciSendString 返回的错误代码; 参数 lpszErrorText是一个指针,它指向用来存储错误描述信息的缓冲区;参数 cchErrorText表示缓冲区的长度,以字符为单位。

Softeem Consultancy Service

MCI接口的第二种方式是使用ASCII字符串来发送驱动设备的命令,这种 方式采用函 数mciSendString把命令字符发送给设备。其原型为: MCIERROR mciSendString ( LPCTSTR lpszCommand, LPTSTR lpszReturnString, UINT cchReturn, 第5 章媒体播放器——多媒体程序设计113 HANDLE hwndCallback ); 参数lpszCommand是要发送的MCI命令字符串;参数lpszReturnString是 一个指向接收返回信息的缓冲区的指针;cchReturn表示缓冲区的长度, 以字符为单位;hwndCallback是回调窗口的句柄,一般为NULL。 这 种 字 符 串 命 令 很 直 观 方 便 , 近 似 自 然 语 言 , 如 “ play cdaudio ” , “stop waveaudio”等。返回的信息字符串由 lpszReturnString带回,如该函数返回非0值,同样可用 mciGetErrorString获取错误信息。

Softeem Consultancy Service

为了使用MCI编程,必须包含多媒体头文件: #include <mmsystem.h> 并在项目属性中添加对多媒体库winmm.lib链接。

Softeem Consultancy Service

wchar_t buf[256]; MCIERROR err = mciSendString(L"open cdaudio alias cd", NULL, 0, NULL); // 打开CD if (err) { if (mciGetErrorString(err, buf, 256)) MessageBox(buf, L"Error"); // 获得并显示错误串 return; } mciSendString(L"status cd number of tracks", buf, 256, NULL); // 获得音轨总数 m_nTracks = wcstol(buf, NULL, 10); // 这里使用了宽字符版的 字符串到整数的 // 转换函数:long wcstol( const wchar_t *nptr, wchar_t **endptr, int base ); wsprintf(buf, L"play cd from %d to %d", m_nFrom, m_nTo); mciSendString(buf, NULL, 0, NULL); // 从音轨m_nFrom头播 放到音轨m_nTo–1尾

Softeem Consultancy Service

其他常用命令: mciSendString(L"set cd time format tmsf", NULL,0,NULL); // 设置时 间格式为 // 轨(<100):分(<100):秒(<60):帧(<75),一秒=75块,一块=98帧 mciSendString(L"set cd door open", NULL, 0, NULL); // 打开光驱 mciSendString(L"set cd door closed", NULL, 0, NULL); // 关闭光驱 mciSendString(L"pause cd", NULL, 0, NULL); // 暂停播放 mciSendString(L"resume cd", NULL, 0, NULL); // 恢复播放 mciSendString(L"stop cd", NULL, 0, NULL); // 停止播放 mciSendString(L"close cd", NULL, 0, NULL); // 关闭CD设备 mciSendString(L“status cd length”, buf, 256, NULL); // 获得整个CD 的音轨总长度 mciSendString("Status %s length" ", buf, 256, NULL); // 获得长度 mciSendString(L“status cd length track 5”, buf, 256, NULL); // 获得 第5个音轨的长度 mciSendString(L“status %s position”,0,255,0);// mciSendString(L"

status cd current track", buf, 256, NULL); // 获得 当前音轨号

Softeem Consultancy Service

注意: "play cd from m_nFrom to m_nTo"是完整形式,它还有其他形式: "play cd from m_nFrom"从m_nFrom播放到盘尾 "play cd to m_nTo"从当前位置播放到指定音轨 "play cd" 从当前位置播放到盘尾 例如播放最后一首歌:"play cd from m_nLast" 2)WAV wchar_t buf[256]; wsprintf(buf, L"open \"%s\" alias sound type waveaudio", pDoc>strFilePath); MCIERROR err = mciSendString(buf, NULL, 0, NULL); if (err) { if (mciGetErrorString(err, buf, 256)) MessageBox(buf, L“Error”); return; }

Softeem Consultancy Service

// t1和t2为用户指定的起止时间(单位为秒,浮点变量) DWORD start = (DWORD)(t1 * 1000 + 0.5), end = (DWORD)(t2 * 1000 + 0.5); wsprintf(buf, L"play sound from %ld to %ld", start, end); mciSendString(buf, NULL, 0, NULL); 其他常用命令: mciSendString(L“play %s from %ld“, NULL, 0, NULL); // 快进 mciSendString(L"status sound length", buf, 256, NULL); mciSendString(L"pause sound", NULL, 0, NULL); mciSendString(L“play sound”, NULL, 0, NULL); // 从当前位置 播放到文件尾 mciSendString(L“setaudio %s volume to %d”“, NULL, 0, NULL);//设置音量 mciSendString(L"stop sound", NULL, 0, NULL); mciSendString(L"close sound", NULL, 0, NULL);

VC++编写视频音乐播放器.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219