第 8 章 |
|
Mobile Media API (MMAPI) (JSR 135) 提供了一个标准 API,用于呈现和捕获基于时间的媒体,如音频和视频。该 API 在各种设备支持的媒体格式、协议和功能等方面设计得非常灵活。有关使用 MMAPI 编程的信息,请参见以下文章:
http://developers.sun.com/techtopics/mobility/apis/articles/mmapi_overview/
http://developers.sun.com/techtopics/mobility/midp/articles/mmapioverview/
Sun JavaTM Wireless Toolkit for CLDC 模拟对自适应多速率 (Adaptive Multi-Rate, AMR) 内容 (http://www.ietf.org/rfc/rfc3267.txt) 的支持。虽然工具包无法对 AMR 内容进行解码,但实现可以在请求时返回用于 AMR 内容的播放器。
在 Windows 上,AMR 文件将被转换为常规 WAVE 文件,然后传递到 Qsound。因为 Windows 版本界面具有 3GPP 实现功能,因此您不必进行任何操作即可播放 AMR 文件。
Linux 的 AMR 支持基于 3GPP AMR-NB (AMR Narrow Band) 引用实现解码器和 SOX 音频处理器(不支持 AMR-WB (AMR Warrow Band))。
http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-530.zip
保存并编译。如果遇到问题,请尝试删除 O3(或 O2)优化标志(二进制数据大小将接近二倍)。
编译之后,您将得到名为 decoder 的二进制文件。即为 AMR-NB 解码器本身。
4. 设置环境变量 AMR_DECODER 以指向解码器的路径。
export AMR_DECODER=~/amr/decoder
运行 MobileMediaAPI 演示 Simple Player,如第 A.13 节“MobileMediaAPI”所述。从主菜单中,选择 "Simple Player",然后选择 "AMR Narrow Band [jar]"。请勿忘记打开扬声器。
您也可能会遇到一些 AMR-NB 的“克隆”问题。AMR-NB 编解码器数据似乎至少有两种文件格式:
该格式在 draft-ietf-avt-rtp-amr-10.txt 第 6.2 节中详细说明,涵盖在 Ericsson AMR 转换器工具中。(草稿为 RFC 3267 的早期形式)。这些文件由 Ericsson AMR 工具和 Nokia Series 60 电话进行处理。它们包含标头 #!AMR\n,并按大端字节存储顺序进行编码。
该格式在附录 A 的 "3GPP TS 26.101" 中详细说明。这些文件由 3GPP TS 26.104 浮点引用编解码器源包进行编码和解码。它们不包含标头并按小端字节存储顺序进行编码。
http://www.connactivity.com/~eaw/amrwork/amrconv.py
Sun JavaTM Wireless Toolkit for CLDC 附带了一个仿真器样机 MediaControlSkin,该样机用于多媒体的回放和控制。该样机包括一些按钮,按钮上带有表示播放、停止、放大音量、减弱音量以及其他命令的符号。要了解 MediaControlSkin 的功能,请使用 MobileMediaAPI 演示应用程序测试该样机。
Sun JavaTM Wireless Toolkit for CLDC 仿真器支持音频和视频捕获。通过使用仿真器运行时所在的系统的捕获功能来支持音频捕获。
有关演示如何捕获音频和视频的源代码及详细信息,请参见 MobileMediaAPI 示例应用程序。
MIDlet 有一个在 MIDP 规范中定义的生命周期。MIDlet 会因传入电话呼叫之类的事件而暂停。正常的 MIDlet 会在暂停后释放重要的设备资源并在 MIDlet 恢复后重新分配或重新启动这些资源。在 MMAPI 处理区域,在 MIDlet 暂停时停止正在呈现内容的所有 Player。
如果暂停 MIDlet 的同时没有停止其正在运行的 Player,则 Sun JavaTM Wireless Toolkit for CLDC 将在控制台上显示一条消息。您可以使用 MobileMediaAPI 演示应用程序中的暂停音频测试 MIDlet 来测试此功能。有关详细信息,请参见附录 A。
MMAPI 可用于播放铃声,如第 A.13.1 节“Simple Tones”和第 A.13.2 节“Simple Player”中所演示。有几种铃声格式比较常用。您可以下载铃声或自己创建铃声。
铃声文件可以从多个 Internet 站点下载,包括以下站点:
http://www.convertyourtone.com/rtttl.html
以下是 Nokia Composer 格式的贝多芬第九交响曲演奏:
16g1,16g1,16g1,4#d1,16f1,16f1,16f1,4d1,16g1,16g1,16g1,16#d1,
16#g1,16#g1,16#g1,16g1,16#d2,16#d2,16#d2,4c2,16g1,16g1,16g1,
16d1,16#g1,16#g1,16#g1, 16g1,16f2,16f2,16f2,4d2
a b + c b + c b + c b + C p + d a B p + c g A
p f g a g a g a g A p b f G p a e F
f f f # C # d # d # d C p f f f # c # f #f # f f +# c + # c + # c # A ff f c # f # f # f f + # d + # d + # d
C2(1/8) D2(1/16) Dis2(1/8) F2(1/16) G2(1/8)
P(1/16) Dis2(1/8) P(1/16) Fis2(1/8) P(1/16)
D2(1/8) P(1/16) F2(1/8) P(1/16) Dis2(1/8)
P(1/16) C2(1/8) D2(1/16) Dis2(1/8) F2(1/16)
G2(1/8) P(1/16) C3(1/8) P(1/16) B2(1/2) P(1/4)
C2(1/8) D2(1/16) Dis2(1/8) F2(1/16) G2(1/8) P(1/16)
Dis2(1/8) P(1/16) Fis2(1/8) P(1/16) D2(1/8) P(1/16)
F2(1/8) P(1/16) Dis2(1/8) P(1/16) C3(1/8) B2(1/16)
Ais2(1/8) A2(1/16) Gis2(1/2) G2(1/8) P(1/16) C3(1/2)
4 F2 F2 F2 C#4 D#2 D#2 D#2 C4 R2 F2 F2 F2 C#2 F#2 F#2
F#2 F2 C#+2 C#+2 C#+2 A#4 F2 F2 F2 C2 F#2 F#2 F#2 F2
444** 444** 444** 1111* 4444** 4444** 4444** 111*
0** 444** 444** 444** 1111** 4444** 4444** 4444**
444** 11** 11** 11** 6666* 444** 444** 444** 111**
4444** 4444** 4444** 444** 22** 22** 22**
444****444****444****111#*****444#****444#****444#****
111*****(JD)0000444****444****444****111#****444#****
444#****444#****444****11#****11#****11#****666#*****
444****444****444****111****444#****444#****
444#****444****22#****22#****22#****
版权所有 © 2007, Sun Microsystems, Inc. 保留所有权利