第十九章 多媒体接口
一、主要内容
(1)、多媒体格式
(2)、多媒体架构
(3)、多媒体接口
(a)、ISound
(b)、ISoundPlayer
(c)、IMedia/MediaUtil
(d)、ICamera
(e)、IVocoder
二、多媒体格式
(1)、常见格式:MIDI/CMX/SMAF/QCP/MP3/MP4 …
(2)、同时播放几个音频文件
(a)、IMEDIA_EnableChannelShare(pMedia, TRUE); // BREW SDK 2.1 or above
(b)、SMAF/Phrase格式
(c)、IMediaMIDIOutMsg / IMediaMIDIOutQCP 使用MIDI设备同时播放几个MIDI or QCP文件
(d)、必须同一格式文件
三、多媒体架构
(1)、IMedia接口为所有BREW多媒体对象提供了一个抽象基类,开发者通过IMedia接口可以进行所有多媒体对象的操作
(2)、派生类负责特定多媒体格式的处理,分别对应着MIDI、MP3、MPEG4、ADPCM等格式的相关操作。
(3)、AEEMediaData数据结构封装了媒体数据
(a)、Source or destination
(b)、File, buffer or stream (ISource)
(4)、AEEMediaUtil_CreateMedia()函数为系统提供的一个辅助函数,自动根据输入的媒体数据判断媒体类型,创建IMedia对象。
四、IMedia接口使用
(1)、SHELL注册MIME类型;
(2)、创建IMedia对象;
(3)、注册回调函数;
(4)、播放/录音操作
(5)、处理EVT_APP_SUSPEND/EVT_APP_RESUME事件
(6)、删除IMedia对象;
五、IMedia接口概览
(1)、Media Setup
(a)、IMEDIA_SetMediaData()
(b)、IMEDIA_RegisterNotify()
(2)、Playback / Record
(a)、IMEDIA_Play()
(b)、IMEDIA_Record()
(3)、Playback / Record Controls
(a)、IMEDIA_Stop()
(b)、IMEDIA_Pause() / IMEDIA_Resume()
(c)、IMEDIA_Seek()
(4)、Media Parameters
(a)、IMEDIA_SetMediaParam()
(b)、IMEDIA_GetMediaParam()
(c)、IMEDIA_GetState()
六、IMedia状态机
七、IMedia实现
八、IMediaUtil接口
(1)、Provides media utility services
(a)、IMEDIAUTIL_CreateMedia(): Creates IMedia object based on media data, same as AEEMediaUtil_CreateMedia();
(b)、IMEDIAUTIL_EncodeMedia(): Simple API to encode new media
—Example: IMEDIAUTIL_EncodePMD() combines JPEG and QCP to encode a PMD
九、ISound功能
(1)、Beeps
(2)、FreqTone
(3)、预设铃音
(4)、震动模式
十、播放预置铃音
播放预置铃音的基本步骤
(1)、创建一个AEESoundToneData结构
(2)、设定待播放铃音
(3)、设定播放时间(毫秒)
(4)、调用ISOUND_PlayTone()函数
十一、ISound接口常用调用
ISOUND_PlayTone()
ISOUND_StopTone()
ISOUND_PlayToneList()
ISOUND_PlayFreqTone()
ISOUND_SetVolume()
ISOUND_GetVolume()
ISOUND_Set()
ISOUND_Get()
ISOUND_Vibrate()
ISOUND_StopVibrate()
十二、本章关键点
(1)、多媒体格式
(2)、多媒体架构
(3)、IMedia/IMediaUtil接口使用
(4)、ISound接口使用
十三、问题回顾
(1)、BREW支持哪些多媒体格式?
(2)、BREW支持哪些多媒体接口?
(3)、有哪几种同时播放音效的方法?
(4)、描述IMedia接口的用法
(5)、描述ISound接口的用法