1

所以我定义了这个标签:

<meta name="viewport" content='width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no' />

我也试过:

<meta name="viewport" content='width=device-width, initial-scale=1.0, user-scalable=no' /> 

在 Galaxy Tab 2 上,我正在测试我的网站 - 这正确地阻止了任何类型的双击或捏缩放。

但是一旦我改变方向 - 我可以再次放大!这种行为很奇怪,因为我只能放大,不能缩小。我可以通过双击和捏来做到这一点。

改变方向并不能解决问题,每次后续的方向改变都有这个问题......

有人以前见过这个问题吗?

谢谢!

切雷克


切换视频源后,您需要对其运行.load()以强制其加载新文件。此外,您需要提供多种格式,因为没有所有浏览器都支持的视频编解码器。

首先,像这样设置您的来源:

var sources = [
    {
        'mp4': 'http://video-js.zencoder.com/oceans-clip.mp4',
        'webm':'http://video-js.zencoder.com/oceans-clip.webm',
        'ogg':'http://video-js.zencoder.com/oceans-clip.ogv'
    }
    // as many as you need...
];

然后,您的 switch 函数应如下所示:

function switchVideo(index) {
    var s = sources[index], source, i;
    video.innerHTML = '';
    for (i in s) {
        source = document.createElement('source');
        source.src = s[i];
        source.setAttribute('type', 'video/' + i);
        video.appendChild(source);
    }
    video.load();
    video.play(); //optional
}

在此处查看工作演示。

这为浏览器提供了可供尝试的不同格式的列表。它将遍历每个 URL,直到找到它喜欢的一个。在每个源元素上设置“类型”属性会提前告诉浏览器它是什么类型的视频,这样它就可以跳过它不支持的视频。否则,它必须访问服务器以检索标头并确定它是什么类型的文件。

只要您提供 ogg/theora 文件,这应该可以在 Firefox 回到 3.5 中工作。它可以在 iPad 上运行,因为页面上一次只有一个视频元素。但是,只有在用户至少手动单击一次播放后,自动播放才会起作用。

对于不支持 html5 视频的旧版浏览器,您可以在源标记之后为视频元素附加 Flash 后备,以获得额外的功劳。(即,IE < 9 - 尽管您需要使用 jQuery 或其他 shim 来替换addEventListener.)

4

3 回答 3

2

有同样的问题并通过切换到 HTML5 解决了它。这意味着:

<!DOCTYPE html>
<html lang="en">
于 2014-03-03T13:54:12.540 回答
1

也许您需要使用未记录的“target-densityDpi”,如下所示:https ://android.googlesource.com/platform/external/webkit/+/f10585d69aaccf4c1b021df143ee0f08e338cf31

于 2012-12-05T20:45:38.593 回答
0

我面临同样的问题没有解决方案。合乎逻辑的结论是,当我最初将其设置为“user-scalable=0”时,浏览器窗口必须将元数据重置为“user-scalable=1”。

仅当我使用 CSS transition3d 移动页面内容并在下方显示一个用于关闭画布菜单的侧边栏(如 Google 移动或 Facebook 移动应用程序)时,才会发生该错误。如果我使用负边距来推送内容,那么在我的测试中根本不会发生。

我尝试做的一件事是每次用户更改手机方向时替换元视口标签。但是,我不确定它是否真的有效,因为该错误似乎每 6 页重新加载 + 方向为横向时就会发生。\

function updateMetaOrientationChange() {
     var viewport = document.querySelector("meta[name=viewport]");

     viewport.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;')
}
于 2013-06-05T04:06:13.363 回答