Skip to content

Commit

Permalink
- initial changes to starting using preload="auto"
Browse files Browse the repository at this point in the history
  • Loading branch information
johndyer committed May 20, 2011
1 parent 642c94a commit a493ffa
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 32 deletions.
8 changes: 5 additions & 3 deletions src/flash/FlashMediaElement.as
Expand Up @@ -23,7 +23,8 @@
public class FlashMediaElement extends MovieClip {

private var _mediaUrl:String;
private var _autoplay:Boolean; // TODO
private var _autoplay:Boolean;
private var _preload:String;
private var _debug:Boolean;
private var _isVideo:Boolean;
private var _video:Video;
Expand Down Expand Up @@ -77,6 +78,7 @@
_showControls = (params['controls'] != undefined) ? (String(params['controls']) == "true") : false;
_enableSmoothing = (params['smoothing'] != undefined) ? (String(params['smoothing']) == "true") : false;
_startVolume = (params['startvolume'] != undefined) ? (parseInt(params['startvolume'], 10)) : 1;
_preload = (params['preload'] != undefined) ? params['preload'] : "none";

if (isNaN(_timerRate))
_timerRate = 250;
Expand Down Expand Up @@ -106,15 +108,15 @@

// create media element
if (_isVideo) {
_mediaElement = new VideoElement(this, _autoplay, _timerRate, _startVolume);
_mediaElement = new VideoElement(this, _autoplay, _preload, _timerRate, _startVolume);
_video = (_mediaElement as VideoElement).video;
_video.width = _stageWidth;
_video.height = _stageHeight;
_video.smoothing = _enableSmoothing;
//_video.scaleMode = VideoScaleMode.MAINTAIN_ASPECT_RATIO;
addChild(_video);
} else {
_mediaElement = new AudioElement(this, _autoplay, _timerRate, _startVolume);
_mediaElement = new AudioElement(this, _autoplay, _preload, _timerRate, _startVolume);
}

// debugging
Expand Down
6 changes: 4 additions & 2 deletions src/flash/htmlelements/AudioElement.as
Expand Up @@ -41,6 +41,7 @@ package htmlelements

private var _currentUrl:String = "";
private var _autoplay:Boolean = true;
private var _preload:String = "";

private var _element:FlashMediaElement;
private var _timer:Timer;
Expand All @@ -54,11 +55,12 @@ package htmlelements
return _currentTime;
}

public function AudioElement(element:FlashMediaElement, autoplay:Boolean, timerRate:Number, startVolume:Number)
public function AudioElement(element:FlashMediaElement, autoplay:Boolean, preload:String, timerRate:Number, startVolume:Number)
{
_element = element;
_autoplay = autoplay;
_volume = startVolume;
_preload = preload;

_timer = new Timer(timerRate);
_timer.addEventListener(TimerEvent.TIMER, timerEventHandler);
Expand Down Expand Up @@ -157,7 +159,7 @@ package htmlelements

_isLoaded = true;

if (!_firedCanPlay) {
if (!_firedCanPlay) {
sendEvent(HtmlMediaEvent.LOADEDDATA);
sendEvent(HtmlMediaEvent.CANPLAY);
_firedCanPlay = true;
Expand Down
59 changes: 32 additions & 27 deletions src/flash/htmlelements/VideoElement.as
Expand Up @@ -15,6 +15,7 @@
{
private var _currentUrl:String = "";
private var _autoplay:Boolean = true;
private var _preload:String = "";

private var _connection:NetConnection;
private var _stream:NetStream;
Expand Down Expand Up @@ -77,11 +78,12 @@
// _stream gets created


public function VideoElement(element:FlashMediaElement, autoplay:Boolean, timerRate:Number, startVolume:Number)
public function VideoElement(element:FlashMediaElement, autoplay:Boolean, preload:String, timerRate:Number, startVolume:Number)
{
_element = element;
_autoplay = autoplay;
_volume = startVolume;
_preload = preload;

_video = new Video();
addChild(_video);
Expand Down Expand Up @@ -164,31 +166,6 @@
}
}

private function connectStream():void {
trace("connectStream");
_stream = new NetStream(_connection);

// explicitly set the sound since it could have come before the connection was made
_soundTransform = new SoundTransform(_volume);
_stream.soundTransform = _soundTransform;

_stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); // same event as connection
_stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);

var customClient:Object = new Object();
customClient.onMetaData = onMetaDataHandler;
_stream.client = customClient;

_video.attachNetStream(_stream);

_isConnected = true;

if (_playWhenConnected && !_hasStartedPlaying) {
play();
_playWhenConnected = false;
}

}

private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
Expand Down Expand Up @@ -217,7 +194,7 @@
public function setSrc(url:String):void {
if (_isConnected && _stream) {
// stop and restart
_stream.pause();
_stream.pause();
}

_currentUrl = url;
Expand All @@ -244,6 +221,34 @@

sendEvent(HtmlMediaEvent.LOADSTART);
}


private function connectStream():void {
trace("connectStream");
_stream = new NetStream(_connection);
_stream.bufferTime = 10;

// explicitly set the sound since it could have come before the connection was made
_soundTransform = new SoundTransform(_volume);
_stream.soundTransform = _soundTransform;

_stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); // same event as connection
_stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);

var customClient:Object = new Object();
customClient.onMetaData = onMetaDataHandler;
_stream.client = customClient;

_video.attachNetStream(_stream);

_isConnected = true;

if (_playWhenConnected && !_hasStartedPlaying) {
play();
_playWhenConnected = false;
}

}

public function play():void {

Expand Down

0 comments on commit a493ffa

Please sign in to comment.