您的位置:首页 > 编程语言

win mobile 5播放mp3音乐的方法(4)--5mbox封装类的代码

2009-06-18 17:53 405 查看

win mobile 5播放mp3音乐的方法(4)--5mbox封装类的代码

2009-06-18 17:53
354人阅读
评论(0)
收藏
举报

前几篇说到在win mobile 5上面播放mp3音频需要了解的基本知识。

在这里我再总结一下:

首先是移植libmad,mp3文件解码器这是必不可少的第一步;

然后是使用libmad把mp3文件解码成为pcm码流,也就是wav文件

(其实还是有一些区别的,wav文件是有wav头的pcm码流)。

最后就是利用pcm码流的播放api实现最终的播放目的,在这当中,

需要善于利用缓冲队列。
 
如果能够把这么多东西封装成一个方便使用的类就好了,我在开发

5mbox的过程中也是这么想的,所以就按照上一篇所讲的原理编写了

一个类专门用于封装解码线程和pcm码流播放线程的。不知道为什么,

虽然在真机上的效果已经可以让人满意了,但是在模拟器上播放mp3

的时候,总是听上去稍微有一点点一顿一顿的感觉。如果哪位大侠

从下面的代码中发现了修正这个问题的方法,还请不吝赐教!
 
使用方法如下:

(1)新建win mobile 5.0 ppc工程(我在这里创建的是WM5Mp3Demo工程),

然后把mp3core这个目录整个拷贝到系统自动创建的目录下面。
 
(2)在"Solution Explore"里面,右键单击"WM5Mp3Demo",在弹出菜单

中选择"Add"->"New filter",创建一个目录,取名叫"mp3core",然后

再用类似的方法在mp3core上面再创建目录,然后在每个目录上单击右键

选择"Add"->"Existing item...",把对应的目录下的所有源文件都选上。

这样就可以完成mp3core目录下的源文件添加到你的新建项目的操作。

如下图所示:



 
(3)可以根据需要选择debug模式或者release模式,然后选择"Project"->

"WM5Mp3Demo Properties",然后如图所示,设置附加包含路径:



 
(4)然后设置编译器不采用预编译头文件,如下图所示:



 
(5)好了,然后就是添加代码了,要使用mp3core的封装,必须加入:

#include "M5Mp3Play.h"
然后声明一个全局的变量,如:g_mp3play之类的:

// Global Variables:

HINSTANCE   g_hInst;   // current instance

HWND    g_hWndMenuBar;  // menu bar handle

CM5Mp3Play   g_mp3_play ;  // mp3 player

我用的是win32 api风格的ppc开发,如果用到mfc之类的库的朋友,也可以

不声明成全局的变量,这里只是为了清晰、简单。
然后找到可以调用的入口,比如button的OnClick处理啦,键盘的事件啦之类的

地方,加入下面的调用代码即可。我这里是用WndProc里面的键盘事件:

case WM_KEYDOWN:

// Handle any non-accelerated key commands

 switch (wParam) {

  case VK_ACTION:

  case VK_RETURN:

   {

    // 这里是定义了退出

    PostMessage(hWnd, WM_CLOSE, 0, 0);

    return 0L;

   }

  case VK_UP:

   {

    // 按上方向键停止播放

    g_mp3_play.Stop() ;

   }

   break ;

  case VK_DOWN:

   {

    // 按下方向键开始播放,注意这里用的是绝对路径

    // 需要把test.mp3拷贝到手机内存的相应位置下面才能够播放,

    // 这一点一定要注意。这里的第一个参数是mp3文件的路径,

    // 第二个参数是是否循环播放,如果是true则循环播放,播放

    // 完毕后会自动从头开始重新播放;如果是false则播放一遍后

    // 停止播放。

    g_mp3_play.Init("/Program Files/WM5Mp3Demo/test.mp3", true) ;

    g_mp3_play.Play() ;

   }

   break ;

  }

  break;
好了,至此win mobile 5.0下面播放mp3文件的方法就全部介绍完毕了。

上述整个demo的源代码可以自由下载,希望下载的朋友能够多多提出改进的意见,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 VC WIndows 播放器