JSON Playlist - What is wrong? (Projekktor Core)

by Stoyicker @, Tuesday, August 07, 2012, 17:46 (290 days ago) @ sascha
edited by Stoyicker, Tuesday, August 07, 2012, 20:03

Thanks sascha. Anyway, since I did the post I've been working on a system for parsing the file and creating a JSON object to be used as playlist target, and I'll post it here when it's finished for public usage.

Here it is:

<!DOCTYPE HTML>
<html>
<head>
<title>Aron Multimedia</title>
<link rel="stylesheet" href="theme/style.css" type="text/css" media="screen" />

<script type="text/javascript" src="libs/jquery.min.js"></script>
<script type="text/javascript" src="libs/projekktor.min.js"></script>
<script type="text/javascript" src="libs/xml2json.js"></script>
</head>
<body>

<video id="player_a" class="projekktor fullscreen pphttp" title="Aron Multimedia" width="640" height="360" preload="auto" autoplay></video>

<script type="text/javascript">
$(document).ready(function() {
	player = projekktor('#player_a', {
	volume: 1,
	enableFullscreen: true,
	continuous: true,
	disablePause: true,
	disallowSkip: true,
	playlist: loadJsonPlaylist()
	}
});

function loadJsonPlaylist() 
{
 var xmlDoc;
 var jsonPlaylist;

if (window.XMLHttpRequest){
	xmlDoc = new window.XMLHttpRequest();
	xmlDoc.open("GET", 'playlist.xml', false);
   	xmlDoc.send("");
	jsonPlaylist = xmlToJson(xmlDoc.responseXML);
} else if (ActiveXObject("Microsoft.XMLDOM")){
	xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	xmlDoc.async = false;
	xmlDoc.load('playlist.xml');
	jsonPlaylist = xmlToJson(xmlDoc);
}
if(window.XMLHttpRequest || ActiveXObject("Microsoft.XMLDOM")){
	var str1 = JSON.stringify(jsonPlaylist);
	var str2 = str1.replace(/{(.*?)\[{"0":{"src"/,'[{"0":{"src"');
	var cut = str2.substring(0,str2.length-2);
	var ret = JSON.parse(cut);
	return ret;
}
alert("Error while loading the playlist.xml file.");
return null;
}

function xmlToJson(xml){
var attr, child, attrs = xml.attributes, children = xml.childNodes, key = xml.nodeType, obj = {}, i = -1, o=0;
if (key == 1 && attrs.length){
	obj[key = o] = {};
	while (attr = attrs.item(++i)){
		obj[key][attr.nodeName] = attr.nodeValue;
	}
	i = -1;
} else if (key == 3){
	obj = xml.nodeValue;
} 
while (child = children.item(++i)){
	key = child.nodeName;
	if (obj.hasOwnProperty(key)){
		if (obj.toString.call(obj[key])!='[object Array]') {
			obj[key] = [obj[key]];
		}
		obj[key].push(xmlToJson(child));
	} else{
		obj[key] = xmlToJson(child);
	}
}
return obj;
}

</script> 


</body>
</html>
  759 views

Complete thread:

 RSS Feed of thread