Page 1 of 1

VLC Embed for MAC and Linux

Posted: 18 May 2012 17:46
by DjBS
Hi :-)
Im using this code:

Code: Select all

<div id="vlccontents"><font color="FF0000"><b>To watching this channel you need VLC Player. You can download id from <a href="'.$vlcurl.'" target="_blank">HERE</a></b></font></div> <script type="text/javascript"> var so = new VLCObject("vlc", "645", "363"); so.addParam("MRL","'.$tv['url'].'"); so.write("vlccontents"); </script> <script type="text/javascript"> function play() { var vlc = document.getElementById("vlc"); //alert(vlc.playlist); vlc.playlist.add("'.$tv['url'].'", null, Array()); vlc.playlist.play(); } </script> <script type="text/javascript" src="/js/VLCobject.js"></script>
VLCobject.js

Code: Select all

/** * VLCObject v1.0.0: VLC Plugin detection and embed - http://code.revolunet.com/VLCobject/ * * Based on VLCObject by Geoff Stearns * VLCObject is (c) 2008 Julien Bouquillon - revolunet and is released under the MIT License: * http://www.opensource.org/licenses/mit-license.php * */ if(typeof revolunet == "undefined") var revolunet = {}; if(typeof revolunet.util == "undefined") revolunet.util = {}; if(typeof revolunet.VLCObjectUtil == "undefined") revolunet.VLCObjectUtil = {}; revolunet.VLCObject = function(id, w, h, ver) { if (!document.getElementById) { return; } this.params = {}; this.variables = {}; this.attributes = []; if(id) { this.setAttribute('id', id); } if(w) { this.setAttribute('width', w); } if(h) { this.setAttribute('height', h); } if(ver) { this.setAttribute('version', new revolunet.PlayerVersion(ver.toString().split("."))); } this.installedVer = revolunet.VLCObjectUtil.getPlayerVersion(); if (!window.opera && document.all ) { if (!revolunet.unloadSet) { revolunet.VLCObjectUtil.prepUnload = function() { __vlc_unloadHandler = function(){}; __vlc_savedUnloadHandler = function(){}; window.attachEvent("onunload", revolunet.VLCObjectUtil.cleanupVLCs); } window.attachEvent("onbeforeunload", revolunet.VLCObjectUtil.prepUnload); revolunet.unloadSet = true; } } } revolunet.VLCObject.prototype = { setAttribute: function(name, value){ this.attributes[name] = value; }, getAttribute: function(name){ return this.attributes[name] || ""; }, addParam: function(name, value){ this.params[name] = value; }, getParams: function(){ return this.params; }, getMRL: function(){ return this.getParams()['MRL']; }, setMRL: function(value){ return this.getParams()['MRL'] = value; }, addVariable: function(name, value){ this.variables[name] = value; }, getVariable: function(name){ return this.variables[name] || ""; }, getVariables: function(){ return this.variables; }, getVariablePairs: function(){ var variablePairs = []; var key; var variables = this.getVariables(); for(key in variables){ variablePairs[variablePairs.length] = key +"="+ variables[key]; } return variablePairs; }, getVLCHTML: function() { var vlcNode = ""; if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture vlcNode = '<embed type="application/x-vlc-plugin" " pluginspage="http://www.videolan.org" version="VideoLAN.VLCPlugin.2" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ (this.getAttribute('style') || "") +'"'; vlcNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" '; var params = this.getParams(); for(var key in params){ vlcNode += [key] +'="'+ params[key] +'" '; } var pairs = this.getVariablePairs().join("&"); vlcNode += '/>'; } else { // PC IE vlcNode = '<object id="'+ this.getAttribute('id') +'" codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab" classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ (this.getAttribute('style') || "") +'">'; var params = this.getParams(); for(var key in params) { vlcNode += '<param name="'+ key +'" value="'+ params[key] +'" />'; } vlcNode += " /object>"; } return vlcNode; }, write: function(elementId){ if(this.installedVer.versionIsValid(this.getAttribute('version'))){ var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId; n.innerHTML = this.getVLCHTML(); //trick for IE activex if (document.all) { var vlc = n.firstChild; vlc.style.width = this.attributes["width"]+"px"; vlc.style.height= this.attributes["height"]+"px"; } return true; }else{ var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId; n.innerHTML = "<div style='width:400px;border:2px solid red;padding:10px'>Your VLC plugin has not been detected !<br><br>please go to <a href='http://www.videolan.org' target='_blank'>http://www.videolan.org</a> to download your plugin.</div>"; } return false; } } /* ---- detection functions ---- */ revolunet.VLCObjectUtil.getPlayerVersion = function(){ var PlayerVersion = new revolunet.PlayerVersion([0,0,0]); if(navigator.plugins && navigator.mimeTypes.length){ var x = navigator.plugins["VLC Multimedia Plug-in"]; if(!x) { // test with "old" plugin name x = navigator.plugins["VLC Multimedia Plugin"]; } if(!x) { // 0.8.6a at least x = navigator.plugins["VLC multimedia plugin"]; } if(x && x.description) { PlayerVersion = x.description.substring(0, x.description.indexOf(",")); PlayerVersion = PlayerVersion.replace("Version ", ""); PlayerVersion = new revolunet.PlayerVersion(PlayerVersion.split(".")); } } else { // Win IE try{ var axo = new ActiveXObject("VideoLAN.VLCPlugin.2"); PlayerVersion = new revolunet.PlayerVersion([0,8,6]); }catch(e){ try { var axo = new ActiveXObject("VideoLAN.VLCPlugin.1"); PlayerVersion = new revolunet.PlayerVersion([0,8,5]); } catch(e) { } } if (axo != null) { //PlayerVersion = axo.VersionInfo; } } return PlayerVersion; } revolunet.PlayerVersion = function(arrVersion){ this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0; this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0; this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0; } revolunet.PlayerVersion.prototype.versionIsValid = function(fv){ if(this.major < fv.major) return false; if(this.major > fv.major) return true; if(this.minor < fv.minor) return false; if(this.minor > fv.minor) return true; if(this.rev < fv.rev) return false; return true; } /* ---- get value of query string param ---- */ revolunet.util = { getRequestParameter: function(param) { var q = document.location.search || document.location.hash; if (param == null) { return q; } if(q) { var pairs = q.substring(1).split("&"); for (var i=0; i < pairs.length; i++) { if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) { return pairs[i].substring((pairs[i].indexOf("=")+1)); } } } return ""; } } revolunet.VLCObjectUtil.cleanupVLCs = function() { var objects = document.getElementsByTagName("OBJECT"); for (var i = objects.length - 1; i >= 0; i--) { objects[i].style.display = 'none'; for (var x in objects[i]) { if (typeof objects[i][x] == 'function') { objects[i][x] = function(){}; } } } } /* add document.getElementById if needed (mobile IE < 5) */ if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }} /* add some aliases for ease of use/backwards compatibility */ var getQueryParamValue = revolunet.util.getRequestParameter; var VLCObject = revolunet.VLCObject;
So that my code.. and it works very good in WINDOWS... but not in MacOSX ...
So Does anyone know how to make this embed player work with MacOSX and also Linux?

Re: VLC Embed for MAC and Linux

Posted: 22 May 2012 19:42
by DjBS
Please... help me :(

Re: VLC Embed for MAC and Linux

Posted: 23 May 2012 15:03
by Jean-Baptiste Kempf
What happens on mac?