基于javascript中的事件阻止Eventhandler循环

时间:2017-11-02 14:14:10

标签: javascript

我有以下javascript代码...当客户点击呼叫按钮时,信号被发送到另一个客户端,并且在其他客户端播放声音,直到他接受呼叫。单击“呼叫”按钮后,该按钮将变为“结束呼叫”:

function beginCall(obj) {
    console.log(obj.value);
    obj.setAttribute("onclick", "endCall(this,'" + obj.value + "')");
    obj.value = 'End Call';
    _stream = _streams[obj.id.replace("btn_", "")];
    var streamNames = _stream.name.toString();
    session.signal({
        type: "begincall",
        to: _stream.connection,
        data: { streamId: _selfstream.streamId + "|" + _selfstream.name }
    }, function (error) {
        if (error) {
            console.log("signal error: " + error.reason);
        } else {
            console.log("signal sent: begincall:");
        }
    });
}

function signalEventHandler(event) {    
    if (event.type == "signal:begincall") {
        //sound alert   
        var audio = new Audio('inc/sound.mp3');
        audio.loop = true;
        audio.play();
    }
}

问题是,在点击通话按钮后,如果同一客户端在另一个人接受呼叫之前反复点击结束通话按钮,则多个音频将作为循环播放。

我需要根据

进行一次音频播放
if (event.type == "signal:begincall") {

这怎么可能?

0 个答案:

没有答案