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

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

?? videoplayer.as

?? flv 播放器代碼
?? AS
?? 第 1 頁 / 共 2 頁
字號:
/**
* ...
* @author Bogdan Nitica - bnitica@gmail.com
* @version 1.6
*/
import mx.transitions.easing.Elastic;
import mx.transitions.easing.None;
import mx.transitions.easing.Regular;
import mx.transitions.Tween;
import mx.utils.Delegate;
import NetConnection;
import NetStream;
import asclasses.Share;

class asclasses.VideoPlayer extends MovieClip {
	//-------------------------- Settings ----------------------------------<
	private var flv:String;
	private var previewImage:String;
	private var stafImage:String;
	private var autoResize:Boolean;
	private var autoPlay:Boolean;
	private var loop:Boolean;
	private var volume:Number;
	private var playerWidth:Number;
	private var playerHeight:Number;
	private var controlsPadding:Number;
	private var aspectRatio:String;
	private var keepAspectRatio:Boolean;
	private var showPreviewImage:Boolean;
	private var showFullScreenButton:Boolean;
	private var showShare:Boolean;
	private var showMiddlePlayButton:Boolean;
	private var watermarkPath:String;
	private var watermarkLink:String;
	private var showWatermark:Boolean;
	private var spaceKeyListener:Boolean;
	private var clickListener:Boolean;
	//----------------------------------------------------------------------<
	
	private static var mInstance:VideoPlayer;
	
	//----------------- VideoDisplay & MovieClips -------------------------------------<
	private var videoDisplay:Object;
	private var displayMC:MovieClip;
	private var controlsMC:MovieClip;
	private var shareDisplayMC:MovieClip;
	private var playPauseMC:MovieClip;
	private var stopMC:MovieClip;
	private var timelineMC:MovieClip;
	private var timesMC:MovieClip;
	private var fullScreenMC:MovieClip;
	private var shareMC:MovieClip;
	private var shareBtnMC:MovieClip;
	private var volumeMC:MovieClip;
	private var controlsBckMC:MovieClip;
	private var watermarkMC:MovieClip;
	private var clickableAreaMC:MovieClip;
	private var preloaderMC:MovieClip;
	private var middlePlayBtn:MovieClip;
	private var previewImageMC:MovieClip;
	//---------------------------------------------------------------------------------<
	
	//
	private var settingsXML:XML;
	private var connection_nc:NetConnection;
	private var stream_ns:NetStream;
	private var bytesLoadedInterval:Number;
	private var progressPosInterval:Number;
	private var playerPage:String;
	private var playerPath:String;
	private var scrubPosInterval:Number;
	private var volumeInterval:Number;
	private var totalTime:Number;
	private var flvSnd:Sound;
	private var mWidth:Number;
	private var mHeight:Number;
	private var flvWidth:Number;
	private var flvHeight:Number;
	private var wasPlaying:Boolean;
	private var youtubeData:MovieClip;
	private var metaDataLoaded:Boolean = false;
	private var tween1:Tween;
	private var tween2:Tween;
	private var tween3:Tween;
	//
	
	public static function getInstance():VideoPlayer {
		if (mInstance == undefined) {
			mInstance = new VideoPlayer();
		}
		return mInstance;
	}
	
	private function VideoPlayer() {
		mInstance = this;
		
		if (_root.htmlPage == undefined) {
			_root.htmlPage = "index.html";
		}
		var currURL:String = _root._url;
		playerPath = currURL.substring(0, currURL.lastIndexOf("/") + 1);
		playerPage = playerPath + _root.htmlPage;
		
		this.tabChildren = false;
		
		this.controlsMC._visible = false;
		this.middlePlayBtn._width = 0;
		this.middlePlayBtn._height = 0;
		
		//BEGIN: Load the settings from xml file
		settingsXML = new XML();
		settingsXML.ignoreWhite = true;
		settingsXML.onLoad = Delegate.create(this, settingsLoaded);
		if (_root.settingsFile == undefined) {
			_root.settingsFile = "settings.xml";
		}
		settingsXML.load(playerPath + _root.settingsFile);
		//END
	}
	
