⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guicontroller.java

📁 手机流媒体的实现
💻 JAVA
字号:
/*///////////////////////////////////////////////////////////////////////////////
//文档生成日期:2006.3.28
//
//(1)概述:
//类名称:GUIController
//类说明:
//     MVC中的控制器部分,负责界面事件的处理,以及决定该显示哪一个Form。

//所在子系统:StreamingDemo
//
//系统总描述:
	用两个Player交替播放从网络上下载的流媒体。

	上面的代码可以从
	http://www.cnblogs.com/Files/zhengyun_ustc/StreamingDemo.rar
	下载;
	
	安装的jar包从
	http://www.cnblogs.com/Files/zhengyun_ustc/StreamingDemo-deployed.rar下载。
	
	本文属于讨论稿,提供的仅仅是建议和测试意见。
	本文还可以从
	http://www.cnblogs.com/zhengyun_ustc/archive/2006/3/28/StreamingDemo.html 得到最新稿。


//(2)历史记录:
//创建人: 郑昀(2006.3.28)
//修改历史:

 
//联系我: Google Talk >> zhengyun@gmail.com
//Blogs:    http://blog.csdn.net/zhengyun_ustc/以及http://www.cnblogs.com/zhengyun_ustc

//(3)版权声明:
//我这个版本j2me客户端代码仅仅允许您借鉴,但不得用于商业用途,除非得到郑昀本人的授权。本人保留所有权利。

////////////////////////////////////////////////////////////////////*/
package com.ultrapower.control;

import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Displayable;
import javax.microedition.media.MediaException;

import com.ultrapower.midlet.StreamingDemo;
import com.ultrapower.view.FormPlayer;

/**********************************************************
//	 GUIController
//
//	 Class Description:
//	 	MVC中的控制器部分,负责界面事件的处理,以及决定该显示哪一个Form。
//
//	 Author:
//	      zhengyun@ultrapower
//
**********************************************************/
public class GUIController {
	public StreamingDemo			m_Midlet;
	
	private FormPlayer 			m_playerForm;
	
	public GUIController(StreamingDemo midletMain){
		m_Midlet = midletMain;
	}
	
	/**********************************************************
	//	 GUIController::init()
	//
	//	 Description:
	//	  初始化控制器:
	 * 		初始化各个Form界面
	//	 Parameters:
	//	 Return Values:
	//	 Author:
	//	      zhengyun@ultrapower
	//
	**********************************************************/
	public void init(){
		
		/*
		 * 初始化界面,并显示它
		 */
		if(m_playerForm == null)
		{
			m_playerForm = new FormPlayer(
							"Streaming方式播放音乐",
							this);
		}
		setCurrent(m_playerForm);
	}

	
	/**********************************************************
	//	 GUIController::setCurrent()
	//
	//	 Description:
	//	  设置当前显示的界面
	//
	//	 Parameters:
	//	 Return Values:
	//	 Author:
	//	      zhengyun@ultrapower
	//
	**********************************************************/
	public void setCurrent(Displayable disp){
		m_Midlet.setCurrent(disp);
    }
	public void setCurrent(Alert alert, Displayable disp){
		m_Midlet.setCurrent(alert, disp);
    }
	
	
	/**********************************************************
	//	 GUIController::EventID
	//
	//	 Description:
	//	  定义事件ID内部类
	//
	//	 Parameters:
	//	 Return Values:
	//	 Author:
	//	      zhengyun@ultrapower
	//
	**********************************************************/
    public static class EventID{
        private EventID(){
        }
        
        public static final byte EVENT_EXIT			    = 0;//退出
		public static final byte EVENT_KEYPRESSED	    = 1;//用户按键了
		public static final byte EVENT_FORM_ERROR	    = 2;//出错了
		
		// Main player 下载完毕
		public static final byte EVENT_MAIN_DownloadCompleted	    = 3;
		
		// Secondary player 开始播放了
		public static final byte EVENT_SECONDARY_BeginToPlay  = 4;
		
		// Main player 开始播放了
		public static final byte EVENT_Main_BeginToPlay	    = 5;
    }
	
	
	/**********************************************************
	//	 GUIController::handleEvent
	//
	//	 Description:
	//	  对传入的事件进行处理
	//
	//	 Parameters:
	//	 Return Values:
	//   Remark:
	 * 
	//	 Author:
	//	      zhengyun@ultrapower
	//
	**********************************************************/
    public void handleEvent( int eventID,Object[] args){   
		System.out.println("Controller::handleEvent eventID>>" + eventID);
		
    	switch (eventID)
        {   
    	    case EventID.EVENT_EXIT:
    	    {
				try
				{
					// 销毁音乐资源
					m_playerForm.destroyMusic();
					System.gc();     // 通知进行垃圾收集
					Thread.yield();  // 本线程暂停一下,使得GC可以马上获得机会运行
					m_Midlet.exit(false);
				}
				catch(Exception exc)
		        {
					System.out.println("/**handleEvent发生异常!");
					exc.printStackTrace();
		        }
    	    	break;
    	    }
    	    case EventID.EVENT_MAIN_DownloadCompleted:
    	    case EventID.EVENT_Main_BeginToPlay:
			{
				System.out.println("/*So begin to download secondary resource!");
				// 这时候可以下载Secondary的音乐了,并且进行Secondary Player的预运算
				m_playerForm.m_threadSecondary.notifyGetMusic();
				m_playerForm.m_threadSecondary.notifyPrefetch();
				break;
			}
			case EventID.EVENT_SECONDARY_BeginToPlay:
			{
				System.out.println("/**So begin to download main resource!");
				// 这时候可以下载Main的音乐了,并且进行Main Player的预运算
				m_playerForm.m_threadMain.notifyGetMusic();
				m_playerForm.m_threadMain.notifyPrefetch();
				break;
			}
			
         	default:
         	    break;
        }
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -