| Java媒体架构基础:Framework Basics |
| 作者:未知
文章来源:本站整理 点击数: 更新时间:2007-7-22 17:29:59 |
public SimpleAudioPlayer(URL url) throws IOException,NoPlayerException,CannotRealizeException {audioPlayer = Manager.createRealizedPlayer(url);}public SimpleAudioPlayer(File file) throws IOException,NoPlayerException,CannotRealizeException {this(file.toURL());} 如果你看完本节的代码,你可以注意到Manager类包含了创建一个Player实例的其他方法。我们会研究其中的一些,如在后面的章节中的DataSource或者MediaLocator的实例化。 Player的状态 JMF定义了大量的一个Player实例可能存在的不同状态。如下: · Prefetched · Prefetching · Realized · Realizing · Started · Unrealized 使用这些状态 因为使用媒体常常是资源非常密集的,由JMF对象揭示的许多方法都是不闭塞的,允许一系列事件监听的状态改变的异步通知。例如,一个Player在它可以启动之前,必须经过Prefetched和Realized状态。由于这些状态的改变都需要一些时间来完成,JMF媒体应用可以分配一个线程来初始化创建Player实例,然后再继续其他的操作。当Player准备就绪的时候,它会通知应用程序其状态已经改变。 在一个如同我们的这样简单的程序中,多功能性的类型并不是很重要。处于这个原因,Manager类也提供了一些创建Realized player的有用方法。调用一个createRealizedPlayer()方法来阻塞调用线程,直到player达到Realized状态。为了调用一个无阻塞的创建player的方法,我们在Manager类中使用了一个createPlayer()方法。下面的一行代码中创建了一个我们需要在例程序中使用的 Realized player:audioPlayer = Manager.createRealizedPlayer(url); 启动和停止Player 设定一个Player实例的启动或是停止就如同调用Player的一个简单的认证方法,如下所示: public void play() {audioPlayer.start();}public void stop() {audioPlayer.stop();audioPlayer.close();} 调用SimpleAudioPlayer类中的play()方法来实现调用Player实例的start()方法。调用此方法后,你能听到本地的喇叭的声音文件。同样的,stop()方法使player停止并且关闭掉Player对象。 对于读取和或者播放本地媒体文件来说,关闭Player实例释放所有资源是一个有用的方法。因为这是一个简单的例子,关闭Player是终止一个会话可接受的方法。但是在实际的应用中,你需要小心的确认在除掉Player之前必须要关闭掉。一但你已经关闭掉player,在再次播放一个媒体之前你必须要创建一个新的Player实例(等待它的上一页 [1] [2]
|
|
|
|
|
|
|
|