5

現在、自分のWebサイトでさまざまなwavファイルを再生しようとしています。現在HTML5<audio>要素を使用していますが、IEはオーディオタグを介してwavを再生しないため、下位互換性も確保しようとしています。

<embed>適切なサウンドオブジェクトを作成するjavascript関数を作成しました。

function createPreHtml5EmbedItem(callID, parent) {
            $("#sound").remove();
            var sound = $("<embed id='sound' controls='console' type='audio/wav' />");
            sound.attr('src', '/recording?id=' + callID);
            sound.attr('loop', false);
            sound.attr('hidden', false);
            sound.attr('autostart', true);
            parent.append(sound);
}

これはすべて正常に機能しますが、別のボタンをクリックすると、このオーディオ要素の再生を停止したいと思います。Firefoxで私はこれを行うことができます:

function stopAudioPreHtml5() {
    $("#sound").remove();
}

しかし、何らかの理由でこれはIEでは機能しません。<embed>削除する前に、現在再生中の要素を停止する方法はありますか?

4

4 に答える 4

5

IEの場合、.stop()メソッドを使用して停止できます。

デモ。

function stopAudioPreHtml5() {
    var sound = $("#sound");
    if ($.browser.msie) {
       sound[0].stop();
    }
    sound.remove();
}
于 2012-08-09T03:26:18.447 に答える
1

サウンドファイルを iframe に入れて、iframe 全体を jquery で削除することもできますか?!

于 2012-08-11T21:52:35.990 に答える
0
function createPreHtml5EmbedItem(callID, parent) {
            $("#sound").remove();
            var sound = $("<embed id='sound' controls='console' type='audio/wav' />");
            sound.attr('src', '/recording?id=' + callID);
            sound.attr('loop', false);
            sound.attr('hidden', false);
            sound.attr('autostart', true);
            $(parent).append(sound);
}

追加行を変更し、私にとってはうまく機能します。ちなみに、.stop() を使用し、ページに非常に多くの埋め込みオブジェクトがある場合、パフォーマンスの問題が発生します。しかし remove() はしません。

于 2012-08-15T12:31:18.097 に答える
0

javascript 変数名と同じ要素がある場合、IE で問題が発生しました。

この場合、変数soundと、id で作成した要素sound

次のようなオブジェクトにすべての属性を作成して追加するときに、別の変数名を使用してみます

var soundIE = $("<embed id='sound' controls='console' type='audio/wav' />");

soundIE.attr('src', '/recording?id=' + callID);
soundIE.attr('loop', false);
soundIE.attr('hidden', false);
soundIE.attr('autostart', true);
$(parent).append(soundIE);
于 2012-08-15T23:00:27.830 に答える