十一Symbian多媒体服务.PPT

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
十一Symbian多媒体服务

完成本章内容之后我们将能够: 了解多媒体框架(MMF) 使用MMF音频API 了解MMF视频概念,框架和相关API 录制剪辑 创建了实用工具之后,ConstructL()打开用于录制 的文件,这会引起观察器的MoscoState ChangeEvent() 函数被调用,并以EOpen的当前状态及一个错误码 KErrNone为参数。 void CAudio2Engine::MoscoStateChangeEvent(CBase* aObject,TInt aPreviousState,TInt aCurrentState,TInt aErrorCode) { if (aErrorCode!=KErrNone) { // 消息 iState=ENotReady; return; } 录制剪辑 if (aObject == iUtility) { switch (aCurrentState) { case CMdaAudioClipUtility::EOpen: iState=EReady; break; case CMdaAudioClipUtility::ERecording: iState=ERecording; break; case CMdaAudioClipUtility::EPlaying: iState=EPlaying; break; default:; } } 录制剪辑 else // 必须为转换器 { … } } 在该例中,MoscoStateChangeEvent()所报告的状态用于维护一个内部状态机。任何错误都会使内部状态置为ENotReady,该状态用于表示实用工具类不可用。 使用音频 图7.4 正弦波的数字取样 以PCM音频格式存储,这些取样不需要再进行任何处理,因此每个取样将占用16位或两个字节。音频数据如何以其他格式存储,依赖于应用到信号上的附加处理。比如,压缩信号的音频数据可能包含所使用的转换系数。 使用音频 4. 音频剪辑 剪辑可以看做是音频或视频的一个“包”。它有明确定义的开始和结束,并且通常将描述其格式的信息一起打包,如取样速率和编码方式。剪辑通常包含在文件或描述符中,尽管某些客户API也允许将URL看做剪辑。 5. 音频流 音频流由音频数据的连续流组成,它没有明确定义的开始和结束。音频数据流可以是大小不等的间断块。例如,从因特网上获取流的RealAudio。 播放音调 音调播放器实用工具类CMdaAudioToneUtility在mdaaudiotoneplayer.h中定义。它提供播放单独的单声道正弦波音调、用户自定义双音(Nokia6600手机不提供)、双音多频(DTMF)或音调序列的能力。在典型应用程序中,DTMF用于在打电话期间模仿电话按键,音调序列文件用于产生铃声。 希望使用音调播放器实用工具的客户,必须先从MMdaAudioToneObserver派生一个观察器类,MMdaAudioToneObserver的类定义显示如下: 播放音调 class MMdaAudioToneObserver { Public: virtual void MatoPrepareComplete(Tint aError) = 0; virtual void MatoPlayComplete(TInt aError) = 0; }; 通过调用NewL()函数创建的音调播放器实用工具,向观察器类提供一个引用作为参数。然后需要以下两个步骤来播放音调。 播放音调 (1)调用适当的“预备”函数预备待播放的音调。客户通过观察器的MatoPrepareComplete()函数获知预备工作已完成。如果预备工作成功完成,则以错误值KEnNone调用该函数,否则将报告相应的错误码,例如,当设备不支持音调回放时,错误码为KErrNotSupported。 (2)如果预备成功,客户就可以开始播放音调,或者针对该音调执行其他处理,比如设置音量。如果发生错误,则决不可以调用这些函数,因为底层子系统没有正确初始化。 通过调用观察器的MatoPlayCompl

您可能关注的文档

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档