编程词典
明日图书
明日软件
用户注册
用户登录
站内
  当前位置:编程词典服务网 >> 编程词典社区论坛 >> 设计音频播放器
  · 设计音频播放器

用户:  大麦
发帖:  430 篇
作品:  0 个
回复:  110 篇
技术分:  1160 分
等级:  
注册:  2010-05-11 09:09:40



发表于:2010-07-13 14:44:18
          楼主

设计音频播放器
下面来介绍如何利用mciSendCommand函数设计一个音频播放器。具体步骤如下:
(1)创建一个基于对话框的应用程序,工程名称为“AudioMediaPlayer”。
(2)设计对话框资源如图1所示。
 
图1  对话框资源设计
(3)引用Mmsystem.h头文件和Winmm.lib库文件。
#include "Mmsystem.h"            //应用头文件
#pragma comment (lib,"Winmm.lib")         //引用库文件
 提示:为了使用mciSendCommand函数,需要引用Mmsystem.h头文件,并链接Winmm.lib库文件。
(4)定义一个CPlayWave类,具体代码播放wav文件的步骤3。
(5)处理“添加”按钮的单击事件,添加音频文件到列表中。
void CAudioMediaPlayerDlg::OnAddList()
{
 m_List.ResetContent();           //清空列表
 CFileDialog flDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
|OFN_ALLOWMULTISELECT, "音频文件|*.wav;*.mp3||",this);  //定义一个问价打开对话框
 if (flDlg.DoModal()==IDOK)          //判断用户是否按OK按钮
 {
  POSITION pos = flDlg.GetStartPosition();     //获取文件名列表的首位置
  while(pos != NULL)           //利用循环遍历文件名列表
  {
   m_List.AddString(flDlg.GetNextPathName(pos));   //将文件名添加的列表框控件中
  }
 } 
}
(6)向对话框类中添加CPlayWave类型成员wave。
CPlayWave wave;
(7)处理列表框的双击事件,播放当前选择的歌曲。
void CAudioMediaPlayerDlg::OnDblclkList()
{
 int selIndex = m_List.GetCurSel();       //获取当前选择的列表项索引
 if (selIndex != LB_ERR)          //判断是否有项目被选中
 {
  CString str;            //定义一个字符串对象
  m_List.GetText(selIndex,str);       //根据索引获取当前项目的字符串
  wave.Stop();           //停止播放
  wave.Play(m_hWnd,str);        //开始播放歌曲
 }
}
(8)运行程序,效果如图2所示。
 
图2  音频播放器

 

本帖赏分:0 分   回复数:0 篇     
修改   删除   引用   回复
该帖暂无回复!
吉林省明日科技有限公司提供技术支持. 
Copyright © 1999-2008 吉林省明日科技有限公司. 吉ICP备10002740
当前时区 GMT+8, 今天是 
刷新页面 - 关于我们 - 设为首页