	private function settingsLoaded():Void {
		//BEGIN: Set the settings variables
		if (settingsXML.firstChild.attributes.flv.toString().indexOf("http:") != -1) {
			flv = settingsXML.firstChild.attributes.flv.toString();
		}else {
			flv = playerPath + settingsXML.firstChild.attributes.flv.toString();
		}
		
		if (settingsXML.firstChild.attributes.previewImage.toString().indexOf("http:") != -1) {
			previewImage = settingsXML.firstChild.attributes.previewImage.toString();
		}else {
			previewImage = playerPath + settingsXML.firstChild.attributes.previewImage.toString();
		}
		
		if (settingsXML.firstChild.attributes.stafImage.toString().indexOf("http:") != -1) {
			stafImage = settingsXML.firstChild.attributes.stafImage.toString();
		}else {
			stafImage = playerPath + settingsXML.firstChild.attributes.stafImage.toString();
		}
		
		autoResize = settingsXML.firstChild.attributes.autoResize.toString() == "true" ? true : false;
		autoPlay = settingsXML.firstChild.attributes.autoPlay.toString() == "true" ? true : false;
		loop = settingsXML.firstChild.attributes.loop.toString() == "true" ? true : false;
		volume = Number(settingsXML.firstChild.attributes.volume.toString());
		playerWidth = Number(settingsXML.firstChild.attributes.playerWidth.toString());
		playerHeight = Number(settingsXML.firstChild.attributes.playerHeight.toString());
		controlsPadding = Number(settingsXML.firstChild.attributes.controlsPadding.toString());
		aspectRatio = settingsXML.firstChild.attributes.aspectRatio.toString();
		keepAspectRatio = settingsXML.firstChild.attributes.keepAspectRatio.toString() == "true" ? true : false;
		showPreviewImage = settingsXML.firstChild.attributes.showPreviewImage.toString() == "true" ? true : false;
		showFullScreenButton = settingsXML.firstChild.attributes.showFullScreenButton.toString() == "true" ? true : false;
		showShare = settingsXML.firstChild.attributes.showShare.toString() == "true" ? true : false;
		showMiddlePlayButton = settingsXML.firstChild.attributes.showMiddlePlayButton.toString() == "true" ? true : false;
		spaceKeyListener = settingsXML.firstChild.attributes.spaceKeyListener.toString() == "true" ? true : false;
		clickListener = settingsXML.firstChild.attributes.clickListener.toString() == "true" ? true : false;
		
		if (settingsXML.firstChild.attributes.watermarkPath.toString().indexOf("http:") != -1) {
			watermarkPath = settingsXML.firstChild.attributes.watermarkPath.toString();
		}else {
			watermarkPath = playerPath + settingsXML.firstChild.attributes.watermarkPath.toString();
		}
		watermarkLink = settingsXML.firstChild.attributes.watermarkLink.toString();
		showWatermark = settingsXML.firstChild.attributes.showWatermark.toString() == "true" ? true : false;
		totalTime = Number(settingsXML.firstChild.attributes.totalTime.toString());
		//END
		
		init();
	}
	
