fixed embed, added location placeholder and fixed the embed URLs and preview

This commit is contained in:
Niels Groot Obbink 2012-09-10 21:57:53 +02:00
parent 1691b2189f
commit b52d182f07
3 changed files with 28 additions and 52 deletions

View file

@ -190,7 +190,7 @@
*/ */
function parseURL(url) function parseURL(url)
{ {
var pattern = /(https?)\:\/\/([^:\/]+)\:(\d+)?/; var pattern = /(https?)\:\/\/([^:\/]+)\:(\d+)?/i;
var retobj = {protocol: '', host: '', port: ''}; var retobj = {protocol: '', host: '', port: ''};
var results = url.match(pattern); var results = url.match(pattern);
@ -391,14 +391,3 @@
} }
} }
/*
if(status == 1)
{
$(row.children()[3]).html("<span class='green'>Running</span>");
}
$(row.children()[3]).html("<span class='red'>" + (status == 0 ? 'Offline' : (!status ? 'Unknown, checking...' : status) ) + "</span>");
}
*/

View file

@ -1,12 +1,4 @@
/* WERKLOG todolist
// TODO FIXME remove deze comment als het klaar is
settings.settings.statistics[streamID].log (zelfde als curr maar log = gesloten connecties, dus ex-users
TODO als server het stuurt
*/
/** /**
* Local settings page * Local settings page
* DDVTECH * DDVTECH
@ -102,7 +94,7 @@ TODO als server het stuurt
{ {
case 'login': case 'login':
var host = $('<input>').attr('type', 'text').attr('placeholder', 'HTTP://LOCALHOST:4242'); var host = $('<input>').attr('type', 'text').attr('placeholder', 'HTTP://' + (location.host == '' ? 'localhost:4242' : location.host) + '/api');
var user = $('<input>').attr('type', 'text').attr('placeholder', 'USERNAME'); var user = $('<input>').attr('type', 'text').attr('placeholder', 'USERNAME');
var pass = $('<input>').attr('type', 'password').attr('placeholder', 'PASSWORD'); var pass = $('<input>').attr('type', 'password').attr('placeholder', 'PASSWORD');
var conn = $('<button>').click(function() var conn = $('<button>').click(function()
@ -438,14 +430,7 @@ TODO als server het stuurt
{ {
var row = $('#stream-' + stream); var row = $('#stream-' + stream);
var status = streams[stream][0]; var status = streams[stream][0];
/*
if(status == 1)
{
$(row.children()[3]).html("<span class='green'>Running</span>");
}
$(row.children()[3]).html("<span class='red'>" + (status == 0 ? 'Offline' : (!status ? 'Unknown, checking...' : status) ) + "</span>");
}
*/
$(row.children()[3]).html( formatStatus(status) ); $(row.children()[3]).html( formatStatus(status) );
$(row.children()[4]).text(streams[stream][1]); $(row.children()[4]).text(streams[stream][1]);
@ -485,16 +470,7 @@ TODO als server het stuurt
$tr.append( $('<td>').text(cstr.name) ); $tr.append( $('<td>').text(cstr.name) );
/* $tr.append( $('<td>').html( formatStatus( cstr.online ) ) );
if(cstr.online && cstr.online == 1)
{
$tr.append( $('<td>').html("<span class='green'>Running</span>") );
}else{
$tr.append( $('<td>').html("<span class='red'>" + (cstr.online == 0 ? 'Offline' : 'Unknown, checking...') + "</span>") );
}
*/
$tr.append( $('<td>').html( formatStatus( cstr.online ) ) );
var cviewers = 0; var cviewers = 0;
@ -680,9 +656,10 @@ TODO als server het stuurt
if(isThereAHTTPConnector()) if(isThereAHTTPConnector())
{ {
var embed = 'http://' + parseURL(settings.server).host + ':8080/embed_' + streamname + '.js'; var embedbase = 'http://' + parseURL(settings.server).host + ':8080/';
$('#page').append( $('<p>').attr('class', 'nocapitals').text('The embed URL is "' + embed + '".') ); $('#page').append( $('<p>').attr('class', 'nocapitals').text('The info embed URL is "' + embedbase + 'info_' + streamname + '.js".') );
$('#page').append( $('<p>').attr('class', 'nocapitals').text('The embed embed URL is "' + embedbase + 'embed_' + streamname + '.js".') );
$('#page').append( $('<button>').text('preview').click(function() $('#page').append( $('<button>').text('preview').click(function()
{ {
@ -701,7 +678,12 @@ TODO als server het stuurt
var embed = 'http://' + parseURL(settings.server).host + ':8080/embed_' + streamname + '.js'; var embed = 'http://' + parseURL(settings.server).host + ':8080/embed_' + streamname + '.js';
$('#page').append( $('<div>').html( "<script src='" + embed + "'></script>" ) ); $('#page').append( $('<div>').attr('id', 'previewcontainer') );
// jQuery doesn't work -> use DOM magic
var script = document.createElement('script');
script.src = embed;
document.getElementById('previewcontainer').appendChild( script );
break; break;
@ -709,7 +691,6 @@ TODO als server het stuurt
case 'limits': case 'limits':
$table = $('<table>'); $table = $('<table>');
$table.html("<thead><th>Type</th><th>Hard/soft</th><th>Value</th><th>applies to</th><th>Action</th></thead>"); $table.html("<thead><th>Type</th><th>Hard/soft</th><th>Value</th><th>applies to</th><th>Action</th></thead>");

View file

@ -33,7 +33,7 @@ function mistembed(streamname)
{ {
case 'f4v': return supports.flashversion >= 11; break; case 'f4v': return supports.flashversion >= 11; break;
case 'rtmp': return supports.flashversion >= 10; break; case 'rtmp': return supports.flashversion >= 10; break;
case 'flv': return supports.flashversion >= 7; break; case 'flv': return supports.flashversion >= 7; break;
default: return false; default: return false;
} }
@ -42,13 +42,16 @@ function mistembed(streamname)
// build HTML for certain kinds of types // build HTML for certain kinds of types
function buildPlayer(src, container, videowidth, videoheight) function buildPlayer(src, container, videowidth, videoheight)
{ {
// used to recalculate the width/height
var ratio;
// get the container's width/height // get the container's width/height
var containerwidth = parseInt(container.scrollWidth, 10); var containerwidth = parseInt(container.scrollWidth, 10);
var containerheight = parseInt(container.scrollHeight, 10); var containerheight = parseInt(container.scrollHeight, 10);
if(videowidth > containerwidth && containerwidth > 0) if(videowidth > containerwidth && containerwidth > 0)
{ {
var ratio = videowidth / containerwidth; ratio = videowidth / containerwidth;
videowidth /= ratio; videowidth /= ratio;
videoheight /= ratio; videoheight /= ratio;
@ -56,23 +59,26 @@ function mistembed(streamname)
if(videoheight > containerheight && containerheight > 0) if(videoheight > containerheight && containerheight > 0)
{ {
var ratio = videoheight / containerheight; ratio = videoheight / containerheight;
videowidth /= ratio; videowidth /= ratio;
videoheight /= ratio; videoheight /= ratio;
} }
switch(src.type) switch(src.type)
{ {
case 'f4v': case 'f4v':
case 'rtmp': case 'rtmp':
case 'flv': case 'flv':
container.innerHTML = '<object width="' + videowidth + '" height="' + videoheight + '"><param name="movie" value="http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf"></param><param name="flashvars" value="src=' + encodeURI(src.url) + '&controlBarMode=floating&expandedBufferTime=4&minContinuousPlaybackTime=10"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="' + videowidth + '" height="' + videoheight + '" flashvars="src=' + encodeURI(src.url) + '&controlBarMode=floating&expandedBufferTime=4&minContinuousPlaybackTime=10"></embed></object>'; container.innerHTML = '<object width="' + videowidth + '" height="' + videoheight + '"><param name="movie" value="http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf"></param><param name="flashvars" value="src=' + encodeURI(src.url) + '&controlBarMode=floating&expandedBufferTime=4&minContinuousPlaybackTime=10"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="' + videowidth + '" height="' + videoheight + '" flashvars="src=' + encodeURI(src.url) + '&controlBarMode=floating&expandedBufferTime=4&minContinuousPlaybackTime=10"></embed></object>';
break;
case 'fallback':
container.innerHTML = '<strong>No support for any player found</strong>';
break; break;
} }
};
};
@ -108,7 +114,7 @@ function mistembed(streamname)
if( hasSupport( video.source[i].type ) ) if( hasSupport( video.source[i].type ) )
{ {
// we support this kind of video, so build it. // we support this kind of video, so build it.
buildPlayer(video.source[i], container, video.width, video.height); buildPlayer(video.source[i], container.parentNode, video.width, video.height);
// we've build a player, so we're done here // we've build a player, so we're done here
foundPlayer = true; foundPlayer = true;
@ -118,8 +124,8 @@ function mistembed(streamname)
if(!foundPlayer) if(!foundPlayer)
{ {
// of all the streams given, none was supported (eg. no flash and HTML5 video). Fall back. // of all the streams given, none was supported (eg. no flash and HTML5 video). Display error
container.innerHTML = 'fallback here'; buildPlayer({type: 'fallback'}, container.parentNode, video.width, video.height);
} }
} }