BlackBerry+多媒体播放编程8-19.pdf
文本预览下载声明
BlackBerry 多媒体播放编程
作者:俞伟
1
目录
概述2
创建第一个BlackBerry 媒体播放程序2
BlackBerry 音频播放编程 4
BlackBerry 视频播放编程12
2
概述
移动多媒体包括使用移动终端播放音乐,视频,拍照,录制视频,和在线影音。BlackBerry 支持
移动多媒体,你可以通过BlackBerry Java 或BlackBerry 浏览器来创建自己的媒体应用。功能包括
播放音频,视频,SVG 数据,录制音频,视频,流媒体,以及向蓝牙设备发送媒体流。
BlackBerry Java 提供的多媒体支持包括MMAPI-JSR 135 和Plazmic Media Engine。本章主要介绍
MMAPI 在BlackBerry 平台上的应用。
创建第一个BlackBerry 媒体播放程序
BlackBerry 为媒体开发提供了MMAPI,即Player 和javax.microedition.media 包。它为媒体资源播
放,控制播放,和管理播放状态提供了一些列方法。
一个Player 有五个状态:UNREALIZED, REALIZED, PREFETCHED, STARTED, CLOSED 。设计这些状态目
的是为消耗时间和资源的操作提供更好的控制。
Player 被创建后的初始状态是UNREALIZED。在这个状态下,Player 实例不知道媒体文件的任何信
息,不能播放媒体文件。
Player.realize()方法会把Player 的状体从UNREALIZED 变为REALIZED 状态。这个方法会访问媒体文
件或媒体资源来获取必要的媒体信息为播放做准备。
Player.prefetch()方法会把Player 的状态变为PREFETCHED。在这个状态下,Player 会进一步获取媒
体资源必要信息并装载部分媒体资源为播放媒体做好准备。
Player.start()方法会把Player 的状态变为STARTED,Player 将会立即开始播放媒体资源。
Player 如果没有经过realize()和prefetch()是不可能开始播放的。start()方法会间接的呼叫
prefetch(0),也就是realize(),在媒体播放开始之前。直接呼叫start()来播放会对媒体播放造成延
迟。
当Player 播放媒体内容完毕或者Player.stop()方法被叫时,player 会从STARTED 状态变为
PREFETECHED 状态。在PREFECTED 状态的Player 可以随时再次播放或循环播放。
在除CLOSED 状态以外的任何状态都可以呼叫close()方法,player 状态变为CLOSED,这时player
释放媒体资源,不再可用。
Player.deallocate()只能在PREFETCHED,REALIZED 状态下呼叫,它使player 返回前一个状态。
3
Player 的五个状态和状态之间的转换如下图所示:
介绍了Player,它的方法和状态,下面让我们来为BlackBerry 创建第一个媒体播放程序。
1. 引入需要的类
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import java.io.IOException;
2. 通过Manager .createPlayer()方法获得Player实例
3. 呼叫Player.realize()方法来为播放做准备,应用程序获取需要的媒体信息。
4. 呼叫Player.prefetch()使BlackBerry应用程序获取必要的媒体信息,装载部分媒体内容为
播放做好准备。
5. 呼叫Player.start()开始播放。
Player p = Manager.createPlayer(/abc.wav);
/**
* 指向媒体文件的abc.wav的URL作为一个URI参数传入Man
显示全部