HTML5视频 - 使用canPlayType进行编解码器嗅探

时间:2011-11-11 01:01:02

标签: android html5 mobile html5-video video-encoding

我是一名移动网络javascript开发人员,我们发现一些Androids不会播放我们的mp4容器h.264编码视频,所以我们有逻辑指向3gp版本。现在较新的Android设备(Samsung Ace,Kindle Fire)不支持3GP容器。

我现在正在研究使用canPlayType()的javascript DOM方法,我无法确定那里的字符串。我从HTML5 W3C规范和其他来源中提取示例。

使用以下代码(取自另一个问题)我得到了混合结果,因为我相信我正在测试一个可能与我们的handbrake / qt-faststart / ffmpeg生成的文件不匹配的字符串。

我在三星Vibrant的所有3上都是假的,但它播放的所有视频都很好。

    var testEl = document.createElement( "video" ),
        mpeg4, h264, webm;
    if ( testEl.canPlayType ) {
        // Check for MPEG-4 support
        var typeStr = testEl.canPlayType( "video/mp4; codecs=\"mp4v.20.8\"" );
        mpeg4 = typeStr !== "";

        // Check for h264 support
        typeStr = testEl.canPlayType( "video/mp4; codecs=\"avc1.42E01E\"" )
            || testEl.canPlayType( "video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"" )
        h264 = typeStr !== "";
        // Check for Webm support
        typeStr = testEl.canPlayType( "video/webm; codecs=\"vp8, vorbis\"" );
        webm = typeStr !== "";
    }
    alert("mpeg4 = "+mpeg4+"\nh264 = "+h264+"\nwebm = "+webm);

0 个答案:

没有答案