VLC Embed for MAC and Linux

All you've ever wanted to know about the ActiveX, Mozilla plugins, the web interface and various PHP extensions
DjBS
New Cone
New Cone
Posts: 5
Joined: 30 Aug 2010 02:39

VLC Embed for MAC and Linux

Postby DjBS » 18 May 2012 17:46

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?

DjBS
New Cone
New Cone
Posts: 5
Joined: 30 Aug 2010 02:39

Re: VLC Embed for MAC and Linux

Postby DjBS » 22 May 2012 19:42

Please... help me :(

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: VLC Embed for MAC and Linux

Postby Jean-Baptiste Kempf » 23 May 2012 15:03

What happens on mac?
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.


Return to “Web and scripting”

Who is online

Users browsing this forum: No registered users and 7 guests