2

Google 検索で見つけたいくつかのコードと例 (ここで見つけた例の多く) に基づいてサウンドボードを作成しようとしています。現時点で必要なすべての基本的なコア機能を備えていますが、1 つの非常に重要な機能を除いて、別のオーディオ ボタンをクリックしたときにすべてのオーディオの再生を停止する方法がわかりません。

これは私の現在の作業コードです:

$(function() {
    $("audio").removeAttr("controls").each(function(i, audioElement) {
        var audio = $(this);
        var that = this;
        var isplaying = false;

        $("#profile").append($('<button>' + audio.attr("title") + '</button>').click(
        function() {
            if (isplaying == false) {
                that.play();
                isplaying = true;
            } else {
                that.pause();
                that.currentTime = 0;
                isplaying = false;
            }
        }));
    });
});

div "#profile" を別の div "#global" でラップし、#global ですべてのサウンドが再生されないようにすることを考えましたが、うまくいきませんでした:

$(function() {
    $("audio").removeAttr("controls").each(function(i, audioElement) {
        var audio = $(this);
        var that = this;
        var isplaying = false;

        $("#profile").append($('<button>' + audio.attr("title") + '</button>').click(
        function() {
            if (isplaying == false) {
                that.play();
                isplaying = true;
            } else if (isplaying == true) {
                $("#global").click(
                function() {
                    that.pause();
                    that.currentTime = 0;
                    isplaying = false;
                });
            }
        }));
    });
});

#profile で同じ方法でオーディオを停止しようとするよりも、わずかにうまく機能しています(私はそれを大まかに使用しています)。これを行ったときにオーディオがまったく再生されなかったためです。ただし、上記のコードでは、ボタンをクリックしてオーディオをオフにすると、ページを更新するまで再生されません。私の最大の問題はまだ存在します。複数のボタンを押すと、音が重なってしまいます...

正直なところ、私はもう何を考えているのかわかりません。なぜなら、上記は完全に論理的に正しく聞こえず、一歩後退しているように聞こえるからです...しかし、私はこのプロジェクト全体に4日間携わっていますまっすぐで、気が狂っていると思います。私はこのアプローチをとることで正しい方向に進んでいますか、それとも近いですか、それとも単に遅れているだけですか?

助けてください。

4

0 に答える 0