首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >阻止音频播放,然后允许使用jquery函数结束后播放

阻止音频播放,然后允许使用jquery函数结束后播放
EN

Stack Overflow用户
提问于 2014-10-08 14:36:45
回答 3查看 101关注 0票数 0

我一直在为一个网站设计一个简单的音频播放器。我只想让它有玩和停的能力。我让它工作,以便它将发挥,设置它的播放不能重叠通过解除选择器。在它完成后,我想再次绑定选择器。它似乎不起作用。也许我只是不明白绑定和解除绑定应该放在哪里。

代码语言:javascript
复制
function playMusic(){
    var audioElement = document.createElement('audio');
    var audioElementSrc = $(this).attr('data-audio-src');
    audioElement.setAttribute('src', audioElementSrc);
    $.get();
    audioElement.addEventListener("loadeddata", function(){
        audioElement.play();                
    }, true);

    $('.pause').click(function() {
        audioElement.pause();
    });
    audioElement.addEventListener("playing", function(){
        $('.play').unbind('click');
    });
    audioElement.addEventListener("ended", function(){
        $('.play').bind('click');           
    });
}

$(function(e){
    $('.play').click(playMusic);
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-08 14:42:16

问题是,当您重新绑定事件时,没有将任何侦听器传递给绑定。您必须显式地指向要再次调用的函数。暂停事件也没有重新绑定。

看看这把小提琴:http://jsfiddle.net/kfkszwr1/1/

我添加了以下事件侦听器:

代码语言:javascript
复制
audioElement.addEventListener("pause", rebind);
audioElement.addEventListener("ended", rebind);
票数 1
EN

Stack Overflow用户

发布于 2014-10-08 15:50:12

这并不能回答您当前的问题,但是如果您希望使用更有效的方法,则会帮助您使用数据元素。

使用jQuery数据元素设置布尔变量:

代码语言:javascript
复制
$('#data_div').data("isPlaying", true);

使用jQuery数据元素检索布尔变量:

代码语言:javascript
复制
var isPlaying = $('#data_div').data("isPlaying");

只需确保页面上有一个id为"data_div“的div。

票数 0
EN

Stack Overflow用户

发布于 2014-10-09 01:00:20

代码语言:javascript
复制
    var isPlaying = false;
    function playMusic(){
        var audioElement = document.createElement('audio');
        var audioElementSrc = $(this).attr('data-audio-src');               

        if (isPlaying != true)
        {
            isPlaying = true;
            audioElement.setAttribute('src', audioElementSrc);
            $.get();
            audioElement.addEventListener("loadeddata", function(){
            audioElement.play();                
            }, true);
             audioElement.addEventListener("ended", function() {
             isPlaying = false;    
            });         
            $('.pause').click(function() {
            audioElement.pause();
            isPlaying = false
            });             
        }
        else
        {
            return false;
        }           
    }

$(function(e){
    $('.play').click(playMusic);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26259630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档