1

特別なイベントで Safari でサウンドを再生しようとしています。これが私がしていることです

<html>
    <head>
        <in a js file>
            if(event)
                document.getElementById('sound').play();
        </in a js file>
    </head>
    <body>    
        <audio id="sound" src="pling.mp3"></audio> 
    </body>
</html>

サウンド pling.mp3 は、html ファイルと同じフォルダーにあります。

Safari 開発者コンソールの結果は次のとおりです。 TypeError: 式 'document.getElementById('sound').play' の結果 [未定義] は関数ではありません。

私は何を間違っていますか?これが機能するはずの方法ではありませんか?

4

2 に答える 2

3

次のことを試してください。

document.getElementById('sound')[0].play();
于 2012-06-04T12:18:48.267 に答える
-1

ここで説明されているように、 Audio APIを使用して、特定のイベントの後に効果音を再生します。私の意見では、オーディオ タグは、UI を介して再生、停止、および制御できる曲に適しています。タグを使用する場合は、もう一度再生する前に一時停止して巻き戻す必要があります。これを自動的に行うこのスクリプトを使用できます。audio

たとえば、ホバー イベントでオーディオを再生する場合は、jQuery で次のようにします。

// iterate through the elements that must have audio applied on hover
$('.audio_effect').each(function() {
  $(this).on('mouseover', function() {
    new Audio('path-to-audiofile.mp3').play();
  });
});

内部ポインターをリセットせずに Audio 要素を再度再生することはできないため、上で行っているように、ホバーするたびに要素を新しく作成するのが最も簡単な方法です。

于 2012-06-04T10:08:33.697 に答える