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()
:
voidAfter the netstream object is available, this attaches the video and audio to netstream object.
cloneWithBasicProperties()
:
VideoControllerClones 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()
:
voidgetAudioChannel()
:
AudioChannelGets 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()
:
NumberGets 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()
:
NetConnectionGets 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()
:
NetStreamGets 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()
:
NumberGets 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()
:
AbstractPlayerStateGets 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()
:
StringGets 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()
:
AbstractVideoConnectionGets 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()
:
ArrayGets 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()
:
VideoGets 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()
:
voidMutes 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)
:
voidPauses the video.
var pauseClickHandler:Function = function(event:MouseEvent):void {
videoController.pause();
};
pauseButton.addEventListener(MouseEvent.CLICK, pauseClickHandler);
play(trackAsAutoPlay:Boolean=false)
:
voidPlays the video.
var playClickHandler:Function = function(event:MouseEvent):void {
videoController.play();
};
playButton.addEventListener(MouseEvent.CLICK, playClickHandler);
replay()
:
voidReplays the video.
var replayClickHandler:Function = function(event:MouseEvent):void {
videoController.replay();
};
replayButton.addEventListener(MouseEvent.CLICK, replayClickHandler);
seek(time:Number)
:
voidSeeks 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)
:
voidSets the amount of time to buffer.
var timeInSeconds:int = 1;
videoController.setBufferTime(timeInSeconds);
setCloseOnComplete(closeOnComplete:Boolean)
:
voidSets whether the creative should close on completion of this video.
setEnabler(enabler:Object)
:
voidSets the Enabler.
setPrimary(isPrimary:Boolean)
:
voidSets whether this is the primary video controller.
setReportDuration(reportDuration:Boolean)
:
voidSets whether this controller should report its duration.
setReportingIdentifier(reportingIdentifier:String)
:
voidSets the reporting identifier for the videos to report as.
videoController.setReportingIdentifier("Video_1");
setVideoObject(video:flash.media:Video)
:
voidSets 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()
:
voidStops 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()
:
voidUnloads 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()
:
voidUnmutes the audio channel associated to the playing video.
var unmuteClickHandler:Function = function(event:MouseEvent):void {
videoController.unmute();
unmuteButton.addEventListener(MouseEvent.CLICK, unmuteClickHandler);