欢迎来到天天文库
浏览记录
ID:13283428
大小:59.00 KB
页数:5页
时间:2018-07-21
《学习symbian第八课》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学习Symbian第八课今天我们来完成一个小程序,让程序能够播放Wav音乐,使我们的程序热闹些。先看一下程序运行效果(这是有音乐的声音正在播放呢)首先准备一段音乐,做成Wav格式的文件,你可以从网上下载,当然也可以自己录制。在计算机中用酷狗或者那啥的播放音乐,然后打开Window系统自带的录音程序进行录制音乐,然后保存到手机模拟器的C盘文件夹C:Symbian8.0aS60_2nd_FP2_SCepoc32winscRing.wav备用。为什么要用Wav文件呢?因为Wav是没有经过压缩的音频文件,播放这样的文件是比较容易实现的,也差不多是最基本的音频
2、处理。播放原理模拟器中带有播放音乐的API,我们只要调用这些函数就能播放音乐了。要使用这些函数需要导入头文件,添加链接库:#include#include添加mediaclientaudio.lib要使用到MMdaAudioPlayerCallback类,这也需要在类定义中添加的。我们来看一下模拟器是如何实现声音的播放的:首先,程序从CMdaAudioPlayerUtility::NewFilePlayerL(wavFile,*this);入口,创建一个Wav文件播放的实例。创
3、建完成后,程序自动调用MapcInitComplete(TIntaError,constTTimeIntervalMicroSeconds&/*aDuration*/)函数进行播放。当音乐播放完毕时,程序会自动调用MapcPlayComplete(TInt/*aError*/)函数来关闭并消除播放实例。从这样看,我们只要完成第一个步骤就可以了,后面的两个步骤是程序自动完成的。实例制作我们新建一个S60EIKONControlbasedapplication(HelloWord)模版的程序文件,文件名Sound把准备好的Wav音乐文件拷贝到模拟器C盘。编写Conta
4、iner类的定义头文件和实现文件。添加链接库。编译测试程序,就能在程序中播放音乐了。程序代码:SoundContainer.h红色部分为需要修改或添加的代码,黑色部分是VS自动生成的部分#ifndefSOUNDCONTAINER_H#defineSOUNDCONTAINER_H#include#include#includeclassCEikLabel;//forexamplelabelsclassCSoundContainer:publicCCoeCo
5、ntrol,publicMMdaAudioPlayerCallback{public:virtualvoidMapcInitComplete(TIntaError,constTTimeIntervalMicroSeconds&aDuration);virtualvoidMapcPlayComplete(TIntaError);voidConstructL(constTRect&aRect);~CSoundContainer();public:private:voidPlayWavL();voidStop();voidSizeChanged();TIntCountC
6、omponentControls()const;CCoeControl*ComponentControl(TIntaIndex)const;voidDraw(constTRect&aRect)const;private://dataCEikLabel*iLabel;//examplelabelCMdaAudioPlayerUtility*iPlayerFile;};#endif程序代码:SoundContainer.cpp#include"SoundContainer.h"#include//forexamplelabelcontrol_L
7、IT(KToPlayFileWav,"c:\Ring2.wav");constTIntKToneVolumeDenominator=2;voidCSoundContainer::ConstructL(constTRect&aRect){CreateWindowL();iLabel=new(ELeave)CEikLabel;iLabel->SetContainerWindowL(*this);iLabel->SetTextL(_L("PlayWav"));SetRect(aRect);ActivateL();PlayWavL();}CSoundContainer:
8、:~CSo
此文档下载收益归作者所有