Improved boardgame flexibility.
parent
133f0a94f9
commit
9c0fb69e27
102
js/h5p.js
102
js/h5p.js
|
@ -165,108 +165,6 @@ H5P.libraryFromString = function (library) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// Play a video. $target is jQuery object to attach video to. (Appended).
|
|
||||||
// Params are video-params from content. cp is content path. onEnded is
|
|
||||||
// function to call when finished.
|
|
||||||
//
|
|
||||||
// TODO: Try to get rid of content path.
|
|
||||||
H5P.playVideo = function ($target, params, skipButtonText, cp, onEnded) {
|
|
||||||
var $ = H5P.jQuery;
|
|
||||||
|
|
||||||
var width = 635, // TODO: These should come from some dimension setting.
|
|
||||||
height = 500;
|
|
||||||
|
|
||||||
var $container = $('<div class="video-container"></div>').css({
|
|
||||||
position: "absolute",
|
|
||||||
top: "0px",
|
|
||||||
left: "0px",
|
|
||||||
"z-index": "500",
|
|
||||||
width: width,
|
|
||||||
height: height
|
|
||||||
});
|
|
||||||
|
|
||||||
var sources = '';
|
|
||||||
var willWork = false; // Used for testing if video tag is supported, AND for testing if we can play back our given formats
|
|
||||||
|
|
||||||
var video = document.createElement('video');
|
|
||||||
video.autoplay = true;
|
|
||||||
video.width = width;
|
|
||||||
video.height = height;
|
|
||||||
|
|
||||||
if (video.canPlayType !== undefined) {
|
|
||||||
for (var i = 0; i < params.length; i++) {
|
|
||||||
var file = params[i];
|
|
||||||
// TODO: The files should probably be in their own group.
|
|
||||||
if (file.mime.indexOf('video') === 0) {
|
|
||||||
if (video.canPlayType(file.mime)) {
|
|
||||||
var source = document.createElement('source');
|
|
||||||
source.src = cp + file.path;
|
|
||||||
source.type = file.mime;
|
|
||||||
video.appendChild(source);
|
|
||||||
willWork = willWork || true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (willWork) {
|
|
||||||
$container.append(video);
|
|
||||||
$(video).on('ended', function() {
|
|
||||||
onEnded();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var fplayer = undefined;
|
|
||||||
if (!willWork) {
|
|
||||||
// use flowplayer fallback
|
|
||||||
var fp_container = document.createElement("div");
|
|
||||||
fp_container.width = "100%";
|
|
||||||
fp_container.height = "100%";
|
|
||||||
fplayer = flowplayer(fp_container, {
|
|
||||||
src: "http://releases.flowplayer.org/swf/flowplayer-3.2.16.swf",
|
|
||||||
wmode: "opaque",
|
|
||||||
width: width,
|
|
||||||
height: height
|
|
||||||
}, {
|
|
||||||
buffering: true,
|
|
||||||
clip: {
|
|
||||||
url: window.location.protocol + '//' + window.location.host + cp + params[0].path,
|
|
||||||
autoPlay: true,
|
|
||||||
autoBuffering: true,
|
|
||||||
onFinish: function () {
|
|
||||||
onEnded();
|
|
||||||
},
|
|
||||||
onError: function () {
|
|
||||||
onEnded();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
willWork = true;
|
|
||||||
$container.append(fp_container);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!willWork) {
|
|
||||||
// Video tag is not supported and flash player failed too.
|
|
||||||
onEnded();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (skipButtonText) {
|
|
||||||
var $skipButton = $('<a class="button skip">' + skipButtonText + '</a>').click(function (ev) {
|
|
||||||
if (fplayer !== undefined) {
|
|
||||||
// Must stop this first. Errorama if we don't
|
|
||||||
fplayer.stop().close().unload();
|
|
||||||
}
|
|
||||||
$container.hide();
|
|
||||||
onEnded();
|
|
||||||
});
|
|
||||||
$container.append($skipButton);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Finally, append to target.
|
|
||||||
$target.append($container);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Recursivly clone the given object.
|
* Recursivly clone the given object.
|
||||||
|
|
Loading…
Reference in New Issue