我问过的上一个问题让我走到了我需要的地方的一半,我现在有一个功能可以触发2个功能。 A'装载机'函数(一个微调器图形)和播放文件的playAudio。
function loadPlay(src, trackName) {
loader();
playAudio(src, trackName);
}
当点击一个播放按钮时,应该出现加载微调器,当音频播放时,微调器应该消失。
播放按钮:
<span class="play" onclick="loadPlay('http://a797.phobos.apple.com/us/r30/Music/72/89/b9/mzi.aytblawp.aac.p.m4a','t3')" id="t3">
但是发生的事情是点击播放按钮后会有轻微的暂停(音频加载)并且音频和微调器同时出现?加载器应该在轨道加载时显示,然后在音频播放时消失?
如何添加暂停以确保在音频播放之前出现加载程序?
两种功能:
function loader() {
// make a loader spinner appear as track loads
$(".loading").addClass("loadingnow");
}
function playAudio(src,trackname) {
// for Android
if (audioPlaying === false) {
if (device.platform == 'Android') {
src = '/android_asset/www/' + src;
}
media = new Media(src, success, error_error);
media.play();
//add playing class so play button is replaced with stop button
document.getElementById(trackname).parentNode.className="playing";
// now track is playing remove the loader spinner
$(".loading").removeClass("loadingnow");
audioPlaying = true;
} else {
//audio is already playing
}
}
function success() {
// track has finished playing so remove the stop button put play button back
$(".playing").removeClass("playing");
audioPlaying = false;
}
function error_error(e) {
//alert('great error');
//alert(e.message);
}
function stopAudio() {
// stop playing track
if (media) {
media.stop();
audioPlaying = false;
}
}
答案 0 :(得分:1)
您可以使用setTimeout强制jQuery等待毫秒数
function loadPlay(src, trackName) {
loader();
setTimeout(function(){
playAudio(src, trackName);
}, 1000);
}
这会强制playAudio等待1秒钟。您的加载程序会弹出,但由于这个原因,您的用户将不得不等待一秒钟。