	private function init():Void {
		//BEGIN: Set the important movieclips from player for easier access in the future
		playPauseMC = controlsMC.playPauseMC;
		stopMC = controlsMC.stopBtn;
		timelineMC = controlsMC.timelineMC;
		timesMC = controlsMC.timesMC;
		fullScreenMC = controlsMC.fullScreenBtn;
		shareBtnMC = controlsMC.shareBtn;
		shareMC = shareDisplayMC;
		volumeMC = controlsMC.volumeMC;
		controlsBckMC = controlsMC.controlsBckMC;
		videoDisplay = displayMC.videoDisplay;
		videoDisplay.smoothing = true;
		//END
		
		var aspectRatioArray:Array = aspectRatio.split(":");
		flvWidth = aspectRatioArray[0];
		flvHeight = aspectRatioArray[1];
		
		volumeMC.volumeScrubBtn._x = volumeMC.maskBarMC._x = Math.floor(volume / 100 * (volumeMC.volumeWedgeMC._width - 8)  + volumeMC.volumeWedgeMC._x + 4);
		
		playPauseMC.pauseBtn._visible = false;
		
		//BEGIN: Set the mouse actions for controls buttons
		playPauseMC.playBtn.onRelease = playPauseMC.pauseBtn.onRelease = Delegate.create(this, togglePlayPause);
		
		stopMC.onRelease = Delegate.create(this, stopRelease);
		
		middlePlayBtn.onRelease = Delegate.create(this, togglePlayPause);
		
		var stageListener:Object = new Object();
		if(autoResize){
			stageListener.onResize = Delegate.create(this, stageResize);
			
			mWidth = Stage.width;
			mHeight = Stage.height;
		}else {
			mWidth = playerWidth;
			mHeight = playerHeight;
		}
		
		if (showFullScreenButton){
			fullScreenMC.goFullScreenBtn.onRelease = Delegate.create(this, goFullScreen);
			fullScreenMC.goNormalScreenBtn.onRelease = Delegate.create(this, goFullScreen);
			
			fullScreenMC.goNormalScreenBtn._visible = false;
			
			stageListener.onFullScreen = Delegate.create(this, fullScreenEvent);
		}else {
			fullScreenMC._visible = false;
		}
		
		Stage.addListener(stageListener);
		
		if (showShare) {
			Share.getInstance().init();
			
			shareBtnMC.onRelease = Delegate.create(this, openShare);
		}else {
			shareBtnMC._visible = false;
		}

		volumeMC.volumeScrubBtn.onPress = Delegate.create(this, dragVol);
		volumeMC.volumeScrubBtn.onRelease = volumeMC.volumeScrubBtn.onReleaseOutside = Delegate.create(this, stopDragVol);
		volumeMC.volumeWedgeMC.onPress = Delegate.create(this, dragVol);
		volumeMC.volumeWedgeMC.onRelease = volumeMC.volumeWedgeMC.onReleaseOutside = Delegate.create(this, stopDragVol);
		volumeMC.speakerBtn.onPress = Delegate.create(this, muteVol);
		
		timelineMC.scrubBtn.onPress = Delegate.create(this, dragScrub);
		timelineMC.scrubBtn.onRelease = timelineMC.scrubBtn.onReleaseOutside = Delegate.create(this, stopDragScrub);
		timelineMC.progressBarMC.onPress = Delegate.create(this, dragScrub);
		timelineMC.progressBarMC.onRelease = timelineMC.progressBarMC.onReleaseOutside = Delegate.create(this, stopDragScrub);
		//END
		
		if (flv.indexOf("youtube.com/") != - 1) {// Check if the file is from YouTube
			getLink();
		}else {
			loadVideo();
		}
		
		if (showWatermark) {
			var mcLoader:MovieClipLoader = new MovieClipLoader();
			var mcLoaderListener:Object = new Object();
			mcLoaderListener.onLoadInit = Delegate.create(this, watermarkLoaded);
			mcLoader.addListener(mcLoaderListener);
			mcLoader.loadClip(watermarkPath, watermarkMC._target);			
		}
		
		if (showPreviewImage) {
			var mcLoader1:MovieClipLoader = new MovieClipLoader();
			var mcLoaderListener1:Object = new Object();
			mcLoaderListener1.onLoadInit = Delegate.create(this, previewImageLoaded);
			mcLoader1.addListener(mcLoaderListener1);
			mcLoader1.loadClip(previewImage, previewImageMC._target);
		}
		
		resizePlayer(mWidth, mHeight);
		
		videoDisplay._visible = false;
	}
	
	private function stageResize():Void {
		resizePlayer(Stage.width, Stage.height);
	}
	
	private function previewImageLoaded():Void {
		var proc1:Number = previewImageMC._width / mWidth;
		var proc2:Number = previewImageMC._height / (mHeight - controlsBckMC._height);
		if (proc1 > proc2) {
			previewImageMC._width = mWidth;
			previewImageMC._yscale = previewImageMC._xscale;
		}else {
			previewImageMC._height = (mHeight - controlsBckMC._height);
			previewImageMC._xscale = previewImageMC._yscale;
		}
		previewImageMC._x = Math.floor((mWidth - previewImageMC._width) / 2);
		previewImageMC._y = Math.floor((mHeight - controlsBckMC._height - previewImageMC._height) / 2);
		
		if (!metaDataLoaded) {
			previewImageMC._alpha = 0;
		}
	}
	
