WEB开发网
开发学院手机开发Symbian 开发 Symbian中音频API的运用 阅读

Symbian中音频API的运用

 2010-07-22 01:41:00 来源:WEB开发网   
核心提示:MMdaAudioOutputStreamCallback::MaoscPlayComplete(TInt aErr)通知方法来通知播放结束 */}}// 播放结束了void CMyObserver::MaoscPlayComplete(TInt aError){if(aError != KErrNone){iOutp
MMdaAudioOutputStreamCallback::MaoscPlayComplete(TInt aErr)通知方法来通知播放结束 */

}

}

// 播放结束了

void CMyObserver::MaoscPlayComplete(TInt aError)

{

if(aError != KErrNone)

{

iOutputStream->Stop();

}

}

*/

四. CMdaAudioRecorderUtility

就如同这个类的字面意思一样,这个类可以提供录音功能,但是它也提供了播放功能。如果我们只需要播放,那么使用之前介绍的CMdaAudioPlayerUtility类要节约资源一点。

录音可以发生于文件,描述符。(虽然提供了OpenUrlL()方法,但是和CMdaAudioPlayerUtility一样,OpenUrlL()方法是不被支持的)

录音基本分为3个步骤:

1.打开数据存储的句柄 2.设定参数 3.录音

其中 打开数据存储的句柄 和 录音 都是异步操作的,MMdaObjectStateChangeObserver::MoscoStateChangeEvent(CBase *aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode)方法通知应用程序每一个操作的事件。

CMdaAudioRecorderUtility * iSound = CMdaAudioRecorderUtility::NewL(aMyObserver);

...

// recording message settings

TMdaPcmWavCodec iMessageCodec;

iMessageCodec.iBits = TMdaPcmWavCodec::E16BitPcm;

...

TMdaAudioDataSettings iMessageSettings;

iMessageSettings.iCaps = TMdaAudioDataSettings::ESampleRateFixed | TMdaAudioDataSettings::ESampleRate8000Hz | TMdaAudioDataSettings::EChannelsMono;

iMessageSettings.iSampleRate = 8000;

iMessageSettings.iChannels = 1;

...

TMdaFileClipLocation iMessageLocation;

iMessageLocation.iName = _L("e:\data\yourmes.wav");

...

TMdaWavClipFormat iMessageFormat;

...

iSound->OpenL(&iMessageLocation, &iMessageFormat, &iMessageCodec, &iMessageSettings); /* 这是个异步方法,当打开资源的操作完成后会调用 MMdaObjectStateChangeObserver::MoscoStateChangeEvent(CBase *aObject, TInt

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Symbian 音频 API

编辑录入:coldstar [复制链接] [打 印]
赞助商链接