javascript - 播放 .mp3,然后移至下一页

标签 javascript jquery mp3

在我的应用程序中,我想播放一个 .mp3 然后移动到另一个页面。

目前我有:

// Ajax Success function
$.playSound('../static/sounds/cash-register');
window.location.replace("next_page");

// Play sound function
(function($){

$.extend({
    playSound: function(){
        return $("<embed src='"+arguments[0]+".mp3' hidden='true' autostart='true' loop='false' class='playSound'>" + "<audio autoplay='autoplay' style='display:none;' controls='controls'><source src='"+arguments[0]+".mp3' /><source src='"+arguments[0]+".ogg' /></audio>").appendTo('body');
        }
    });

})(jQuery);

当我之后没有立即移动到另一个页面时,这很好用。但是,使用我当前的代码,.mp3 无法播放,我只是转到了下一页。

有人知道我该如何纠正这个问题吗?

最佳答案

您需要开始播放 mp3,但要等到 mp3 播放完毕后再导航到下一页。您可以通过收听音频元素中可用的媒体事件来做到这一点。

请查看此链接以获取有关您可以参加的媒体事件的更多信息:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events

我修改了你的代码来实现这个事件。请查看下面的来源。

// Ajax Success function
$.playSound('../static/sounds/cash-register', 'next_page');

// Play sound function
(function($){

    $.extend({
        playSound: function(){
            var $ele = $("<embed src='"+arguments[0]+".mp3' hidden='true' autostart='true' loop='false' class='playSound'>" + "<audio autoplay='autoplay' style='display:none;' controls='controls'><source src='"+arguments[0]+".mp3' /><source src='"+arguments[0]+".ogg' /></audio>").appendTo('body');
            $ele.on('ended', function() {
                window.location.replace(arguments[1]);
            });
        }
    });

})(jQuery);

关于javascript - 播放 .mp3,然后移至下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31621896/

相关文章:

使用美国日期进行日期时间输入的 jQuery 输入掩码

php - 在 php 中将视频转换为 MP3?

javascript - jQuery $.post 成功函数永远不会触发

javascript - Accordion 未显示在选项卡中?为什么?

javascript - 如何创建 "sound on/sound off"按钮?

swift - 在 iOS Swift 中流式传输 Spotify Preview_url

javascript - 关于 for-if 循环中 boolean 逻辑的混淆

javascript - 可观察事件在 Angular2 中不起作用

JavaScript:字段或属性

javascript - 限制特定大小的文件上传