VLC Embed for MAC and Linux
Posted: 18 May 2012 17:46
Hi
Im using this code:
VLCobject.js
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?
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>
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 Does anyone know how to make this embed player work with MacOSX and also Linux?