Merge branch 'PR-Branch' of https://github.com/libccy/noname into PR-Branch

This commit is contained in:
Spmario233 2024-01-19 00:52:25 +08:00
commit ee08aaa3ab
4 changed files with 23 additions and 16 deletions

View File

@ -1364,19 +1364,21 @@ export class Game extends Uninstantable {
else if (!path.startsWith('db:')) path = `audio/${path}`;
if (!lib.config.repeat_audio && _status.skillaudio.includes(path)) return;
}
_status.skillaudio.add(path);
game.addVideo('playAudio', null, path);
setTimeout(() => _status.skillaudio.remove(path), 1000);
const audio = document.createElement('audio');
audio.autoplay = true;
audio.volume = lib.config.volumn_audio / 8;
audio.addEventListener('ended', () => audio.remove());
audio.onerror = event => {
//Some browsers do not support "autoplay", so "oncanplay" listening has been added
audio.oncanplay = () => Promise.resolve(audio.play()).catch(() => void 0);
audio.onplay = () => {
_status.skillaudio.add(path);
setTimeout(() => _status.skillaudio.remove(path), 1000);
game.addVideo("playAudio", null, path);
};
audio.onended = (event) => audio.remove();
audio.onerror = (event) => {
audio.remove();
if (onError) onError(event);
};
//Some browsers do not support "autoplay", so "oncanplay" listening has been added
audio.oncanplay = () => Promise.resolve(audio.play()).catch(() => void 0);
new Promise((resolve, reject) => {
if (path.startsWith('db:')) game.getDB('image', path.slice(3)).then(octetStream => resolve(get.objectURL(octetStream)), reject);
else if (lib.path.extname(path)) resolve(`${lib.assetURL}${path}`);

View File

@ -1367,10 +1367,12 @@ export class Get extends Uninstantable {
}
static infoFuncOL(info) {
var func;
const str = info.slice(13).trim();
try {
eval('func=(' + info.slice(13) + ');');
}
catch (e) {
if (str.startsWith("function") || str.startsWith("(")) eval(`func=(${str});`);
else eval(`func=(function ${str});`);
} catch (e) {
console.error(`${e} in \n${str}`);
return function () {};
}
if (Array.isArray(func)) {

View File

@ -17,7 +17,7 @@ export async function cordovaReady() {
}
});
document.addEventListener("resume", () => {
if (ui.backgroundMusic) ui.backgroundMusic.play();
if (ui.backgroundMusic && !isNaN(ui.backgroundMusic.duration)) ui.backgroundMusic.play();
});
document.addEventListener("backbutton", function () {
if (ui.arena && ui.arena.classList.contains('menupaused')) {

View File

@ -9050,10 +9050,9 @@ class Create extends Uninstantable {
ui.backgroundMusic.autoplay = true;
ui.backgroundMusic.addEventListener('ended', game.playBackgroundMusic);
ui.window.appendChild(ui.backgroundMusic);
ui.window.addEventListener(lib.config.touchscreen ? 'touchend' : 'click', function playMusic() {
ui.window.removeEventListener(lib.config.touchscreen ? 'touchend' : 'click', playMusic, false);
if (!ui.backgroundMusic.played.length && lib.config.background_music != 'music_off') ui.backgroundMusic.play();
}, false);
ui.window.addEventListener(lib.config.touchscreen ? 'touchend' : 'click', () => {
if (!ui.backgroundMusic.played.length && lib.config.background_music != 'music_off' && !isNaN(ui.backgroundMusic.duration)) ui.backgroundMusic.play();
}, {once:true});
if (lib.config.cursor_style == 'pointer') {
ui.window.classList.add('nopointer');
}
@ -14142,6 +14141,10 @@ export class UI extends Uninstantable {
* @type { HTMLDivElement }
*/
static pause;
/**
* @type { HTMLAudioElement }
*/
static backgroundMusic;
static refresh(node) {
void window.getComputedStyle(node, null).getPropertyValue("opacity");
}