From 4ba7d6fbfa654bf0ef6b4b18e70616419b78447c Mon Sep 17 00:00:00 2001 From: Neil Rackett Date: Tue, 8 Mar 2016 15:38:00 +0000 Subject: [PATCH 1/3] Updated DashPlugin.as to enable playback of non-DASH content with DASH.as plugin loaded --- .../actionscript/com/castlabs/dash/DashPlugin.as | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/actionscript/com/castlabs/dash/DashPlugin.as b/src/main/actionscript/com/castlabs/dash/DashPlugin.as index 8a55730..a3f5448 100644 --- a/src/main/actionscript/com/castlabs/dash/DashPlugin.as +++ b/src/main/actionscript/com/castlabs/dash/DashPlugin.as @@ -13,6 +13,7 @@ import org.osmf.elements.VideoElement; import org.osmf.media.MediaElement; import org.osmf.media.MediaResourceBase; import org.osmf.media.PluginInfo; +import org.osmf.media.URLResource; public class DashPlugin extends Sprite { private var _pluginInfo:PluginInfo; @@ -32,9 +33,20 @@ public class DashPlugin extends Sprite { } public static function canHandleResource(resource:MediaResourceBase):Boolean { - return true; + + var urlResource:URLResource = resource as URLResource; + + if (!urlResource || !urlResource.url) + { + return false; + } + + var url:String = urlResource.url.toLowerCase(); + + return url.indexOf('.mpd') != -1 + || url.indexOf('.dash') != -1; } - + public static function mediaElementCreationFunction():MediaElement { return new VideoElement(null, DashContext.getInstance().dashNetLoader); } From 6c17146eac8ce52452f4eb730184ea422f453476 Mon Sep 17 00:00:00 2001 From: Neil Rackett Date: Tue, 8 Mar 2016 18:04:35 +0000 Subject: [PATCH 2/3] Updated .gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index dd6df92..a9f2a7d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,9 +4,12 @@ bin-debug/ # Flash Builder +.settings .flexProperties +.flexLibProperties .actionScriptProperties .project +bin # Maven target/ @@ -23,4 +26,3 @@ rsync.sh rsync_vanilla.sh libs/ Flash Player Debugger.app/ - From 9c787f18bb009893d0d53bdab19fb0e240b10a46 Mon Sep 17 00:00:00 2001 From: Neil Rackett Date: Wed, 9 Mar 2016 13:40:32 +0000 Subject: [PATCH 3/3] Switch extension detection to regex --- .../com/castlabs/dash/DashPlugin.as | 109 +++++++++--------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/src/main/actionscript/com/castlabs/dash/DashPlugin.as b/src/main/actionscript/com/castlabs/dash/DashPlugin.as index a3f5448..e37531b 100644 --- a/src/main/actionscript/com/castlabs/dash/DashPlugin.as +++ b/src/main/actionscript/com/castlabs/dash/DashPlugin.as @@ -1,54 +1,55 @@ -/* - * Copyright (c) 2014 castLabs GmbH - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -package com.castlabs.dash { -import flash.display.Sprite; - -import org.osmf.elements.VideoElement; -import org.osmf.media.MediaElement; -import org.osmf.media.MediaResourceBase; -import org.osmf.media.PluginInfo; -import org.osmf.media.URLResource; - -public class DashPlugin extends Sprite { - private var _pluginInfo:PluginInfo; - - public function DashPlugin() { - super(); - - if (this.root.loaderInfo.parameters.log == "true") { - DashContext.getInstance().console.enable(); - } - - _pluginInfo = new DashPluginInfo(); - } - - public function get pluginInfo():PluginInfo { - return _pluginInfo; - } - - public static function canHandleResource(resource:MediaResourceBase):Boolean { - - var urlResource:URLResource = resource as URLResource; - - if (!urlResource || !urlResource.url) - { - return false; - } - - var url:String = urlResource.url.toLowerCase(); - - return url.indexOf('.mpd') != -1 - || url.indexOf('.dash') != -1; - } - - public static function mediaElementCreationFunction():MediaElement { - return new VideoElement(null, DashContext.getInstance().dashNetLoader); - } -} -} +/* + * Copyright (c) 2014 castLabs GmbH + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package com.castlabs.dash { +import flash.display.Sprite; + +import org.osmf.elements.VideoElement; +import org.osmf.media.MediaElement; +import org.osmf.media.MediaResourceBase; +import org.osmf.media.PluginInfo; +import org.osmf.media.URLResource; + +public class DashPlugin extends Sprite { + private var _pluginInfo:PluginInfo; + + public function DashPlugin() { + super(); + + if (this.root.loaderInfo.parameters.log == "true") { + DashContext.getInstance().console.enable(); + } + + _pluginInfo = new DashPluginInfo(); + } + + public function get pluginInfo():PluginInfo { + return _pluginInfo; + } + + public static function canHandleResource(resource:MediaResourceBase):Boolean { + + var urlResource:URLResource = resource as URLResource; + + if (!urlResource || !urlResource.url) + { + return false; + } + + var url:String = urlResource.url; + + return /\.mpd/i.test(url) + || /\.dash/i.test(url) + ; + } + + public static function mediaElementCreationFunction():MediaElement { + return new VideoElement(null, DashContext.getInstance().dashNetLoader); + } +} +}