1

html5 タグを使用して、ユーザーが作成したオーディオを動的に提供しています。

IE10 を含むボード全体で動作しますが、IE9 では動作しません。html5 doctype を使用して、IE9 標準で実行されている適切なドキュメント タイプ タグを確実に持っています。

コードが src を再適用すると、スクリプトは常に 4 回再起動され、Error イベントが発生した場合は再試行されます。IE9 では m4a ( aac audio を使用) と mp3 の両方がサポートされていますが、常に this.error.code 4 ( MEDIA_ERR_SRC_NOT_SUPPORTED ) です。

私が試したこと

- サーバーが audio/x-m4a を返していたので、audio/m4a に変更しました

-mp3 の使用を強制します。

応答ヘッダーは次のようになります

Response                        HTTP/1.0 200 OK
Date                            Wed, 22 May 2013 18:09:32 GMT
Access-Control-Allow-Origin     *
Content-MD5                     xOmafXnKWpXcIV8x8OQVKg==
Content-Disposition             inline
Content-Language                en-US
Connection                      close
Content-Type                    audio/m4a

ランダム理論

オーディオの異なるビット レートで IE が壊れている可能性はありますか? ユーザーが送信したコードは、モノラルとステレオに加えて、3 つの異なるビットレートにすることができます。

サンプルコード

$(this.mAudioPlayer).bind({
        error:  function(){ 
            if( this.tried != this.retries ){ 
                this.src = this.src; 
                this.tried++; 
                var reason = "Error";
                switch( this.error.code ){
                    case 1:
                        reason = "Aborted";
                        break;
                    case 2:
                        reason = "Decode";
                        break;
                    case 3:
                        reason = "Network";
                        break;
                    case 4:
                        reason = "Not_Supported";
                        break;
                }
                HandleWarning("Audio was restarted from error state because of " + reason); 
            }else{ 
                HandleError("Audio failed to load"); 
            }
        },
        canplay: function(){ 
            this.loaded = true;
            if( this.autoPlay ){
                this.play();
            }
        }
    });

Fiddlerには、私が書いたすべてのクラスが含まれており、html5オーディオのクロスブラウザーサポートである混乱のための大量のハックがありますが、ハックが呼び出されるずっと前にエラーが発生するため、それらが原因であるとは思いません.

http://jsfiddle.net/Rwv7A/

4

0 に答える 0