10

我正在使用带有角材料前端的科尔多瓦开发一个跨平台应用程序。

我在 md 卡列表中使用 HTML5 视频标签来播放带有外部 url 的视频。内联时,视频可以正确播放,并按预期显示本机控件。

    <video class="project-video" video-directive item="$ctrl.project" ng-src="{{$ctrl.project.videoUrl | trustUrl}}" preload="auto"
      controls poster="{{$ctrl.project.video.thumbnail_url}}">
      Your browser does not support the video tag.
    </video>

但是,当我单击“切换全屏”按钮时,视频确实会进入全屏状态,但默认控件会消失。在此之后我无法返回应用程序 - 原生 android 后退按钮不会关闭全屏 - 而是关闭整个应用程序。

我正在寻找的解决方案将使控件即使在全屏模式下也始终出现;这可以在 iOS 上运行相同的代码。

因此,如果我能帮上忙,我不想花时间开发我自己的自定义视频控件仅用于 android!所以请不要发布关于如何做到这一点的答案(在 SO 和其他地方已经有很多可用的答案)。

我正在使用魅族 m2 note android 设备。

谢谢!

编辑:

控件仍然存在,但在 css 中的阴影 DOM 树中显示为大小为 0 x 0px。即使我使用 !important 标志在 chrome 开发工具中更改它们的大小,它们也不会出现。

有任何想法吗?

4

3 回答 3

1

这是魅族设备使用的 Flyme OS 的问题。由于控件可用且不可见,因此应通过升级 Flyme 操作系统来解决此问题。

请更新 Flyme 操作系统以解决此问题,因为旧版本的 Flyme 似乎在全屏视频模式方面存在一些问题。希望能帮助到你。干杯

于 2017-02-16T10:25:07.107 回答
0

设置然后允许退出全屏的值。

var videoElement = document.getElementById("myvideo");

 function toggleFullScreen() {
if (!document.mozFullScreen && !document.webkitFullScreen) {
  if (videoElement.mozRequestFullScreen) {
    videoElement.mozRequestFullScreen();
  } else {
    videoElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
  }
  document.mozFullScreen = true;
  document.webkitFullScreen = true;
} else {
  if (document.mozCancelFullScreen) {
    document.mozCancelFullScreen();
  } else {
    document.webkitCancelFullScreen();
   }
 }
 }

document.addEventListener("keydown", function(e) {
if (e.keyCode == 13) {
  toggleFullScreen();
}
}, false);

添加这两行..

document.mozFullScreen = true;

document.webkitFullScreen = true;

如果你想要更好的东西

 fullScreenButton.addEventListener("click", function() {
 if (!document.fullscreenElement &&    // alternative standard method
  !document.mozFullScreenElement && !document.webkitFullscreenElement &&      !document.msFullscreenElement ) {  // current working methods
 if (video.requestFullscreen) {
  video.requestFullscreen();
 } else if (video.msRequestFullscreen) {
  video.msRequestFullscreen();
 } else if (video.mozRequestFullScreen) {
  video.mozRequestFullScreen();
 } else if (video.webkitRequestFullscreen) {
  video.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
 }
} else {
 if (document.exitFullscreen) {
  document.exitFullscreen();
 } else if (document.msExitFullscreen) {
  document.msExitFullscreen();
 } else if (document.mozCancelFullScreen) {
  document.mozCancelFullScreen();
 } else if (document.webkitExitFullscreen) {
  document.webkitExitFullscreen();
 }
}
  });
于 2017-02-13T04:31:37.953 回答
0

在您的代码中如何处理您未完全提及的控件属性可能会导致问题

<video id="myvideo">
  <source src="path/to/movie.mp4" />
</video>

<p onclick="toggleControls();">Toggle</p>

<script>
var video = document.getElementById("myvideo");

function toggleControls() {
  if (video.hasAttribute("controls")) {
     video.removeAttribute("controls")   
  } else {
     video.setAttribute("controls","controls")   
  }
}
</script>
于 2017-02-14T04:27:01.857 回答