A video controller is an API to play and track videos. This implementation tries to be as bare bones as possible.
Events
Name | Type | Description |
---|---|---|
BACKWARDS_SEEK | com.google.ads.studio.events.StudioVideoEvent | |
BUFFERED | com.google.ads.studio.events.StudioVideoEvent | |
COMPLETE | com.google.ads.studio.events.StudioVideoEvent | |
CONNECTION_ERROR | com.google.ads.studio.events.StudioVideoEvent | |
FIRST_QUARTILE | com.google.ads.studio.events.StudioVideoEvent | |
MID_POINT | com.google.ads.studio.events.StudioVideoEvent | |
MUTE | com.google.ads.studio.events.StudioVideoEvent | |
NETSTREAM_BUFFER_EMPTY | com.google.ads.studio.events.StudioVideoEvent | |
NETSTREAM_BUFFER_FULL | com.google.ads.studio.events.StudioVideoEvent | |
NETSTREAM_PLAY_START | com.google.ads.studio.events.StudioVideoEvent | |
NETSTREAM_PLAY_STREAMNOTFOUND | com.google.ads.studio.events.StudioVideoEvent | |
NET_CONNECTION_AVAILABLE | com.google.ads.studio.events.StudioVideoEvent | |
NET_CONNECTION_PREINITIALIZE | com.google.ads.studio.events.StudioVideoEvent | |
NET_CONNECTION_STATUS | com.google.ads.studio.events.StudioVideoEvent | |
NET_STREAM_AVAILABLE | com.google.ads.studio.events.StudioVideoEvent | |
NET_STREAM_CUE_POINT | com.google.ads.studio.events.StudioVideoEvent | |
NET_STREAM_META_DATA | com.google.ads.studio.events.StudioVideoEvent | |
NET_STREAM_PREINITIALIZE | com.google.ads.studio.events.StudioVideoEvent | |
NET_STREAM_STATUS | com.google.ads.studio.events.StudioVideoEvent | |
PAUSE | com.google.ads.studio.events.StudioVideoEvent | |
PLAY | com.google.ads.studio.events.StudioVideoEvent | |
PLAYHEAD_MOVE | com.google.ads.studio.events.StudioVideoEvent | |
REPLAY | com.google.ads.studio.events.StudioVideoEvent | |
STATE_CHANGE | com.google.ads.studio.events.StudioVideoEvent | |
STOP | com.google.ads.studio.events.StudioVideoEvent | |
THIRD_QUARTILE | com.google.ads.studio.events.StudioVideoEvent | |
UN_MUTE | com.google.ads.studio.events.StudioVideoEvent |
Constructors
VideoController()
Creates a new video controller.
Instance Methods
Defined in com.google.ads.studio.video:VideoController
addVideoEntry(videoEntry:
VideoEntry)
:
void
Add a video entry to the video controller. The order in which these are
added is the order in which they'll be attempted. The first video
entry is pre-created and can either be added (which replaces the first
dummy) or edited via getVideoEntries()[0].setHigh("foo.flv");
.
These example code blocks are equivalent.
import com.google.ads.studio.video.SmartStreamingConnection; import com.google.ads.studio.video.VideoController; import com.google.ads.studio.video.VideoEntry; var videoController:VideoController = new VideoController(); videoController.setReportingIdentifier("my video"); videoController.addVideoEntry(new VideoEntry( "streaming_high.flv", null, null, SmartStreamingConnection)); videoController.addVideoEntry(new VideoEntry("progressive_high.flv"));
import com.google.ads.studio.video.SmartStreamingConnection; import com.google.ads.studio.video.VideoController; import com.google.ads.studio.video.VideoEntry; var videoController:VideoController = new VideoController(); videoController.setReportingIdentifier("my video"); videoController.getVideoEntries()[0].setHigh("streaming_high.flv"); videoController.getVideoEntries()[0].setConnectionType( SmartStreamingConnection); // Secondary video entries always needs to be added. videoController.addVideoEntry(new VideoEntry("progressive_high.flv"));
attachAudioAndVideo()
:
void
After the netstream object is available, this attaches the video and audio to netstream object.
cloneWithBasicProperties()
:
VideoController
Clones a video controller with its basic properties such as buffer time and reporting ID. Note that this does NOT copy any video entries or any other properties.
executeStateCommands()
:
void
getAudioChannel()
:
AudioChannel
Gets the audio channel.
import com.google.ads.studio.audio.AudioChannel; var unmuteClickHandler:Function = function(event:MouseEvent):void { var audioChannel:AudioChannel = videoComponentInstance. getCurrentVideoController().getAudioChannel(); audioChannel.MAX_VOLUME; }; unmuteButton.addEventListener(MouseEvent.CLICK, unmuteClickHandler);
getBufferTime()
:
Number
Gets the set buffer time.
import com.google.ads.studio.video.VideoController; import com.google.ads.studio.events.StudioVideoEvent; var videoController:VideoController = videoComponentInstance.getCurrentVideoController(); var videoBufferedHandler:Function = function( event:StudioVideoEvent):void { trace("Video's buffer time is " + videoController.getBufferTime() + "."); }; videoComponentInstance.addEventListener( StudioVideoEvent.BUFFERED, videoBufferedHandler);
getNetConnection()
:
NetConnection
Gets the current netconnection.
import com.google.ads.studio.video.VideoController; import com.google.ads.studio.events.StudioVideoEvent; var videoController:VideoController = videoComponentInstance.getCurrentVideoController(); var netConnectionAvailableHandler:Function = function( event:StudioVideoEvent):void { trace("Current Net Connection is " + videoController.getNetConnection() + "."); }; videoController.addEventListener( StudioVideoEvent.NET_CONNECTION_AVAILABLE, netConnectionAvailableHandler);
getNetStream()
:
NetStream
Gets current the netstream object.
import com.google.ads.studio.video.VideoController; import com.google.ads.studio.events.StudioVideoEvent; var videoController:VideoController = videoComponentInstance.getCurrentVideoController(); var onNetStreamAvailableHandler:Function = function( event:StudioVideoEvent):void { trace("Current Net Stream object is " + videoController.getNetStream() + "."); }; videoController.addEventListener( StudioVideoEvent.NET_STREAM_AVAILABLE, netStreamAvailableHandler);
getNumberOfVideoEntries()
:
Number
Gets the number of video entries.
import com.google.ads.studio.video.VideoController; import com.google.ads.studio.events.StudioVideoEvent; var videoController:VideoController = videoComponentInstance.getCurrentVideoController(); var videoBufferedHandler:Function = function( event:StudioVideoEvent):void { trace("The number of video entry(ies) is(are) " + videoController.getNumberOfVideoEntries() + "."); }; videoComponentInstance.addEventListener( StudioVideoEvent.BUFFERED, videoBufferedHandler);
getPlayerState()
:
AbstractPlayerState
Gets the current player state.
import com.google.ads.studio.video.VideoController; import com.google.ads.studio.events.StudioVideoEvent; var videoController:VideoController = videoComponentInstance.getCurrentVideoController(); var enterFrameHandler:Function = function(event:Event):void { trace("The current player state is " + videoController.getPlayerState() + "."); }; this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
getReportingIdentifier()
:
String
Gets the video reporting identifier.
import com.google.ads.studio.video.VideoController; import com.google.ads.studio.events.StudioVideoEvent; var videoController:VideoController = videoComponentInstance.getCurrentVideoController(); var videoBufferedHandler:Function = function( event:StudioVideoEvent):void { trace("The video reporting identifier is " + videoController.getReportingIdentifier() + "."); }; videoComponentInstance.addEventListener( StudioVideoEvent.BUFFERED, videoBufferedHandler);
getVideoConnection()
:
AbstractVideoConnection
Gets the current video connection.
import com.google.ads.studio.video.VideoController; import com.google.ads.studio.events.StudioVideoEvent; var videoController:VideoController = videoComponentInstance.getCurrentVideoController(); var videoBufferedHandler:Function = function( event:StudioVideoEvent):void { trace("The current Video connection is " + videoController.getVideoConnection() + "."); }; videoComponentInstance.addEventListener( StudioVideoEvent.BUFFERED, videoBufferedHandler);
getVideoEntries()
:
Array
Gets the currently added video entries.
import com.google.ads.studio.video.VideoController; import com.google.ads.studio.events.StudioVideoEvent; var videoController:VideoController = videoComponentInstance.getCurrentVideoController(); var videoBufferedHandler:Function = function( event:StudioVideoEvent):void { var videoEntries:Array = videoController.getVideoEntries(); for (var i = 0; i < videoEntries.length; i++) { trace("Video Entry #" + i + "is " + videoEntries[i]); } }; videoComponentInstance.addEventListener( StudioVideoEvent.BUFFERED, videoBufferedHandler);
getVideoObject()
:
Video
Gets the video object.
import com.google.ads.studio.video.VideoController; import com.google.ads.studio.events.StudioVideoEvent; // Get a reference to the current video. var videoController:VideoController = videoComponentInstance.getCurrentVideoController(); var videoBufferedHandler:Function = function( event:StudioVideoEvent):void { var videoObject:Video = videoController.getVideoObject(); }; videoComponentInstance.addEventListener( StudioVideoEvent.BUFFERED, videoBufferedHandler);
mute()
:
void
Mutes the audio channel associated to the playing video.
var muteClickHandler:Function = function(event:MouseEvent):void { videoController.mute(); }; muteButton.addEventListener(MouseEvent.CLICK, muteClickHandler);
pause(alwaysPause:Boolean=false)
:
void
Pauses the video.
var pauseClickHandler:Function = function(event:MouseEvent):void { videoController.pause(); }; pauseButton.addEventListener(MouseEvent.CLICK, pauseClickHandler);
play(trackAsAutoPlay:Boolean=false)
:
void
Plays the video.
var playClickHandler:Function = function(event:MouseEvent):void { videoController.play(); }; playButton.addEventListener(MouseEvent.CLICK, playClickHandler);
replay()
:
void
Replays the video.
var replayClickHandler:Function = function(event:MouseEvent):void { videoController.replay(); }; replayButton.addEventListener(MouseEvent.CLICK, replayClickHandler);
seek(time:Number)
:
void
Seeks the playhead to a particular time in seconds.
var seekClickHandler:Function = function(event:MouseEvent):void { videoController.seek(10); }; seekButton.addEventListener(MouseEvent.CLICK, seekClickHandler);
setBufferTime(seconds:Number)
:
void
Sets the amount of time to buffer.
var timeInSeconds:int = 1; videoController.setBufferTime(timeInSeconds);
setCloseOnComplete(closeOnComplete:Boolean)
:
void
Sets whether the creative should close on completion of this video.
setEnabler(enabler:Object)
:
void
Sets the Enabler.
setPrimary(isPrimary:Boolean)
:
void
Sets whether this is the primary video controller.
setReportDuration(reportDuration:Boolean)
:
void
Sets whether this controller should report its duration.
setReportingIdentifier(reportingIdentifier:String)
:
void
Sets the reporting identifier for the videos to report as.
videoController.setReportingIdentifier("Video_1");
setVideoObject(video:flash.media:Video)
:
void
Sets the video object to display the video.
import com.google.ads.studio.video.VideoController; import com.google.ads.studio.video.VideoEntry; var videoController:VideoController = videoComponentInstance.getCurrentVideoController(); var addVideoClickHandler:Function = function(event:MouseEvent):void { var videoEntry:VideoEntry = new VideoEntry("broadband_video.flv", "midband_video.flv", "narrowband_video.flv"); videoController = new VideoController(); videoController.setReportingIdentifier("new_video"); videoController.addVideoEntry(videoEntry); videoController.setVideoObject(vidPlayerInstance.getVideoObject()); videoController.play(); }; addVideoButton.addEventListener(MouseEvent.CLICK, addVideoClickHandler);
stop()
:
void
Stops the video. The current implementation for stop is to pause and seek the playhead to 0.
var stopClickHandler:Function = function(event:MouseEvent):void { videoController.stop(); }; stopButton.addEventListener(MouseEvent.CLICK, stopClickHandler);
unload()
:
void
Unloads the video controller and preps it for garbage collection as well as possible.
var unloadClickHandler:Function = function(event:MouseEvent):void { videoController.unload(); }; unloadButton.addEventListener(MouseEvent.CLICK, unloadClickHandler);
unmute()
:
void
Unmutes the audio channel associated to the playing video.
var unmuteClickHandler:Function = function(event:MouseEvent):void { videoController.unmute(); unmuteButton.addEventListener(MouseEvent.CLICK, unmuteClickHandler);