Skip to content

Commit 3b97f3c

Browse files
author
Germano Fronza
committed
Merge pull request #40 from eventials/master
Trigger playback error if got an error while trying to play.
2 parents fd5f1fc + 38c3b20 commit 3b97f3c

File tree

2 files changed

+42
-35
lines changed

2 files changed

+42
-35
lines changed

src/RTMP.as

Lines changed: 40 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -171,54 +171,59 @@ package {
171171
}
172172

173173
private function playerPlay(url:String=null):void {
174-
if (!mediaElement) {
175-
if (isLive) {
176-
urlResource = new StreamingURLResource(url, StreamType.LIVE);
177-
} else {
178-
urlResource = new StreamingURLResource(url, StreamType.RECORDED);
179-
}
174+
try {
175+
if (!mediaElement) {
176+
if (isLive) {
177+
urlResource = new StreamingURLResource(url, StreamType.LIVE);
178+
} else {
179+
urlResource = new StreamingURLResource(url, StreamType.RECORDED);
180+
}
180181

181-
var startLevel:int = int(this.root.loaderInfo.parameters.startLevel);
182+
var startLevel:int = int(this.root.loaderInfo.parameters.startLevel);
182183

183-
if (startLevel > -1) {
184-
urlResource.addMetadataValue(MetadataNamespaces.RESOURCE_INITIAL_INDEX, startLevel);
185-
}
184+
if (startLevel > -1) {
185+
urlResource.addMetadataValue(MetadataNamespaces.RESOURCE_INITIAL_INDEX, startLevel);
186+
}
186187

187-
var pluginResource:MediaResourceBase = new PluginInfoResource(new SMILPluginInfo());
188+
var pluginResource:MediaResourceBase = new PluginInfoResource(new SMILPluginInfo());
188189

189-
// Load the plugin.
190-
mediaFactory.loadPlugin(pluginResource);
190+
// Load the plugin.
191+
mediaFactory.loadPlugin(pluginResource);
191192

192-
//create new MediaPlayer - it controls your media provided in media property
193-
mediaPlayer = new MediaPlayer();
193+
//create new MediaPlayer - it controls your media provided in media property
194+
mediaPlayer = new MediaPlayer();
194195

195-
mediaPlayer.bufferTime = this.root.loaderInfo.parameters.bufferTime;
196-
mediaPlayer.autoPlay = false;
197-
mediaPlayer.autoDynamicStreamSwitch = startLevel == -1;
198-
mediaPlayer.addEventListener(TimeEvent.CURRENT_TIME_CHANGE, onTimeUpdated);
199-
mediaPlayer.addEventListener(TimeEvent.DURATION_CHANGE, onTimeUpdated);
200-
mediaPlayer.addEventListener(TimeEvent.COMPLETE, onFinish);
201-
mediaPlayer.addEventListener(MediaErrorEvent.MEDIA_ERROR, onMediaError);
202-
mediaPlayer.addEventListener(DynamicStreamEvent.SWITCHING_CHANGE, onLevelSwitching);
196+
mediaPlayer.bufferTime = this.root.loaderInfo.parameters.bufferTime;
197+
mediaPlayer.autoPlay = false;
198+
mediaPlayer.autoDynamicStreamSwitch = startLevel == -1;
199+
mediaPlayer.addEventListener(TimeEvent.CURRENT_TIME_CHANGE, onTimeUpdated);
200+
mediaPlayer.addEventListener(TimeEvent.DURATION_CHANGE, onTimeUpdated);
201+
mediaPlayer.addEventListener(TimeEvent.COMPLETE, onFinish);
202+
mediaPlayer.addEventListener(MediaErrorEvent.MEDIA_ERROR, onMediaError);
203+
mediaPlayer.addEventListener(DynamicStreamEvent.SWITCHING_CHANGE, onLevelSwitching);
203204

204-
mediaElement = mediaFactory.createMediaElement(urlResource);
205-
mediaElement.addEventListener(MediaElementEvent.TRAIT_ADD, onTraitAdd);
205+
mediaElement = mediaFactory.createMediaElement(urlResource);
206+
mediaElement.addEventListener(MediaElementEvent.TRAIT_ADD, onTraitAdd);
206207

207-
mediaContainer.addMediaElement(mediaElement);
208+
mediaContainer.addMediaElement(mediaElement);
208209

209-
mediaPlayer.media = mediaElement;
210+
mediaPlayer.media = mediaElement;
210211

211-
//Set the player scaling
212-
playerScaling(this.root.loaderInfo.parameters.scaling);
212+
//Set the player scaling
213+
playerScaling(this.root.loaderInfo.parameters.scaling);
213214

214-
addChild(mediaContainer);
215-
resize();
215+
addChild(mediaContainer);
216+
resize();
216217

217-
playbackState = "PLAYING_BUFFERING";
218+
playbackState = "PLAYING_BUFFERING";
219+
_triggerEvent('statechanged');
220+
_triggerEvent('playbackready');
221+
} else {
222+
mediaPlayer.play();
223+
}
224+
} catch {
225+
playbackState = "ERROR";
218226
_triggerEvent('statechanged');
219-
_triggerEvent('playbackready');
220-
} else {
221-
mediaPlayer.play();
222227
}
223228
}
224229

src/main.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,8 @@ export default class RTMP extends Flash {
170170

171171
if (this.el.getState() === "PLAYING") {
172172
this.trigger(Events.PLAYBACK_PLAY, this.name)
173+
} else if (this.el.getState() === "ERROR") {
174+
this.trigger(Events.PLAYBACK_ERROR, this.name)
173175
}
174176
}
175177

0 commit comments

Comments
 (0)