亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? threadplaymain.java

?? 手機流媒體的實現
?? JAVA
字號:
/*///////////////////////////////////////////////////////////////////////////////
//文檔生成日期:2006.3.28
//
//(1)概述:
//類名稱:ThreadPlayMain
//類說明:
// 發送httpConnection請求給我的服務器網頁,這個網頁會告訴我他看到的IP地址是什么

    
//所在子系統: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.model;

import java.io.InputStream;

import javax.microedition.media.MediaException;

import com.ultrapower.common.CommandResources;
import com.ultrapower.control.GUIController;
import com.ultrapower.view.FormPlayer;

/**********************************************************
//ThreadPlayMain
//
//Class Description:
//	
//
//Author:
// zhengyun@ultrapower 2006.3.28
//
**********************************************************/
public class ThreadPlayMain
	implements Runnable {
	
	// 利用這個標志控制何時退出
	private boolean 		m_bRunAnyway;
	// 依靠這個標志判斷是否需要去獲取遠程音樂
	public boolean m_bGetMusic = false;
	// 依靠這個標志判斷是否需要去預加載音樂資源
	private boolean 		m_bPrefetchIt = false;
	// 依靠這個標志判斷是否需要去播放音樂資源
	private boolean 		m_bPlayIt = false;
	private GUIController 	m_controller;
	private FormPlayer     m_form;
	
	private int m_nSequenceMIN;
	private int m_nSequenceMAX;
	
	// 代表當前的播放器正在播放音樂,不允許當前線程再作其他的操作了
	private boolean m_bPlaying = false;
	// 代表播放器的數組序列號,0為第一個播放器
	private int m_Sequence;
	// 紀錄當前正在下載哪一個音樂資源序號
	private int m_nCurrentMusicIndex;
	// 這是從網絡上獲取音樂數據的流
	private InputStream    m_isInputMusic;
			
	/*
	 * MainOrSecondary指的是本線程代表哪一個播放器;共有兩個播放器,一個Main,一個Secondary;
	 * 前者用0表示,后者是1;
	 */
	public ThreadPlayMain(GUIController control, FormPlayer form,
			int MainOrSecondary,
			int SequenceMIN,
			int SequenceMAX)
    {
		System.out.println(MainOrSecondary +
				">>>Enter ThreadPlayMain Constructor!");
		m_controller = control;
		m_form = form;
		m_bRunAnyway = true;
		
		m_Sequence = MainOrSecondary;
		m_nSequenceMIN = SequenceMIN;
		m_nSequenceMAX = SequenceMAX;
		m_nCurrentMusicIndex = m_nSequenceMIN;
    }
	
	/*
	 * 允許外界設置當前是否在播放
	 */
	public void setPlaying(boolean bPlaying)
	{
		m_bPlaying = bPlaying;
	}
	
	/*
	 * 通知當前播放器停止播放音樂
	 */
	public synchronized void notifyStop() throws MediaException
	{
		m_bPlayIt = false;
		m_bPrefetchIt = false;
		// 停止音樂播放
		Audio.stopSound(m_Sequence);
	}
	
	/*
	 * 通知下載音樂片段
	 */
	public synchronized void notifyGetMusic()
	{
		m_bGetMusic = true;
	}
	
	/*
	 * 通知線程退出
	 */
	public synchronized void notifyCloseThread()
	{
		m_bPlayIt = false;
		m_bPrefetchIt = false;
		m_bRunAnyway = false;
	}
	
	/*
	 * 當前的播放器準備數據
	 */
	public synchronized void notifyPrefetch()
	{
		m_bPrefetchIt = true;
	}
	
	/*
	 * 當前的播放器應該數據已經準備好了,那么就播放他
	 */
	public synchronized void notifyPlay()
	{
		m_bPlayIt = true;
	}
	
	public final void run()
    {
        /* Use networking if necessary */
        long lngStart;
        long lngTimeTaken;
		
		try
        {        
			while(m_bRunAnyway)
			{
				if(m_bGetMusic && !m_bPlaying)
				{
					System.out.println(m_Sequence +
							">>>ready to get remote music.m_nCurrentMusicIndex="
							+ m_nCurrentMusicIndex);
					m_isInputMusic = 
						CommandResources.getMusicResource(m_nCurrentMusicIndex);
					m_nCurrentMusicIndex =
						(m_nCurrentMusicIndex<m_nSequenceMAX)?
								(m_nCurrentMusicIndex+2):m_nSequenceMAX; 
								// 下載過了就遞增2
					
					// 下載完畢就不再下載了,等待下次通知
					m_bGetMusic = false;
					System.out.println(m_Sequence +
							">>>download completed!");
					if(m_Sequence == 0)
					{
						m_controller.handleEvent(GUIController.EventID.EVENT_MAIN_DownloadCompleted, 
								null);
					}
				}
				
	            if( m_bPrefetchIt && !m_bPlaying) 
				{
					System.out.println(m_Sequence +
							">>>Start prefetch!");
					String strError = "";
					boolean bHasException = false;
					
					try
					{
						Audio.prefetchSound(m_form,
								m_isInputMusic,
								m_Sequence);
					}
					catch(Exception exc)
					{
						bHasException = true;
						exc.printStackTrace();
						strError = 
							"Exception:"
								+ exc.getMessage() +
								"/" + exc.getClass();
					}
					
					if(bHasException == true)
					{
						////////////////////////////////////////////
						// 告訴控制器出錯了
						Object[] argvErrors = {strError};
						m_controller.handleEvent(GUIController.EventID.EVENT_FORM_ERROR, 
								argvErrors);
						////////////////////////////////////////////
					}
									
					m_bPrefetchIt = false;
				}

	            if( m_bPlayIt && !m_bPlaying) 
				{
					System.out.println(m_Sequence +
							">>>Start play!");
					String strError = "";
					boolean bHasException = false;
					
					try
					{
						m_bPlaying = true;
						Audio.playSound(m_Sequence);
					}
					catch(Exception exc)
					{
						bHasException = true;
						exc.printStackTrace();
						strError = 
							"Exception:"
								+ exc.getMessage() +
								"/" + exc.getClass();
					}
					
					if(bHasException == true)
					{
						////////////////////////////////////////////
						// 告訴控制器出錯了
						Object[] argvErrors = {strError};
						m_controller.handleEvent(GUIController.EventID.EVENT_FORM_ERROR, 
								argvErrors);
						////////////////////////////////////////////
					}
									
					m_bPlayIt = false;
				}
				
				lngStart = System.currentTimeMillis();
                lngTimeTaken = System.currentTimeMillis() - lngStart;
                if(lngTimeTaken < 100)
                    Thread.sleep(75 - lngTimeTaken);
	        
	        }
        }
		catch(Exception exc)
        {
			System.out.println(m_Sequence +
					">>>Eception in downloading!");
			m_bRunAnyway = false;
			exc.printStackTrace();
        }
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人中文字幕电影| 在线不卡一区二区| 奇米综合一区二区三区精品视频 | 丝袜诱惑制服诱惑色一区在线观看| 国产日产精品一区| 久久婷婷色综合| 国产亚洲人成网站| 久久精品亚洲精品国产欧美kt∨| 精品国产91久久久久久久妲己| 欧美成人性战久久| 欧美成人vr18sexvr| 日韩精品一区二区在线观看| 日韩一区二区电影| 亚洲精品一区在线观看| 久久久一区二区三区| 国产一区中文字幕| 毛片基地黄久久久久久天堂| 国产性天天综合网| 国产精品视频第一区| 综合久久久久久久| 亚洲一区二区三区四区五区黄| 亚洲一区二区三区中文字幕在线| 亚洲蜜臀av乱码久久精品蜜桃| 国产日产亚洲精品系列| 亚洲欧美国产毛片在线| 午夜精品爽啪视频| 国产精品一品二品| 91麻豆.com| 91精品在线免费| 国产亚洲精品免费| 一区二区高清视频在线观看| 日本欧美一区二区在线观看| 国产成人精品亚洲午夜麻豆| 日本道在线观看一区二区| 欧美高清一级片在线| 中文字幕+乱码+中文字幕一区| 一区二区三区欧美日韩| 狠狠色丁香九九婷婷综合五月| 久久99国产乱子伦精品免费| 色婷婷精品久久二区二区蜜臀av| 日韩一级成人av| 一区二区三区在线免费视频 | 精品成人a区在线观看| 亚洲欧洲在线观看av| 热久久免费视频| 色婷婷av一区二区三区大白胸| 精品国产伦一区二区三区免费| 亚洲综合小说图片| 国产精品一区二区在线看| 色久综合一二码| 福利一区在线观看| 日本中文字幕一区| 亚洲欧美一区二区三区久本道91 | 国产成人超碰人人澡人人澡| 欧美午夜不卡视频| 国产日韩欧美综合在线| 麻豆久久久久久久| 成人18视频日本| 欧美α欧美αv大片| 亚洲欧美激情插 | 欧美一级夜夜爽| 一区二区三区四区在线免费观看| 粉嫩aⅴ一区二区三区四区五区| 欧美日韩精品三区| 亚洲男人的天堂在线观看| 国产一区欧美二区| 日韩av成人高清| 中文字幕不卡一区| 午夜成人在线视频| 五月婷婷欧美视频| 在线观看国产精品网站| 中文字幕一区二区三区视频| 国精产品一区一区三区mba桃花| 欧美电影一区二区| 日韩av二区在线播放| 日韩午夜激情视频| 久久99精品视频| 日韩免费性生活视频播放| 日本亚洲视频在线| 日韩小视频在线观看专区| 蜜臀国产一区二区三区在线播放 | 国产成人av自拍| 国产性做久久久久久| 一区二区三区免费网站| 91高清视频在线| 亚洲私人黄色宅男| www.亚洲在线| 亚洲日穴在线视频| 一本久久综合亚洲鲁鲁五月天| 亚洲免费在线电影| 欧美三区在线视频| 美女一区二区三区| 欧美国产精品中文字幕| av亚洲精华国产精华精华| 亚洲欧美综合网| 色综合久久久久网| 日韩电影一二三区| 精品久久久久一区| 东方aⅴ免费观看久久av| 中文字幕乱码一区二区免费| 99re66热这里只有精品3直播 | 午夜精品国产更新| 欧美一卡二卡在线| 成人一区二区三区中文字幕| 国产精品传媒视频| 欧美精品亚洲一区二区在线播放| 美女视频黄频大全不卡视频在线播放 | 欧美一区二区三区日韩视频| 国产乱码精品一区二区三区av| 国产精品国产成人国产三级 | 香港成人在线视频| 久久一二三国产| 色婷婷激情久久| 九色综合国产一区二区三区| 欧美国产日韩在线观看| 欧美日韩亚洲国产综合| 韩国午夜理伦三级不卡影院| 一区二区在线观看av| 日韩一区二区麻豆国产| 91丨porny丨中文| 久久99精品国产麻豆婷婷洗澡| 一区二区三区精品| 国产人伦精品一区二区| 欧美精品123区| 91色综合久久久久婷婷| 国产原创一区二区| 一区二区三区中文免费| 欧美极品aⅴ影院| 欧美一区二区三区精品| 最新国产の精品合集bt伙计| 日韩美女一区二区三区四区| 国产精品自拍一区| 亚洲一区二区综合| 国产成人自拍网| 免费观看一级特黄欧美大片| 国产精品欧美综合在线| 亚洲精品一区二区三区99| 欧美三级午夜理伦三级中视频| 成人app在线| 国产iv一区二区三区| 国产精品888| 国产麻豆视频一区二区| 免费观看成人av| 一区二区三区在线观看国产| 国产精品国产自产拍在线| 国产亚洲欧洲997久久综合 | 日韩欧美视频一区| 欧美电影在线免费观看| 欧美日韩一区国产| 色域天天综合网| 色av综合在线| 色婷婷综合五月| 色香蕉久久蜜桃| 欧美老女人第四色| 日韩高清不卡一区二区| 亚洲精品水蜜桃| 国产精品毛片无遮挡高清| 久久亚洲私人国产精品va媚药| 日韩情涩欧美日韩视频| 日韩欧美国产综合| 日韩欧美电影在线| 欧美成人a视频| 久久久国产综合精品女国产盗摄| 欧美精品一区二区在线播放| 久久久久久久网| 日本一二三不卡| 亚洲精品国久久99热| 亚洲大片一区二区三区| 国产一区二区精品久久| 激情深爱一区二区| 国产69精品久久久久777| 成人免费av网站| 在线视频你懂得一区| 欧美久久久久久蜜桃| 精品少妇一区二区三区视频免付费| wwwwxxxxx欧美| 亚洲老妇xxxxxx| 日韩电影免费一区| 丰满放荡岳乱妇91ww| 欧洲国产伦久久久久久久| 欧美一区二区网站| 精品久久国产老人久久综合| 国产精品看片你懂得| 亚洲成人资源网| 国产精品自在在线| 欧美日韩午夜影院| 国产亚洲成年网址在线观看| 亚洲男女毛片无遮挡| 美女免费视频一区二区| 97se亚洲国产综合自在线观| 欧美一区二区网站| 亚洲欧美电影院| 国内精品国产成人国产三级粉色| 一本色道**综合亚洲精品蜜桃冫| 欧美成va人片在线观看| 亚洲免费观看高清完整版在线观看熊| 免费高清不卡av| 在线观看视频一区| 日韩亚洲欧美一区二区三区| 亚洲免费观看高清完整版在线|