1

我正在使用 html5 标签动态地提供用户创建的音频。

全面工作,包括 IE10,但不适用于 IE9。绝对有正确的文档类型标签,它在 IE9 标准中运行,带有 html5 文档类型。

当我的代码重新应用 src 时,脚本总是会重新启动 4 次,并在触发错误事件时再次尝试。即使 IE9 支持 m4a(使用 aac 音频)和 mp3,它始终是 this.error.code 4 (MEDIA_ERR_SRC_NOT_SUPPORTED)。

我尝试过的事情

-我们的服务器正在返回音频/x-m4a,将其更改为音频/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 音频跨浏览器支持的 hack,但在任何 hack 被调用之前很久就出错了,所以我不认为它们是造成它的原因。

http://jsfiddle.net/Rwv7A/

4

0 回答 0