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

📄 streamprovidercontroller.as

📁 jquery插件
💻 AS
字号:
/*     *    Copyright (c) 2008, 2009 Flowplayer Oy * *    This file is part of Flowplayer. * *    Flowplayer is free software: you can redistribute it and/or modify *    it under the terms of the GNU General Public License as published by *    the Free Software Foundation, either version 3 of the License, or *    (at your option) any later version. * *    Flowplayer is distributed in the hope that it will be useful, *    but WITHOUT ANY WARRANTY; without even the implied warranty of *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *    GNU General Public License for more details. * *    You should have received a copy of the GNU General Public License *    along with Flowplayer.  If not, see <http://www.gnu.org/licenses/>. */package org.flowplayer.controller {	import org.flowplayer.config.Config;
	import org.flowplayer.controller.AbstractDurationTrackingController;
	import org.flowplayer.controller.MediaController;
	import org.flowplayer.controller.StreamProvider;
	import org.flowplayer.model.Clip;
	import org.flowplayer.model.ClipEvent;
	import org.flowplayer.model.ClipEventType;
	import org.flowplayer.model.ClipType;
	import org.flowplayer.model.Playlist;
	import org.flowplayer.util.Log;
	
	import flash.display.DisplayObject;
	import flash.media.Video;		
	/**	 * Video controller is responsible for loading and showing video.	 * It's also responsible for scaling and resizing the video screen.	 * It receives the cuePoints and metaData from the loaded video data.	 * 	 * @author anssi	 */	internal class StreamProviderController extends AbstractDurationTrackingController implements MediaController {		private var _config:Config;		private var _controllerFactory:MediaControllerFactory;		private var _metadataDispatched:Boolean;		public function StreamProviderController(controllerFactory:MediaControllerFactory, volumeController:VolumeController, config:Config, playlist:Playlist) {			super(volumeController, playlist);			_controllerFactory = controllerFactory;			_config = config;			var filter:Function = function(clip:Clip):Boolean { 				return clip.type == ClipType.VIDEO || clip.type == ClipType.AUDIO; 			};			playlist.onBegin(onBegin, filter, true);			playlist.onBufferFull(onBegin, filter, true);			playlist.onStart(onBegin, filter, true);		}		private function onBegin(event:ClipEvent):void {			var clip:Clip = event.target as Clip;			log.info("onBegin, initializing content for clip " + clip);			var video:DisplayObject = clip.getContent();			if (video && video is Video) {				getProvider(clip).attachStream(video);			} else {				video = getProvider(clip).getVideo(clip);				if (video && video is Video) { 					getProvider(clip).attachStream(video);					if (!video) throw new Error("No video object available for clip " + clip);					clip.setContent(video);				}			}		}		protected override function doLoad(event:ClipEvent, clip:Clip, pauseAfterStart:Boolean = false):void {			_metadataDispatched = false;			getProvider().load(event, clip, pauseAfterStart);		}		protected override function doPause(event:ClipEvent):void {			getProvider().pause(event);		}		protected override function doResume(event:ClipEvent):void {			getProvider().resume(event);		}		protected override function doStop(event:ClipEvent, closeStream:Boolean):void {			getProvider().stop(event, closeStream);		}		protected override function doStopBuffering():void {			getProvider().stopBuffering();		}		protected override function doSeekTo(event:ClipEvent, seconds:Number):void {			durationTracker.time = seconds;			getProvider().seek(event, seconds);		}		public override function get time():Number {			return getProvider().time;		}		protected override function get bufferStart():Number {			return getProvider().bufferStart;		}		protected override function get bufferEnd():Number {			return getProvider().bufferEnd;		}		protected override function get fileSize():Number {			return getProvider().fileSize;		}		protected override function get allowRandomSeek():Boolean {			return getProvider().allowRandomSeek;		}		override protected function onDurationReached():void {			// pause silently			log.debug("pausing silently");			getProvider().pause(null);		}		public function getProvider(clipParam:Clip = null):StreamProvider {			if (!(clipParam || clip)) return null;			var provider:StreamProvider = _controllerFactory.getProvider(clipParam || clip);			provider.playlist = playlist;			return provider;		}	}}

⌨️ 快捷键说明

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