📄 guicontroller.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 + -