【问题标题】:PhoneGap inline html5 video black flash before video starts视频开始前PhoneGap内联html5视频黑闪
【发布时间】:2014-01-15 22:43:46
【问题描述】:

我有一个 HTML5 视频,只有在通过 phonegap 编译时才会闪烁黑色。视频开始时,海报和视频的第一帧之间会出现黑色闪光。闪光持续 0.5 秒到 5 秒。当我使用完全相同的页面并在浏览器而不是 phonegap 中运行它时,它会从海报到视频无缝播放。

如果我播放一次视频并重新播放,没有闪光灯,这只是第一次。我在等待视频完全加载的足够时间的同时对此进行了测试,所以并不是它们还没有完全加载。

我可以想出一些技巧来解决这个问题,但我希望有一个干净的解决方案。

Javascript:

onVideoExit()
videoElement.currentTime = 0;
videoElement.pause();

onVideoEnter()
videoElement.play();

HTML:

<div>
    <video  width="140" height="210" webkit-playsinline preload>
        <source src=http://www.w3schools.com/html/mov_bbb.mp4 type="video/mp4">
    </video>

</div>

config.xml:

<preference name="AllowInlineMediaPlayback" value="true" />

【问题讨论】:

  • 附注,'preload'属性对此没有影响,只是视频关闭海报需要更长的时间,但黑闪的长度是一样的
  • 等待加载数据事件也无济于事。即使我在播放视频前等待 5 分钟,也会发生闪光。刷新视图后我第一次播放视频时,它会闪烁黑色。 (如果视频很小或者我在快速互联网上,它不会闪烁黑色)。我认为 IOS webview 库没有正确处理加载的事件。视频从海报图片切换到视频需要时间

标签: cordova html5-video


【解决方案1】:

您可以尝试添加事件侦听器以了解视频何时正确加载。

var theVideo = document.getElementById("myAwesomeVideo");
theVideo.addEventListener('loadeddata', function() {
    theVideo.play();
});

【讨论】:

  • 忘了说,我试过了。它只是在phonegap中。移动野生动物园处理得很好。我可以设置预加载属性或等待加载数据事件。无论如何,它会在内联播放之前闪烁黑色一段时间,这似乎取决于带宽和视频大小
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-31
  • 2017-01-22
  • 1970-01-01
相关资源
最近更新 更多