forked from Simnation/Main
236 lines
No EOL
7.2 KiB
JavaScript
236 lines
No EOL
7.2 KiB
JavaScript
var themeparkresourcename = "rtx_themepark";
|
|
var soundhandler = {}
|
|
var soundcheckerhandler = {}
|
|
|
|
window.addEventListener('message', function (event) {
|
|
|
|
var item = event.data;
|
|
|
|
|
|
if (item.message == "playsoundattraction") {
|
|
if (soundhandler[item.soundid] == undefined) {
|
|
$("body").append("<div id='"+ item.soundid +"'></div>");
|
|
soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", {
|
|
|
|
startSeconds:Number,
|
|
videoId: item.soundsrc,
|
|
origin: window.location.href,
|
|
enablejsapi: 1,
|
|
width: "0",
|
|
height: "0",
|
|
playerVars: {
|
|
playsinline: 1,
|
|
controls: 0,
|
|
},
|
|
events: {
|
|
'onReady': function(event){
|
|
event.target.unMute();
|
|
event.target.setVolume(item.soundvolume);
|
|
event.target.playVideo();
|
|
},
|
|
'onError': function(event){
|
|
},
|
|
'onStateChange': function(event){
|
|
if (event.data == YT.PlayerState.PLAYING) {
|
|
|
|
}
|
|
if (event.data == YT.PlayerState.ENDED) {
|
|
}
|
|
if (event.data == YT.PlayerState.ENDED) {
|
|
soundhandler[item.soundid].seekTo(0);
|
|
soundhandler[item.soundid].playVideo();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
} else {
|
|
if (typeof soundhandler[item.soundid].setVolume === 'function') {
|
|
soundhandler[item.soundid].setVolume(item.soundvolume);
|
|
}
|
|
}
|
|
}
|
|
if (item.message == "playsound") {
|
|
if (item.soundcategory == "youtube") {
|
|
if (soundhandler[item.soundid] == undefined) {
|
|
$("body").append("<div id='"+ item.soundid +"'></div>");
|
|
soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", {
|
|
|
|
startSeconds:Number,
|
|
videoId: item.soundsrc,
|
|
origin: window.location.href,
|
|
enablejsapi: 1,
|
|
width: "0",
|
|
height: "0",
|
|
playerVars: {
|
|
playsinline: 1,
|
|
controls: 0,
|
|
},
|
|
events: {
|
|
'onReady': function(event){
|
|
event.target.unMute();
|
|
event.target.setVolume(item.soundvolume);
|
|
event.target.playVideo();
|
|
},
|
|
'onError': function(event){
|
|
$.post('https://'+themeparkresourcename+'/sounderror', JSON.stringify({
|
|
soundid: item.soundid
|
|
}));
|
|
},
|
|
'onStateChange': function(event){
|
|
if (event.data == YT.PlayerState.PLAYING) {
|
|
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
|
soundid: item.soundid,
|
|
soundname: soundhandler[item.soundid].getVideoData().title,
|
|
soundtime: soundhandler[item.soundid].getCurrentTime(),
|
|
soundtimemax: soundhandler[item.soundid].getDuration()
|
|
}));
|
|
}
|
|
if (event.data == YT.PlayerState.ENDED) {
|
|
$.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({
|
|
soundid: item.soundid
|
|
}));
|
|
}
|
|
}
|
|
}
|
|
});
|
|
} else {
|
|
if (typeof soundhandler[item.soundid].setVolume === 'function') {
|
|
soundhandler[item.soundid].setVolume(item.soundvolume);
|
|
}
|
|
}
|
|
} else {
|
|
if (soundhandler[item.soundid] == undefined) {
|
|
soundhandler[item.soundid] = new Howl({
|
|
src: item.soundsrc,
|
|
volume: item.soundvolume,
|
|
loop: false,
|
|
html5: true,
|
|
onplay: function(){
|
|
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
|
soundid: item.soundid,
|
|
soundname: "MP3",
|
|
soundtime: soundhandler[item.soundid].seek(),
|
|
soundtimemax: soundhandler[item.soundid].duration()
|
|
}));
|
|
},
|
|
onend: function() {
|
|
$.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({
|
|
soundid: item.soundid
|
|
}));
|
|
}
|
|
});
|
|
|
|
soundhandler[item.soundid].play();
|
|
} else {
|
|
if (typeof soundhandler[item.soundid].volume === 'function') {
|
|
soundhandler[item.soundid].volume(item.soundvolume);
|
|
}
|
|
if (soundhandler[item.soundid].playing() == false) {
|
|
soundhandler[item.soundid].play();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (item.message == "checkmusicurl") {
|
|
$("body").append("<div id='videourlcheckyoutube'></div>");
|
|
soundcheckerhandler["videourlcheckyoutube"] = new YT.Player("videourlcheckyoutube", {
|
|
startSeconds:Number,
|
|
videoId: item.soundsrc,
|
|
origin: window.location.href,
|
|
enablejsapi: 1,
|
|
width: "0",
|
|
height: "0",
|
|
playerVars: {
|
|
playsinline: 1,
|
|
controls: 0,
|
|
},
|
|
events: {
|
|
'onReady': function(event){
|
|
event.target.setVolume(0);
|
|
event.target.playVideo();
|
|
},
|
|
'onError': function(event){
|
|
$.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({
|
|
soundallowed: false,
|
|
}));
|
|
soundcheckerhandler["videourlcheckyoutube"].stopVideo();
|
|
soundcheckerhandler["videourlcheckyoutube"].destroy();
|
|
soundcheckerhandler["videourlcheckyoutube"] = null;
|
|
},
|
|
'onStateChange': function(event){
|
|
if (event.data == YT.PlayerState.PLAYING) {
|
|
$.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({
|
|
soundallowed: true,
|
|
}));
|
|
soundcheckerhandler["videourlcheckyoutube"].stopVideo();
|
|
soundcheckerhandler["videourlcheckyoutube"].destroy();
|
|
soundcheckerhandler["videourlcheckyoutube"] = null;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
if (item.message == "updatesounddata") {
|
|
if (soundhandler[item.soundid] == undefined) {
|
|
} else {
|
|
if (item.soundcategorytype == "youtube") {
|
|
if (soundhandler[item.soundid].getPlayerState() == 1) {
|
|
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
|
soundid: item.soundid,
|
|
soundname: soundhandler[item.soundid].getVideoData().title,
|
|
soundtime: soundhandler[item.soundid].getCurrentTime(),
|
|
soundtimemax: soundhandler[item.soundid].getDuration()
|
|
}));
|
|
}
|
|
} else {
|
|
if (soundhandler[item.soundid].playing() == true) {
|
|
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
|
soundid: item.soundid,
|
|
soundname: "MP3",
|
|
soundtime: soundhandler[item.soundid].seek(),
|
|
soundtimemax: soundhandler[item.soundid].duration()
|
|
}));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (item.message == "setsoundtime") {
|
|
if (soundhandler[item.soundid] == undefined) {
|
|
} else {
|
|
if (item.soundcategorytype == "youtube") {
|
|
soundhandler[item.soundid].seekTo(item.timedata);
|
|
} else {
|
|
soundhandler[item.soundid].seek(item.timedata);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (item.message == "stopsound") {
|
|
if (soundhandler[item.soundid] == undefined) {
|
|
} else {
|
|
if (item.soundcategorytype == "youtube") {
|
|
soundhandler[item.soundid].stopVideo();
|
|
soundhandler[item.soundid].destroy();
|
|
soundhandler[item.soundid] = null;
|
|
$("#'"+ item.soundid +"'").remove();
|
|
} else {
|
|
soundhandler[item.soundid].stop()
|
|
soundhandler[item.soundid] = null;
|
|
}
|
|
}
|
|
}
|
|
if (item.message == "stopsoundattraction") {
|
|
if (soundhandler[item.soundid] == undefined) {
|
|
} else {
|
|
soundhandler[item.soundid].stopVideo();
|
|
soundhandler[item.soundid].destroy();
|
|
soundhandler[item.soundid] = null;
|
|
}
|
|
}
|
|
if (item.message == "updateinterfacedata") {
|
|
themeparkresourcename = item.themeparkresourcenamedata;
|
|
let root = document.documentElement;
|
|
root.style.setProperty('--color', item.interfacecolordata);
|
|
}
|
|
}); |