10

我开发了一个应用程序,用户可以在其中设置网页上的视频: - 他们可以指定 Youtube URL 或 - 他们可以上传视频

根据用户选择的选项,我会呈现这样的视频页面:如果视频来自 youtube:

<iframe type="text/html" width="640" height="385" src="http://www.youtube.com/embed/YOUTUBEID?autoplay=1&loop=1&autohide=1&fs=0"  frameborder="0"></iframe>

如果正在上传视频:

<video id="video" style="cursor: pointer;" width="640" height="480"  autoplay controls loop>
  <source src="../video/Tareas_Diarias_Resumen.mp4" type="video/mp4" />
</video>

好的。所有这些在谷歌浏览器上都能完美运行,但事实是视频将在 16 台三星 GT-P5100 Android 4.03 平板电脑上观看。

我们创建了一个嵌入 webView 的 Android 应用程序,如下所示:

WebView engine = (WebView) findViewById(R.id.web_engine);
engine.setWebChromeClient(new WebChromeClient());
engine.getSettings().setPluginsEnabled(true);
engine.getSettings().setPluginState(PluginState.ON);
engine.getSettings().setJavaScriptEnabled(true);
engine.getSettings().setAllowFileAccess(true);
engine.loadUrl(miUrl);

在这里我有两个问题: 1- Youtube 视频。它工作正常,我可以看到视频但没有自动播放,我们希望它可以自动播放。有什么解决办法吗?2-上传的视频不起作用,我可以看到播放器但没有视频。

视频是用手刹转换的,选择 iphone 和 ipod-touch 预设和“网络优化”选项。

任何帮助或线索?提前致谢

4

4 回答 4

34

自 Android SDK 17 起禁用自动播放,但您可以将 setMediaPlaybackRequiresUserGesture 设置为 false 以重新启用自动播放。不要忘记检查 SDK 版本,因为早期版本没有此功能。

    int SDK_INT = android.os.Build.VERSION.SDK_INT;
    if (SDK_INT > 16) {
        engine.getSettings().setMediaPlaybackRequiresUserGesture(false);
    }
于 2014-06-25T02:46:21.583 回答
10

[升级为根据请求回答]

大多数移动平台(Android、iOS)上的自动播放被阻止以避免糟糕的用户体验 - 视频应该只在用户操作之后播放。您通常可以通过在另一个事件(例如 onloaded 事件)上触发 play() 来解决它

于 2013-05-23T15:36:52.873 回答
4

对于 Android 4.0.x,尝试触发事件:loadstart

var vid=document.getElementById('video');
vid.addEventListener("loadstart", showVideo, false);
function showVideo(e) {
  vid.play();
}
于 2013-09-04T10:24:42.457 回答
0

这是无法实现的,大多数移动平台(Android、iOS)上的自动播放会被阻止以避免糟糕的用户体验。看看这个: http ://www.longtailvideo.com/html5/autoloop/

于 2013-05-23T13:53:18.193 回答