jQuery 调用一个函数来播放下一个音频文件

Posted

技术标签:

【中文标题】jQuery 调用一个函数来播放下一个音频文件【英文标题】:jQuery recall a function to play the next audio file 【发布时间】:2021-06-21 07:08:55 【问题描述】:

我找到了一个播放音频文件的功能(onclick),她工作正常

我想在当前结束时使用此功能播放下一个音频文件 所以我记得onended里面的函数,播放下一个音频文件但它会冻结并重复到无穷大而不传递到下一个文件

var thissound = new Audio();
var currentKey;

function EvalSound(key)

    if (currentKey !== key)
        thissound.src = "media/audio/chapters/" + chapternum + "/" + key + ".mp3";
        currentKey = key;

    if (thissound.paused)
    
        thissound.play();
    
    else
    
        thissound.pause();
        thissound.currentTime = 0;
        currentPlayer = thissound;
    
 
$(".audio").click(function(e) 

    e.preventDefault();
    var parentid = $(this).parent().parent().attr('id');     
    var nextfile = parseInt(parentid)  + 1; 

    EvalSound(parentid);

    thissound.onended = function()
    
        EvalSound(nextfile);
        return false;
    ; 
);

html(例如)

<li class="liste" id="1">
    <p><img class="audio" src="images/default/buttons/play.png"  title="Play" /></p>
    <p>some text</p>
</li>
<li class="liste" id="2">
    <p><img class="audio" src="images/default/buttons/play.png"  title="Play" /></p>
    <p>some text</p>
</li>
...
...

感谢您的帮助

【问题讨论】:

【参考方案1】:

我解决了 所以,我把“thissound.onended = function()”放在函数里面

thissound.onended = function()

    var nextfile = parseInt(key)  + 1;
    if($("#" + nextfile).length)
    
        $(window).scrollTop($('#' + nextfile).offset().top);
        EvalSound(nextfile);
    
; 

【讨论】:

以上是关于jQuery 调用一个函数来播放下一个音频文件的主要内容,如果未能解决你的问题,请参考以下文章

音频未在 SwiftUI 中播放

在没有文件的情况下在 HTML5 中播放来自 javascript 的音频 - 使用缓冲区

如何停止使用 jQuery 播放其他音频元素

为啥我的音频文件不能在 Firefox 中播放?

C语言播放音频文件的问题....

从 js/jquery 中的对象数组播放音频文件