	private function watermarkLoaded():Void {
		if (!metaDataLoaded) {
			watermarkMC._visible = false;
		}
		watermarkMC._x = displayMC._x + displayMC._width - watermarkMC._width - 10;
		watermarkMC._y = displayMC._y + displayMC._height - watermarkMC._height - 10;
		watermarkMC.onRelease = Delegate.create(this, watermarkRelease);
	}
	
	private function watermarkRelease():Void {
		getURL(watermarkLink, "_blank");
	}
	
	
	
	//---------------------- FullScreen Functions -------------------------------------<
	private function goFullScreen():Void {
		Stage["displayState"] = Stage["displayState"] == "normal" ? "fullScreen" : "normal";
	}
	
	private function fullScreenEvent(pState:Boolean):Void{
		if (pState) {
			fullScreenMC.goFullScreenBtn._visible = false;
			fullScreenMC.goNormalScreenBtn._visible = true;
			
			resizePlayer(Stage.width, Stage.height);
		}else {
			fullScreenMC.goFullScreenBtn._visible = true;
			fullScreenMC.goNormalScreenBtn._visible = false;
			
			if (autoResize){
				resizePlayer(Stage.width, Stage.height);
			}else {
				resizePlayer(playerWidth, playerHeight);
			}
		}
	}
	//---------------------------------------------------------------------------------<
	
	
	
