MediaWiki:Vector.js:修订间差异
MediaWiki界面页面
更多操作
无编辑摘要 |
无编辑摘要 |
||
| (未显示同一用户的2个中间版本) | |||
| 第4行: | 第4行: | ||
/* 显示存在的配音文件的播放按钮 new */ | /* 显示存在的配音文件的播放按钮 new */ | ||
$(function () { | $(function () { | ||
$('.audio- | $('.audio-native-trigger').each(function () { | ||
var $container = $(this); | var $container = $(this); | ||
var | var url = $container.data('src'); | ||
if (! | if (!url) return; | ||
var tester = new Audio(); | var tester = new Audio(); | ||
tester.src = | tester.src = url; | ||
tester.preload = "metadata"; | |||
tester.onloadedmetadata = function () { | tester.onloadedmetadata = function () { | ||
tester = null; | |||
$container.append($ | var $btn = $('<span class="audio-play-icon" style="cursor:pointer; user-select:none; font-size:1.75em; vertical-align:middle;">🔊</span>'); | ||
if ( | $container.empty().append($btn).show(); | ||
$btn.on('click', function () { | |||
var currentAudio = $container.data('audio-instance'); | |||
if (currentAudio) { | |||
currentAudio.pause(); | |||
currentAudio.onended = null; | |||
} | |||
var audio = new Audio(url); | |||
audio.preload = "auto"; | |||
audio.loop = false; | |||
$container.data('audio-instance', audio); | |||
var playPromise = audio.play(); | |||
audio.onended = function () { | |||
$container.data('audio-instance', null); | |||
}; | |||
audio.onerror = function() { | |||
$container.data('audio-instance', null); | |||
}; | |||
}); | |||
}; | }; | ||
tester.onerror = function () { | tester.onerror = function () { | ||
$container.remove(); | $container.remove(); | ||
tester = null; | tester = null; | ||
}; | }; | ||