From a435de089da4dd37c3c183f633a49107c720dd95 Mon Sep 17 00:00:00 2001 From: Dalyn Cessac Date: Wed, 16 Mar 2011 11:06:40 -0500 Subject: Added phpvideotoolkit transcoder and updates to the preset ui --- .../examples/common/pluginobject/plugins/divx.js | 76 ++++++++ .../examples/common/pluginobject/plugins/flash.js | 191 +++++++++++++++++++++ .../pluginobject/plugins/flash/expressInstall.swf | Bin 0 -> 773 bytes .../common/pluginobject/plugins/flashmedia.js | 136 +++++++++++++++ .../common/pluginobject/plugins/quicktime.js | 112 ++++++++++++ .../common/pluginobject/plugins/realplayer.js | 85 +++++++++ .../common/pluginobject/plugins/shockwave.js | 42 +++++ .../pluginobject/plugins/windowsmediaplayer.js | 119 +++++++++++++ 8 files changed, 761 insertions(+) create mode 100644 libraries/phpvideotoolkit/examples/common/pluginobject/plugins/divx.js create mode 100644 libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flash.js create mode 100644 libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flash/expressInstall.swf create mode 100644 libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flashmedia.js create mode 100644 libraries/phpvideotoolkit/examples/common/pluginobject/plugins/quicktime.js create mode 100644 libraries/phpvideotoolkit/examples/common/pluginobject/plugins/realplayer.js create mode 100644 libraries/phpvideotoolkit/examples/common/pluginobject/plugins/shockwave.js create mode 100644 libraries/phpvideotoolkit/examples/common/pluginobject/plugins/windowsmediaplayer.js (limited to 'libraries/phpvideotoolkit/examples/common/pluginobject/plugins') diff --git a/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/divx.js b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/divx.js new file mode 100644 index 0000000..7e1bd3a --- /dev/null +++ b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/divx.js @@ -0,0 +1,76 @@ +PO.L.DivX = { + + options: { + upgrade_url : 'http://go.divx.com/plugin/download/', + class_id : 'clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616', + codebase : 'http://go.divx.com/plugin/DivXBrowserPlugin.cab', + mime_type : 'video/divx' + }, + +// scripting sdk avaiable here +// http://download.divx.com/player/DivXWebPlayer_WebmasterSDK.zip + params: { +// mode : null, // null, zero, mini, large, full +// minVersion : '0.0.0', +// allowContextMenu : true, +// autoPlay : false, +// loop : false, +// bannerEnabled : false, +// bufferingMode : 'auto', // null, auto, full +// previewImage : null, +// previewMessage : '', +// previewMessageFontSize : 12, +// movieTitle : null + }, + attributes: {}, + + create: function(src, o, p) + { + o = PO.U.merge(o, PO.L.DivX.options); + + o.params = PO.U.merge(o.params || {}, PO.L.DivX.params); + o.attributes = PO.U.merge(o.attributes || {}, PO.L.DivX.attributes); + + if(o.placeholder && o.placeholder_autoplay) o.params.autoPlay = true; + + return new ObjectEmbed(src, o, PO.L.DivX, p); + }, + + _installed_version: false, + detectVersion: function(o, rv) + { +// this code is lifted/adapted from http://includes.stage6.com/javascript/divx_plugin.js?v4 + if(PO.L.DivX._installed_version) return PO.L.DivX._installed_version; + var pv = new PO.U.PlayerVersion([0,0,0]); + if(navigator.plugins && navigator.mimeTypes["application/x-mplayer2"] && navigator.mimeTypes["application/x-mplayer2"].enabledPlugin) + { + navigator.plugins.refresh(false); // not entirley sure this is neccesary? + var rc = new RegExp('divx.*?((web)|(browser))', 'i'); + for (var i=0; i < navigator.plugins.length; i++) + { + var x = navigator.plugins[i]; + if (rc.text(x.name)) + { + var a = x.description.indexOf('version '), v = '1.0.0'; + if (a != -1) v = x.description.substring(a + 8); + pv = new PO.U.PlayerVersion(v.split('.')); + break; + } + } + } + else + { + var dp = false, dpv = false; + execScript('on error resume next: dp = IsObject(CreateObject("npdivx.DivXBrowserPlugin.1"))', 'VBScript'); + if(dp) + { + execScript('on error resume next: dpv = CreateObject("npdivx.DivXBrowserPlugin.1").GetVersion()', 'VBScript'); + pv = new PO.U.PlayerVersion(dpv.split('.')); + } + } + PO.L.DivX._installed_version = pv; + return pv; + } + +}; +PO.Plugins.DivX.loaded = 1; \ No newline at end of file diff --git a/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flash.js b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flash.js new file mode 100644 index 0000000..cdfc97a --- /dev/null +++ b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flash.js @@ -0,0 +1,191 @@ +PO.M.Debug.OnExpressInstall = 'PluginObject: Flash Player version "%ver%" is outdated. Version "%verreq%" is required. Running express install.'; +PO.L.Flash = { + + options: { + upgrade_url : 'http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash', + class_id : 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000', + codebase : 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0', + mime_type : 'application/x-shockwave-flash', + quality : 'high', + bgcolor : null, + bgcolour : null, + use_express_install : false, + do_express_install : false, + express_install_swf : 'plugins/flash/expressinstall.swf' + }, + + variables: {}, // these are flashvars + +// best docs +// http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_12701 + params: { +// swliveconnect : false, +// play : true, +// loop : false, +// menu : true, +// quality : 'high', +// scale : 'showall', +// align : null, +// salign : 'tl', +// wmode : 'window', +// bgcolor : null, +// base : '' + }, + attributes: {}, + + create: function(src, o, p) + { + o = PO.U.merge(o, PO.L.Flash.options); + + o.params = PO.U.merge(o.params || {}, PO.L.Flash.params); + o.variables = PO.U.merge(o.variables || {}, PO.L.Flash.variables); + o.attributes = PO.U.merge(o.attributes || {}, PO.L.Flash.attributes); + + if(o.do_express_install) + { + o.params.MMplayerType = PO.U.Browser.IE ? 'Active-X' : 'Plugin'; + if(PO.U.Browser.IE) + { + o.params.wmode = 'transparent'; +// to complete <------------------------------------------------------------------------------ + } + } + + var v = []; + for(var a in o.variables) + { + v.push(a+'='+escape(o.variables[a])); + } + if(v.length) o.params.flashvars = v.join('&'); + + if(!o.params.bgcolor) + { + var bg = o.bgcolour ? o.bgcolour : (o.bgcolor ? o.bgcolor : false); + if(bg) o.params.bgcolor = bg; + } + o.params.quality = o.quality; + + return new PO.ObjectEmbed(src, o, PO.L.Flash, p); + }, + + _express_install_active: false, + _installed_version: false, + detectVersion: function(o, rv) + { +// most of this is lifted/adapted directly from swfobject methods +// SWFObject v2.0 rc1 +// Copyright (c) 2007 Geoff Stearns, Michael Williams, and Bobby van der Sluis + if(PO.L.Flash._installed_version) return PO.L.Flash._installed_version; + var pv = new PO.U.PlayerVersion([0, 0, 0]), ma, mi, rev, d, pva; + if (typeof navigator.plugins != 'undefined' && typeof navigator.plugins['Shockwave Flash'] == 'object') + { + d = navigator.plugins['Shockwave Flash'].description; + if (d) + { + d = d.replace(/^.*\s+(\S+\s+\S+$)/, '$1'); + ma = parseInt(d.replace(/^(.*)\..*$/, '$1'), 10); + min = parseInt(d.replace(/^.*\.(.*)\s.*$/, '$1'), 10); + rev = /r/.test(d) ? parseInt(d.replace(/^.*r(.*)$/, '$1'), 10) : 0; + pv = new PO.U.PlayerVersion([ma, mi, rev]); + } + } + else if (typeof window.ActiveXObject != 'undefined') + { + var a = null, fp6_crash = false; + try + { + a = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.7'); + } + catch(e) + { + try + { + a = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6'); + pva = [6,0,21]; + a.AllowScriptAccess = 'always'; // Introduced in fp6.0.47 + } + catch(e) + { + if (pva[0] == 6) + { + fp6_crash = true; + } + } + if (!fp6_crash) + { + try + { + a = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); + } + catch(e) {} + } + } + if (!fp6_crash && typeof a == 'object') + { + try + { + d = a.GetVariable('$version'); + if (d) + { + d = d.split(' ')[1].split(','); + pva = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; + } + } + catch(e) {} + } + pv = new PO.U.PlayerVersion(pva); + } + PO.L.Flash._installed_version = pv; + + if(pv.ma == 8 && PO.U.Platform.Win) + { +// again copied/adapted from swfobject, see credits above + window.attachEvent('onunload', function () + { + var o = document.getElementsByTagName('object'); + if (o) + { + var ol = o.length; + for (var i = 0; i < ol; i++) + { + o[i].style.display = 'none'; + for (var x in o[i]) + { + if (typeof o[i][x] == 'function') o[i][x] = function() {}; + } + } + } + }); + } + if(!pv.validate(rv) && o.use_express_install && pv.validate(new PO.U.PlayerVersion([6,0,65])) && (PO.U.Platform.Win || PO.U.Platform.Apple)) + { +// again copied/adapted from swfobject, see credits above + PO.L.Flash._express_install_active = true; + PO.M.call(PO.M.Debug.OnExpressInstall, {ver:pv.toString(), verreq:rv.toString()}, 'd'); +// if(!o.force_into_id) +// { +// h = '
'+h+'
'; +// } + return -1; + } + return pv; + }, + + expressInstallCallback: function() + { +// again copied/adapted from swfobject, see credits above + if (PO.L.Flash._express_install_active && storedAltContent) + { + var obj = document.getElementById('SWFObjectExprInst'); + if (obj) + { + obj.parentNode.replaceChild(storedAltContent, obj); + storedAltContent = null; + PO.L.Flash._express_install_active = false; + } + } + } +}; +// for use with the swfobject express install so simple swaps can be made. +swfobject = { expressInstallCallback: PO.Plugins.Flash.expressInstallCallback }; +PO.Plugins.Flash.loaded = 1; diff --git a/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flash/expressInstall.swf b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flash/expressInstall.swf new file mode 100644 index 0000000..86958bf Binary files /dev/null and b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flash/expressInstall.swf differ diff --git a/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flashmedia.js b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flashmedia.js new file mode 100644 index 0000000..ceb9043 --- /dev/null +++ b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/flashmedia.js @@ -0,0 +1,136 @@ +// uses http://www.jeroenwijering.com/?item=JW_FLV_Media_Player +PO.L.FlashMedia = { + + options:{ + player : 'plugins/flash/mediaplayer.swf', + auto_fix_path : true, // fixes the src path so it is treated as relative to the html document. only applies if the src url doesn't contain http at the start of the url + auto_adjust_height : true, // auto adjust the display height so the video fits correctly and if a playlist is used so does that. + use_type_mapping : true // automagically maps file extensions to specifc types. + }, +// for more information on the variables you should use this page http://code.longtailvideo.com/trac/wiki/FlashVars#Fileproperties +// these variables are for v4 of the jw player and above + variables : { +// General + config : null, // (undefined): location of a XML file with flashvars. Useful for short embed codes or CDN stream redirecting. example. +// File properties + author : null, // (undefined): author of the video, shown in the display or playlist. + captions : null, // (undefined): location of a TT captions XML file. + description : null, // (undefined): text description of the file. + duration : 0, // (0): duration of the file in seconds. + file : null, // (undefined): location of the mediafile or playlist to play. + image : null, // (undefined): location of a preview image; shown in display and playlist. + link : null, // (undefined): url to an external page the display, controlbar and playlist can link to. + start : 0, // (0): position in seconds where playback has to start. + title : null, // (undefined): title of the video, shown in the display or playlist. + type : null, // (undefined): type of file, can be sound, image, video, youtube, camera, http or rtmp. Use this to override auto-detection. +// Colors + backcolor : 'FFFFFF', // (FFFFFF): background color of the controlbar and playlist. + frontcolor : '000000', // (000000): color of all icons and texts in the controlbar and playlist. + lightcolor : '000000', // (000000): color of an icon or text when you rollover it with the mouse. + screencolor : '000000', // (000000): background color of the display. +// Layout + controlbar : 'bottom', // (bottom): position of the controlbar. Can be set to bottom, over and none. + controlbarsize : 20, // (20): height of the controlbar in pixels. + height : 400, // (400): height of the display (not the entire player!) in pixels. + logo : null, // (undefined): location of an external jpg,png or gif image to show in the display. + playlist : 'none', // (none): position of the playlist. Can be set to bottom, over, right or none. + playlistsize : 180, // (180): size of the playlist. When below or above, this refers to the height, when right, this refers to the width of the playlist. + skin : null, // (undefined): location of a SWF file with the player graphics. + width : 280, // (280): width of the display (not the entire player!) in pixels. +// Playback + autostart : false, // (false): automatically start the player on load. + bufferlength : 0.1, // (0.1): number of seconds of the file that has to be loaded before starting. + displayclick : 'play', // (play): what to do when one clicks the display. Can be play, link, fullscreen, none, mute, next. + item : 0, // (0): playlistitem that should start to play. Use this to set a specific start-item. + mute : false, // (false): mute all sounds on startup. Is saved as cookie. + quality : true, // (true): enables high-quality playback. This sets the smoothing of videos on/off, the deblocking of videos on/off and the dimensions of the camera small/large. Is saved as cookie. + repeat : 'none', // (none): set to list to play the entire playlist once and to always to continously play the song/video/playlist. + shuffle : false, // (false): shuffle playback of playlistitems. + state : 'IDLE', // (IDLE): current playback state of the player (IDLE, BUFFERING, PLAYING, PAUSED, COMPLETED). + stretching : 'uniform',// (uniform): defines how to resize images in the display. Can be none (no stretching), exactfit (disproportionate), uniform (stretch with black borders) or fill (uniform, but completely fill the display). + volume : 90, // (90): startup volume of the player. Is saved as cookie. +// External + abouttext : null, // (undefined): text to show in the rightclick menu. Please do not change this if you don't have a commercial license! When undefined it shows the player version. + aboutlink : 'http://www.jeroenwijering.com/?page=about', // (http://www.jeroenwijering.com/?page=about): url to link to from the rightclick menu. Do not change this if you don't have a commercial license! + client : null, // (Flash MAC X,0,XXX,0): Version and platform of the Flash client plugin. Useful to check for e.g. MP4 playback or fullscreen capabilities. + id : 'ply', // (ply): ID of the player within the javascript DOM. Useful for javascript interaction. + linktarget : '_blank', // (_blank): browserframe where the links from display are opened in. Some possibilities are '_self' (same frame) , '_blank' (new browserwindow) or 'none' (links are ignored in the player, so javascript can handle it). + streamer : null, // (undefined): location of a server to use for streaming. Can be an RTMP application (here's an example) or external PHP/ASP file to use for HTTP streaming. If set to lighttpd, the player presumes a Lighttpd server is used to stream videos. + tracecall : null // (undefined): name of a javascript function that can be used for tracing the player activity. All events from the view, model and controller are sent there. + + }, + params: { + allowfullscreen:true + }, + attributes: {}, + typemap:{ + ut : 'youtube', + youtube : 'youtube', + tube : 'youtube', + mp3 : 'sound', + m4a : 'sound', + m4b : 'sound', + m4p : 'sound', + m4v : 'sound', + m4r : 'sound', + aac : 'sound', + '3gp' : 'video', + mp4 : 'video', + flv : 'video', + swf : 'video', + jpg : 'image', + jpeg: 'image', + gif : 'image', + png : 'image', + mpg : 'video', + mpeg: 'video' + }, + + create: function(src, o, p) + { + var fo = PO.U.merge(PO.L.Flash.options, PO.L.FlashMedia.options), h = document.location.href; + o = PO.U.merge(o, fo); + if(o.auto_fix_path && src.indexOf('http') === -1) + { + src = h.substr(0, h.lastIndexOf('/')+1) + src; + } + + var fa = PO.U.merge(PO.L.Flash.attributes, PO.L.FlashMedia.attributes); + o.attributes = PO.U.merge(o.attributes || {}, fa); + + var fv = PO.U.merge(PO.L.Flash.variables, PO.L.FlashMedia.variables); + o.variables = PO.U.merge(o.variables || {}, fv); + o.variables.file = src; + if(!o.variables.width) o.variables.width = o.width; + if(!o.variables.height) o.variables.height = o.height; + if(o.auto_adjust_height) + { + o.height += o.variables.controlbarsize; + if(o.variables.playlist !== 'none') + { + o.height += o.variables.playlistsize; + } + } + + if(o.use_type_mapping && o.variables.type === null) + { + var e = src.split('.').pop().toLowerCase(); + if(PO.L.FlashMedia.typemap[e]) o.variables.type = PO.L.FlashMedia.typemap[e]; + } + for(var a in o.variables) + { + if(o.variables[a] === null) delete o.variables[a]; + } + + var fp = PO.U.merge(PO.L.Flash.params, PO.L.FlashMedia.params); + o.params = PO.U.merge(o.params || {}, PO.L.FlashMedia.params); + o.bgcolour = o.variables.backcolor; + + if(!o.variables.id) o.variables.id = o.force_id ? o.force_id : 'PluginObject-'+PO.U.hash(8)+'-'+(new Date()).getTime(); + + if(o.placeholder && o.placeholder_autoplay) o.variables.autostart = true; + + return PO.L.Flash.create(o.player, o, PO.Plugins.Flash, p); + } +}; +PO.Plugins.FlashMedia.loaded = 1; \ No newline at end of file diff --git a/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/quicktime.js b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/quicktime.js new file mode 100644 index 0000000..a54f66f --- /dev/null +++ b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/quicktime.js @@ -0,0 +1,112 @@ +PO.L.Quicktime = { + + options: { + upgrade_url : 'http://www.apple.com/quicktime/download/', + class_id : 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B', + codebase : 'http://www.apple.com/qtactivex/qtplugin.cab', + mime_type : 'video/quicktime', + auto_adjust_height : true, + bgcolor : null, + bgcolour : null + }, + +// best info +// http://developer.apple.com/documentation/QuickTime/Conceptual/QTScripting_HTML/QTScripting_HTML_Document/chapter_1000_section_5.html#//apple_ref/doc/uid/TP40001525-2-QuickTimeltEMBEDgtandltOBJECTgtParameters + params: { +// allowembedtagoverrides : true, +// autohref : false, +// autoplay : false, +// bgcolor : '#ffffff', +// controller : true, +// correction : 'none', +// dontflattenwhensaving : true, +// enablehref : false, +// enablejavascript : false, +// endtime : null, +// fov : 0, +// goto : null, +// // hotspotn : null, +// href : null, +// kioskmode : true, +// loop : false, +// movieid : null, +// moviename : null, +// movieqtlist : null, +// node : null, +// pan : 0, +// playeveryframe : false, +// qtnext : null, +// qtsrc : null, +// // url : null, +// qtsrcchokespeed : null, +// qtsrcdontusebrowser : false, +// saveembedtags : true, +// scale : 'tofit', +// showlogo : true, +// starttime : null, +// target : 'myself', +// targetcache : true, +// tilt : 0, +// urlsubstitute : '', +// volume : 60 + }, + attributes: {}, + + create: function(src, o, p) + { + o = PO.U.merge(o, PO.L.Quicktime.options); + + o.params = PO.U.merge(o.params || {}, PO.L.Quicktime.params); + o.attributes = PO.U.merge(o.attributes || {}, PO.L.Quicktime.attributes); + + var e = src.split('.').pop().toLowerCase(); + if(e != 'mp3' && o.auto_adjust_height && (typeof o.params.controller == 'undefined' || o.params.controller)) + { + o.height += 16; + } + + var bg = o.bgcolour ? o.bgcolour : (o.bgcolor ? o.bgcolor : false); + if(bg) o.params.bgcolor = bg; + + if(o.placeholder && o.placeholder_autoplay) o.params.autoplay = true; + + return new PO.ObjectEmbed(src, o, PO.L.Quicktime, p); + }, + + _installed_version: false, + detectVersion: function(o, rv) + { + if(PO.L.Quicktime._installed_version) return PO.L.Quicktime._installed_version; + var pv = new PO.U.PlayerVersion([0, 0, 0]); + if(navigator.plugins && navigator.mimeTypes.length) + { + for (var i=0; i < navigator.plugins.length; i++) + { + var x = navigator.plugins[i]; + if (x.name.indexOf("QuickTime") > -1) + { + pv = new PO.U.PlayerVersion(x.name.replace(/([a-z]|[A-Z]|-|\s)+/, '').split('.')); + break; + } + } + } + else + { + pv = new PO.U.PlayerVersion([1,0,0]); + try + { + var axo = new ActiveXObject("QuickTimeCheckObject.QuickTimeCheck.1"); + if (axo.QuickTimeVersion) + { +// get the leading 3 hex digits + var v = axo.QuickTimeVersion >> 16; + pv = new PO.U.PlayerVersion([(v & 0xf00) >> 8, (v & 0x0f0) >> 4, v & 0x00f]); + } + } + catch(e) {} + } + PO.L.Quicktime._installed_version = pv; + return pv; + } +}; +PO.Plugins.Quicktime.loaded = 1; diff --git a/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/realplayer.js b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/realplayer.js new file mode 100644 index 0000000..c638210 --- /dev/null +++ b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/realplayer.js @@ -0,0 +1,85 @@ +PO.L.RealPlayer = { + + options: { + upgrade_url : 'http://www.real.com/', + class_id : 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA', + mime_type : 'audio/x-pn-realaudio-plugin', + bgcolor : null, + bgcolour : null + }, + +// best info available +// http://www.w3schools.com/media/media_realvideo.asp + params: { +// backgroundcolor : null, +// center : 'true', +// controls : 'All', // see below +// console : null, +// autostart : false, +// nolabels : false, +// reset : false, +// autogotoURL : null + }, + attributes: {}, +/* + All - Displays a full player with all controls. + InfoVolumePanel - Title, author, and copyright and volume slider. + InfoPanel - Title, author, and copyright. + ControlPanel - Position slider, play, pause, and stop buttons. + StatusPanel - Messages, current time position, and clip length. + PlayButton - Play and pause buttons. + StopButton - Stop button. + VolumeSlider - Volume slider. + PositionField - Position and clip length. + StatusField - Messages. + ImageWindow - The video image + StatusBar - Status, position and channels. +*/ + create: function(src, o, p) + { + o = PO.U.merge(o, PO.L.RealPlayer.options); + + o.params = PO.U.merge(o.params || {}, PO.L.RealPlayer.params); + o.attributes = PO.U.merge(o.attributes || {}, PO.L.RealPlayer.attributes); + + var bg = o.params.backgroundcolor ? o.params.backgroundcolor : (o.bgcolour ? o.bgcolour : (o.bgcolor ? o.bgcolor : '#FFFFFF')); + if(bg.charAt(0) != '#' && bg.length == 6) bg = '#' + bg; + o.params.backgroundcolor = bg; + + if(!o.params.console) o.params.console = PO.U.hash(8); + + if(o.placeholder && o.placeholder_autoplay) o.params.autostart = true; + + return new PO.ObjectEmbed(src, o, PO.L.RealPlayer, p); + }, + + _installed_version: false, + detectVersion: function(o, rv) + { + if(PO.L.RealPlayer._installed_version) return PO.L.RealPlayer._installed_version; + var pv = false; + if(navigator.plugins && navigator.mimeTypes.length) + { + for (var i=0; i < navigator.plugins.length; i++) + { + var x = navigator.plugins[i]; + if (x.name.indexOf('RealPlayer') > -1) + { + pv = true; + } + } + } + else + { + execScript('on error resume next: rp1 = IsObject(CreateObject("rmocx.RealPlayer G2 Control"))', 'VBScript'); + execScript('on error resume next: rp2 = IsObject(CreateObject("RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)"))', 'VBScript'); + execScript('on error resume next: rp3 = IsObject(CreateObject("RealVideo.RealVideo(tm) ActiveX Control (32-bit)"))', 'VBScript'); + pv = (rp1 || rp2 || rp3); + } + pv = new PO.U.PlayerVersion([(pv === true) ? 1 : 0, 0, 0]); + PO.L.RealPlayer._installed_version = pv; + return pv; + } + +}; +PO.Plugins.RealPlayer.loaded = 1; diff --git a/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/shockwave.js b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/shockwave.js new file mode 100644 index 0000000..6af0b2e --- /dev/null +++ b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/shockwave.js @@ -0,0 +1,42 @@ +PO.L.Shockwave = { + + options: { + upgrade_url : 'http://www.adobe.com/shockwave/download/', + class_id : 'clsid:166B1BCA-3F9C-11CF-8075-44455354000', + codebase : 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab', + mime_type : 'application/x-director' + }, + + params: {}, + attributes: {}, + + create: function(src, o, p) + { + o = PO.U.merge(o, PO.L.Shockwave.options); + + o.params = PO.U.merge(o.params || {}, PO.L.Shockwave.params); + o.attributes = PO.U.merge(o.attributes || {}, PO.L.Shockwave.attributes); + + return new ObjectEmbed(src, o, PO.L.Shockwave, p); + }, + + _installed_version: false, + detectVersion: function(o, rv) + { + if(PO.L.Shockwave._installed_version) return PO.L.Shockwave._installed_version; + var pv = new PO.U.PlayerVersion([0,0,0]); + if (navigator.mimeTypes && navigator.mimeTypes["application/x-director"]&& navigator.mimeTypes["application/x-director"].enabledPlugin) + { +// http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15722&sliceId=1 +// todo + } + else + { +// todo + } + PO.L.Shockwave._installed_version = pv; + return pv; + } + +}; +PO.Plugins.Shockwave.loaded = 1; \ No newline at end of file diff --git a/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/windowsmediaplayer.js b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/windowsmediaplayer.js new file mode 100644 index 0000000..2abe5c1 --- /dev/null +++ b/libraries/phpvideotoolkit/examples/common/pluginobject/plugins/windowsmediaplayer.js @@ -0,0 +1,119 @@ +PO.L.WindowsMediaPlayer = { + + options: { + upgrade_url : PO.U.Browser.Linux ? 'http://www.videolan.org/vlc/' : (PO.U.Platform.Apple ? 'http://www.flip4mac.com/wmv_download.htm' : 'http://www.microsoft.com/windows/windowsmedia/download/AllDownloads.aspx'), + class_id : 'clsid:22D6f312-B0F6-11D0-94AB-0080C74C7E95', + codebase : 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab', + mime_type : { + 'audio/x-pn-realaudio-plugin' : [] + }, + bgcolor : null, + bgcolour : null + }, + + params: { +// AudioStream : true, +// AutoSize : true, +// AutoStart : true, // Sets if the player should start automatically +// AnimationAtStart : true, // Sets if an animation should show while the file loads +// AllowScan : true, +// AllowChangeDisplaySize : true, +// AutoRewind : false, +// Balance : false, +// BaseURL : null, +// BufferingTime : 5, +// CaptioningID : null, +// ClickToPlay : false, // Sets if the player should start when the user clicks in the play area +// CursorType : false, +// CurrentPosition : true, +// CurrentMarker : false, +// DefaultFrame : null, +// DisplayBackColor : false, +// DisplayForeColor : 16777215, +// DisplayMode : false, +// DisplaySize : false, +// Enabled : true, +// EnableContextMenu : true, +// EnablePositionControls : true, +// EnableFullScreenControls: false, +// EnableTracker : true, +// // Filename : null, // The URL of the file to play +// InvokeURLs : true, +// Language : true, +// Mute : false, +// PlayCount : 1, +// PreviewMode : false, +// Rate : 1, +// SAMILang : null, +// SAMIStyle : null, +// SAMIFileName : null, +// SelectionStart : true, +// SelectionEnd : true, +// SendOpenStateChangeEvents : true, +// SendWarningEvents : true, +// SendErrorEvents : true, +// SendKeyboardEvents : false, +// SendMouseClickEvents : false, +// SendMouseMoveEvents : false, +// SendPlayStateChangeEvents : true, +// ShowCaptioning : false, +// ShowControls : true, // Sets if the player controls should show +// ShowAudioControls : true, // Sets if the audio controls should show +// ShowDisplay : false, // Sets if the display should show +// ShowGotoBar : false, // Sets if the GotoBar should show +// ShowPositionControls : true, +// ShowStatusBar : false, +// ShowTracker : true, +// TransparantAtStart : false, +// VideoBorderWidth : false, +// VideoBorderColor : false, +// VideoBorder3D : false, +// Volume : -200, +// WindowlessVideo : false + }, + attributes: {}, + + create: function(src, o, p) + { + o = PO.U.merge(o, PO.L.WindowsMediaPlayer.options); + + o.params = PO.U.merge(o.params || {}, PO.L.WindowsMediaPlayer.params); + o.attributes = PO.U.merge(o.attributes || {}, PO.L.WindowsMediaPlayer.attributes); + + var bg = o.bgcolour ? o.bgcolour : (o.bgcolor ? o.bgcolor : false); + if(bg) o.params.bgcolor = bg; + + if(o.placeholder && o.placeholder_autoplay) o.params.AutoStart = true; + + return new PO.ObjectEmbed(src, o, PO.L.WindowsMediaPlayer, p); + }, + + _installed_version: false, + detectVersion: function(o, rv) + { + if(PO.L.WindowsMediaPlayer._installed_version) return PO.L.WindowsMediaPlayer._installed_version; + var pv = false,a; + if(navigator.plugins && navigator.plugins.length > 0) + { + np = navigator.plugins; + for (a=0; a < np.length; a++ ) + { + if(np[a].name.indexOf('Windows Media') > -1) + { + pv = true; + break; + } + } + } + else + { + execScript('on error resume next: mp2 = IsObject(CreateObject("MediaPlayer.MediaPlayer.1"))', 'VBScript'); + pv = (mp2); + } + pv = new PO.U.PlayerVersion([(pv === true) ? 1 : 0, 0, 0]); + PO.L.WindowsMediaPlayer._installed_version = pv; + return pv; + } + +}; +PO.Plugins.WindowsMediaPlayer.loaded = 1; -- cgit v1.2.3