	//-------------------------- Resize Functions -------------------------------------<
	/**
	 * This function can be called when the stage changing or anytime you want
	 * to rearrange the controls and resize the video area
	 * @param	pWidth
	 * @param	pHeight
	 */
	private function resizePlayer(pWidth:Number, pHeight:Number):Void {
		mWidth = pWidth;
		mHeight = pHeight;
		
		controlsMC._y = mHeight - controlsBckMC._height;
		controlsBckMC.controlsBck2._width = mWidth;
		controlsBckMC.controlsBck1.controlsBck1Middle._width = mWidth - 20;
		controlsBckMC.controlsBck1.controlsBck1Right._x = mWidth - 10;
		
		//BEGIN: Draw border around controls background
		controlsMC.controlsBrd.clear();
		controlsMC.controlsBrd.lineStyle(1, 0x000000, 100, true, "none", "square", "miter", 1);
		controlsMC.controlsBrd.moveTo(0, 0);
		controlsMC.controlsBrd.lineTo(mWidth - 1, 0);
		controlsMC.controlsBrd.lineTo(mWidth - 1, controlsMC._height - 1);
		controlsMC.controlsBrd.lineTo(0, controlsMC._height - 1);
		controlsMC.controlsBrd.lineTo(0, 0);
		//END
		
		playPauseMC._x = controlsPadding;
		stopMC._x = playPauseMC._x + playPauseMC._width + 2;
		timelineMC._x = stopMC._x + stopMC._width + controlsPadding;
		
		var lastX:Number = mWidth;
		
		if (showShare) {
			shareBtnMC._x = Math.floor(mWidth - controlsPadding - shareBtnMC._width);
			lastX = shareBtnMC._x;
		}
		
		if(showFullScreenButton){
			fullScreenMC._x = Math.floor(lastX - controlsPadding - fullScreenMC._width);
			lastX = fullScreenMC._x;
		}
		
		volumeMC._x = Math.floor(lastX - controlsPadding - 74);		
		timesMC._x = Math.floor(volumeMC._x - controlsPadding - timesMC._width);
		
		timelineMC.timelineBck._width = Math.floor(mWidth - timelineMC._x - (mWidth - timesMC._x) - controlsPadding);
		var proc:Number = Math.floor(stream_ns.time) / totalTime;
		timelineMC.scrubBtn._x = timelineMC.scrubBarMC._width = timelineMC.timelineBck._width * proc;
		
		checkBytesLoaded();
		
		//BEGIN: Draw border around progress bar background
		timelineMC.timelineBrd.clear();
		timelineMC.timelineBrd.lineStyle(1, 0x353535, 100, true, "none", "square", "miter", 1);
		timelineMC.timelineBrd.moveTo(0, 0);
		timelineMC.timelineBrd.lineTo(timelineMC.timelineBck._width, 0);
		timelineMC.timelineBrd.lineTo(timelineMC.timelineBck._width, timelineMC.timelineBck._height);
		timelineMC.timelineBrd.lineTo(0, timelineMC.timelineBck._height);
		timelineMC.timelineBrd.lineTo(0, 0);
		//END
		
		if (metaDataLoaded){
			//BEGIN: Resize the video
			if (keepAspectRatio) {
				setSizes(displayMC, mWidth, mHeight - controlsBckMC._height);
			}else {
				videoDisplay._width = mWidth;
				videoDisplay._height = mHeight - controlsMC._height;
			}
			//END
			
			clickableAreaMC._width = mWidth;
			clickableAreaMC._height = mHeight - controlsBckMC._height;
			
			if (showWatermark) {
				watermarkMC._x = displayMC._x + displayMC._width - watermarkMC._width - 10;
				watermarkMC._y = displayMC._y + displayMC._height - watermarkMC._height - 10;
			}
			
			if (showPreviewImage) {
				var proc1:Number = previewImageMC._width / mWidth;
				var proc2:Number = previewImageMC._height / (mHeight - controlsBckMC._height);
				if (proc1 > proc2) {
					previewImageMC._width = mWidth;
					previewImageMC._yscale = previewImageMC._xscale;
				}else {
					previewImageMC._height = (mHeight - controlsBckMC._height);
					previewImageMC._xscale = previewImageMC._yscale;
				}
				previewImageMC._x = Math.floor((mWidth - previewImageMC._width) / 2);
				previewImageMC._y = Math.floor((mHeight - controlsBckMC._height - previewImageMC._height) / 2);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美二区三区的天堂| 欧美亚洲国产bt| 一区二区三区精品| 制服丝袜亚洲播放| 91小宝寻花一区二区三区| 视频在线观看一区| 国产精品久久夜| 日韩精品在线一区| 色一情一伦一子一伦一区| 国产一区二区不卡老阿姨| 亚洲最快最全在线视频| 国产午夜久久久久| 日韩精品中文字幕一区二区三区 | 理论片日本一区| 亚洲色图色小说| 久久麻豆一区二区| 欧美精品v国产精品v日韩精品| 国产精品一卡二卡| 日本aⅴ免费视频一区二区三区| 日韩毛片高清在线播放| 国产色综合一区| 欧美成人伊人久久综合网| 欧美色大人视频| 91麻豆蜜桃一区二区三区| 国产成人综合在线观看| 蜜桃精品视频在线| 肉色丝袜一区二区| 亚洲一区视频在线| 亚洲男人的天堂一区二区| 中文字幕欧美国产| 久久久精品国产免费观看同学| 欧美一区二区三区爱爱| 欧美日韩和欧美的一区二区| 91美女精品福利| av亚洲产国偷v产偷v自拍| 国产精品一区二区久激情瑜伽| 蜜臀精品久久久久久蜜臀| 亚洲mv在线观看| 亚洲大片一区二区三区| 一区二区三区欧美在线观看| 亚洲精品你懂的| 一二三区精品视频| 亚洲一级在线观看| 亚洲国产欧美另类丝袜| 亚洲国产一区在线观看| 亚洲午夜影视影院在线观看| 亚洲欧洲韩国日本视频| 国产精品第13页| 亚洲欧美另类久久久精品2019| 国产精品久久福利| 一区在线观看免费| 亚洲免费观看高清完整版在线| 最新热久久免费视频| 亚洲欧美区自拍先锋| 亚洲国产欧美一区二区三区丁香婷| 亚洲一区免费视频| 五月开心婷婷久久| 美国三级日本三级久久99| 狠狠狠色丁香婷婷综合激情 | 欧美在线观看一区| 欧美国产精品一区二区三区| 国产精品久久久一本精品| 国产精品三级电影| 亚洲女人的天堂| 亚洲gay无套男同| 久久丁香综合五月国产三级网站| 精品一区二区三区蜜桃| 高清日韩电视剧大全免费| 91免费视频观看| 欧美日韩免费高清一区色橹橹| 欧美日韩国产成人在线免费| 日韩免费观看高清完整版| 国产日产欧美一区| 亚洲精品乱码久久久久| 青青草国产精品亚洲专区无| 国产老肥熟一区二区三区| 99久久久国产精品免费蜜臀| 欧美日韩在线观看一区二区 | 中文字幕一区二区三| 午夜a成v人精品| 国产精品99久久久久久似苏梦涵 | 老色鬼精品视频在线观看播放| 国产一区二三区| 色综合天天综合网天天狠天天| 69堂精品视频| 中文在线一区二区| 图片区小说区区亚洲影院| 国产精品亚洲午夜一区二区三区| 91精品福利在线| 久久久精品欧美丰满| 亚洲无线码一区二区三区| 国产伦精品一区二区三区视频青涩| 成人国产精品免费观看| 91精品婷婷国产综合久久 | 免费在线视频一区| av高清久久久| 欧美mv和日韩mv国产网站| 亚洲欧洲综合另类| 国产一区二区在线观看视频| 91黄色免费观看| 欧美激情在线看| 日产欧产美韩系列久久99| av在线免费不卡| 久久天天做天天爱综合色| 午夜精品久久久久影视| 不卡av在线网| 久久亚洲免费视频| 丝袜美腿亚洲综合| 91国模大尺度私拍在线视频| 久久久精品日韩欧美| 日本在线观看不卡视频| 日本韩国视频一区二区| 国产精品美女久久久久久久久| 蜜桃久久久久久| 欧美乱熟臀69xxxxxx| 亚洲品质自拍视频网站| k8久久久一区二区三区| 久久影视一区二区| 欧美日韩精品免费| 亚洲视频一二区| 成人av在线一区二区三区| 欧美www视频| 美女视频黄 久久| 制服丝袜一区二区三区| 亚洲h精品动漫在线观看| 在线这里只有精品| 亚洲欧美区自拍先锋| 91啪九色porn原创视频在线观看| 国产欧美一区二区精品性色| 狠狠狠色丁香婷婷综合久久五月| 日韩一区二区在线观看视频播放| 亚洲一区在线观看网站| 欧美伊人久久大香线蕉综合69| 综合久久综合久久| 97se亚洲国产综合自在线不卡| 国产精品网站一区| 成人av在线一区二区| 国产精品久久久久永久免费观看| 国产a级毛片一区| 日本一区二区三区在线观看| 国产裸体歌舞团一区二区| 精品国产91久久久久久久妲己| 久久99精品久久久久久久久久久久 | 精品视频1区2区3区| 亚洲一区二区三区激情| 欧美日韩五月天| 日本不卡视频一二三区| 日韩一级免费一区| 麻豆91在线观看| 久久久久久9999| 丁香婷婷深情五月亚洲| 亚洲免费伊人电影| 在线视频一区二区免费| 首页国产丝袜综合| 日韩久久久精品| 高清beeg欧美| 亚洲精品日韩专区silk | 国产精品成人网| 色综合久久久久久久| 亚洲一区二区偷拍精品| 欧美一区二区在线观看| 久久精品久久99精品久久| 久久九九久久九九| 99re8在线精品视频免费播放| 亚洲激情六月丁香| 7777精品伊人久久久大香线蕉最新版| 日本va欧美va精品| 久久精品视频在线看| 91亚洲精品久久久蜜桃网站| 亚洲综合一二三区| 欧美大肚乱孕交hd孕妇| 成人免费毛片app| 亚洲成人777| 久久日韩粉嫩一区二区三区| 成人开心网精品视频| 午夜国产精品一区| 国产亚洲欧洲997久久综合| 在线观看三级视频欧美| 久久精品国产第一区二区三区| 国产精品欧美经典| 欧美精品日韩精品| 成人免费黄色大片| 日韩精品1区2区3区| 国产精品乱码久久久久久| 欧美日韩国产综合视频在线观看| 国产一区二区不卡| 亚洲成人自拍网| 中文字幕第一区二区| 欧美一区二区日韩| 色综合久久久久网| 国产黄人亚洲片| 日本视频一区二区| 福利一区在线观看| 首页综合国产亚洲丝袜| 亚洲啪啪综合av一区二区三区| 欧美成人高清电影在线| 欧美色网一区二区| 97精品电影院| 高清日韩电视剧大全免费| 奇米影视在线99精品|