3

IE7/8 でテストすると、スクリプトがクラッシュし、このエラーが発生します...

SCRIPT438: オブジェクトはプロパティまたはメソッド 'play' をサポートしていません

HTML5 オーディオ タグを使用して、Web ページにオーディオを埋め込んで再生しています。

<div id="auido-container">
        <audio id="music" loop="loop">
            <source src="audio/holiday-for-mr-anderson-60secs.mp3"></source>
            <source src="audio/holiday-for-mr-anderson-60secs.ogg"></source>
            Your browser isn't invited for super fun audio time.
        </audio>
        <audio id="sound">
            <source src="audio/pop.mp3"></source>
            <source src="audio/pop.ogg"></source>
            Your browser isn't invited for super fun audio time.
        </audio>

    </div>

私のJSは次のようになります:

start.click(function(){
    audio.play();
});

これをヘッダーに含めました:

<!--[if IE]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

誰かが解決策や修正を知っていますか?

4

3 に答える 3

10

IE7/8 を含む多くの古いブラウザーは、HTML 5 を (完全には) サポートしていません。

Modernizrを使用して、現在のブラウザーがオーディオをサポートしているかどうかを検出できます。

欠落している機能のサポートを追加できるオーディオを含む多くの機能のポリフィルがあります

https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills

(オプションのオーディオセクションまでスクロールします)

ポリフィルは、サポートされているさまざまなブラウザーとブラウザー バージョンで動作します。

于 2012-12-11T20:09:46.423 に答える
7

私は同様の問題を抱えていましたが、これをどのように修正したかを示します (これは現在 IE8 で動作し、wav ファイルも再生します!)。コツは、HTML5 互換ブラウザでは audio タグを使用し、古い IE ブラウザでは埋め込みタグを使用することです。

HTML ページに 2 つの要素を作成します。

<audio id="audiotag" src="images/beep-03.wav" preload="auto"></audio>
<embed id="audiotagII" src='images/beep-03.wav' autostart='false' loop='false' width='2' height='0'></embed>

以下は、古いブラウザーと新しいブラウザーでサウンドを再生する JavaScript 部分です。

//Returns the version of Windows Internet Explorer or a -1. Available on the Internet!
function getInternetExplorerVersion()
{
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    }
    return rv;
}

var browserVer = getInternetExplorerVersion();
if (browserVer > -1 && browserVer < 9) {
    document.getElementById('audiotagII').play();   
} else {
    document.getElementById('audiotag').play();
}

ありがとうございました!

于 2014-01-02T17:12:40.220 に答える
0

ブラウザーが HTML5 オーディオをサポートしていない場合、それらのブラウザーの代替を使用する以外にできることはあまりありません。w3schoolsによると:

Internet Explorer 8 以前のバージョンでは、この要素はサポートされていません。

ソース: http://www.w3schools.com/html/html5_audio.asp

于 2012-12-11T20:08:09.377 に答える