BlackBerry 应用程序开发者指南 第一卷:基础–第5章 支持的媒体内容(Media Content)
5
第5章 支持的媒体内容(Media Content)
PME内容
播放媒体内容
监听媒体内容事件
创建定制的连接
PME内容
BlackBerry设备支持PME格式的富(rich)媒体内容。
开发者可以使用Plazmic Content Developer’s Kit for BlackBerry来创建PME内容。这个工具,以及附带的文档可以在Plazmic网站(www.plazmic.com)找到。
Media Engine API(在net.rim.plazmic.mediaengine 和 net.rim.plazmic.mediaengine.io包中)允许应用程序获取和播放存储在BlackBerry设备上或网络上的PME内容. Media Engine API支持媒体格式application/x-vnd.rim.pme. Web服务器必须为application/x-vnd.rim.pme设置MIME类型。
PME API概览
下面3个主要类(在net.rim.plazmic.mediaengine包里)提供了加载和播放PME媒体内容的能力。
类
描述
MediaManager
提供从本地或网络上加载媒体内容的方法。
MediaPlayer
提供播放PME媒体的方法。
MediaException
为获取或播放媒体的错误提供异常代码。
媒体加载
Media Engine API允许应用程序使用下面4种协议种的一种加载媒体内容:
协议
描述
http://
http协议从一个使用HTTP连接网络Web服务器下载内容。这个协议需要一个带有BlackBerry MDS服务的BES(BlackBerry Enterprise Server,BlackBerry企业服务器).
https://
https协议从一个使用HTTPS连接网络Web服务器下载内容。这个协议需要一个带有BlackBerry MDS服务的BES(BlackBerry Enterprise Server,BlackBerry企业服务器).
Jar:///<pme_file>
jar协议加载存储在本地BlackBerry设备上的jar文件。
jar:///sample.pme
注意:开始的斜线(/)是需要的。
在BlackBerry IDE中,.jar文件必须加入到调用应用程序或应用程序依赖的库的相同项目中。
cod://<module><pme_file>
cod协议加载存储在本地BlackBerry设备上的cod文件。
cod://mediasample/sample.pme
为使用其他协议,实现定制的Connector。为获得更多信息,参看91页的“创建定制的Connector”.
播放状态(Playback states)
为了获取MediaPlayer的当前状态,调用MediaPlayer.getState().
状态
描述
UNREALIZED
MediaPlayer未准备播放媒体。为了转到REALIZED状态,调用MediaPlayer.setMedia().
REALIZED
MediaPlayer准备好播放媒体。为了开始播放,并转到STARTED状态,调用MediaPlayer.start().
STARTED
MediaPlayer正在播放媒体。为了停止播放和返回到REALIZED状态,调用MediaPlayer.stop().
异常
MediaEngine和MediaManager类的方法抛出一个MediaException异常,这个异常包含了一个标准的HTTP响应代码或者下面异常代码之一。为了获取与异常相联系的错误代码,调用MediaException.getCode().
异常代码
描述
INVALID_HEADER
媒体格式无效。
REQUEST_TIMED_OUT
请求超时。
INTERRUPTED_DOWNLOAD
应用程序调用MediaManager.cancel()来取消下载。
UNSUPPORTED_TYPE
媒体类型(MIME类型)不支持。
UPGRADE_PALYER
媒体引擎的版本和请求的内容不兼容。
UPGRADE_MEDIA
媒体引擎的版本不在支持请求的内容。
CHECKSUM_MISMACTH
求和校验失败,因此媒体内容不能读取。
OUT_OF_BOUNDS
数组出界,或应用程序试图访问一个文件结尾后的输入流。
事件
MediaListener接口允许应用程序接受或响应下面的事件:
事件
描述
MEDIA_REQUEST
媒体已请求加载,当animation自动请求新内容或当用户点击媒体内容的超连接时,事件发生。
MEDIA_REALIZED
媒体已经创建播放了。当MediaManager.createMediaManager()已经调用时发生。
MEDIA_COMPLETE
媒体已经加载,并成功播放。
MEDIA_TO
媒体正在加载。
为获得更多信息,参考85页的“监听Media Engine事件”.
播放媒体内容
为了获取BlackBerry设备或网络上的PME内容,使用MediaManager的方法。为了播放已经下载到BlackBerry设备的PME内容,使用MediaPlayer类的方法。
下载内容
为下载PME内容,创建一个MediaManager对象,然后调用MediaManager.createMedia().
try
{
Object media = manager.createMedia("http://webserver/sample.pme");
}
catch (IOException ioe)
{
System.out.println("Error: requested content was not downloaded.");
}
catch (MediaException me)
{
System.out.println("Error: “ + me.getCode());
}
注:下面缺省的协议会被支持:http://,https://.jar://,和cod://.为获得更多信息,参看81页的“媒体加载”。
第一次调用MediaManager.createMedia(),URL必须是绝对路径,除非首先调用MediaManager.setProperty(“URI_BASE”,<base_url>)设置基URL路径。当你之后调用createMedia()时,前面的URL作为基URL。
播放PME内容
为播放设置PME对象
调用MedialPlayer.setMedia().
MediaPlayer player [...]
Confach发表于 April 22, 2008 9:57 pm | 留言 |文档
