读书人

JMF播放器如何播网络歌曲

发布时间: 2012-03-27 13:44:24 作者: rapoo

JMF播放器怎么播网络歌曲?
如题。

[解决办法]
途径很多的!

最简单的是
Player player = Manager.createPlayer(new URL("http://xxx.xxx.xxx/xxx.mp3"));
[解决办法]

Java code
import java.net.URL;import javax.media.*;/*播放网络媒体的程序*/public class NetMedia extends javax.media.ControllerAdapter{        private Player player = null;//播放器核心对象        public static void main(String[] args){        new NetMedia("http://www.cz.csx.cn/mp3/cc428f047aeda080.mp3");            }        public NetMedia(String address){        try{            //通过API创建Player对象,是最简单的办法,速度是最慢的.            player = Manager.createPlayer(new URL(address));            //放入控制器监听者(自己)            player.addControllerListener(this);            //开始检查数据,根据情况会自动调用复写的ControllerAdapter中的函数            player.realize();        }        catch(Exception e){            e.printStackTrace();            this.deallocate();        }    }        /**     * 释放连接     */        public void deallocate(){        if(player != null){            System.out.println ("error");            player.removeControllerListener(this);//移除控制器监听者(自己,因为继承了ControllerAdapter)            player.close();//释放资源            player = null;//一般好的程序都要释放指针        }    }                /*** 以下是复写超类ControllerAdapter实配器的函数 ***/            /**     * Player数据编码检查完毕的回调函数(一般用于通知本对象可以播放了,所以player.start()函数在这里调用)     */    public void realizeComplete(RealizeCompleteEvent e){        player.start();    }        /**     * Player正常播放完毕的回调函数(一般用于通知本对象释放资源)     */    public void endOfMedia(EndOfMediaEvent e) {this.deallocate();}        /**     * Player遇到错误后的回调函数(一般用于通知本对象释放资源)     */    public void audioDeviceUnavailable(AudioDeviceUnavailableEvent e) {this.deallocate();}    public void connectionError(ConnectionErrorEvent e) {this.deallocate();}    public void internalError(InternalErrorEvent e) {this.deallocate();}    public void dataLostError(DataLostErrorEvent e) {this.deallocate();}    public void controllerError(ControllerErrorEvent e) {this.deallocate();}} 

读书人网 >J2SE开发

热点推荐