视频流在某些浏览器/设备组合上横向移动

时间:2018-03-16 16:46:55

标签: javascript windows html5 mediastream

我正在呼叫getUserMedia()以获取视频流,只需将stream设置为视频元素的srcObject即可。

特别是在2个不同Windows平板电脑上的Chrome上,在纵向模式下,视频是旁边的。

我在流或视频轨道对象中找不到任何方向信息,宽度和高度轨道信息与视频元素匹配,并且与宽高比轨道信息一致。

您可以使用https://camera.stackblitz.io

复制

如何从流中获取方向信息或以逻辑方式旋转视频?

编辑:

我不想要设备或屏幕的方向,而是视频流的方向。也许“轮换”是正确的措辞。 换句话说,如何在没有人看的情况下知道何时旋转视频?

编辑2:

“纵向模式下的Windows平板电脑上的Chrome”正是我所经历的我不知道问题是否与此相关或问题与每个Windows平板电脑有关但主要问题是如何判断视频是否是横向还是旋转?

2 个答案:

答案 0 :(得分:1)

据我所知,

  

方向是屏幕而不是流。

Screen Orientation API提供了阅读屏幕方向类型和角度的功能,可在屏幕方向状态发生变化时通知,并能够将屏幕方向锁定到特定状态。

在我看来,管理方向的一个好方法是使用media query,如下所示:

/* 
  ##Device = Tablets, Ipads (portrait)
  ##Screen = B/w 768px to 1024px
*/

@media (min-width: 768px) and (max-width: 1024px) {

  //CSS

}

要使用其他方法,例如JavaScript或清单,请参阅此article

修改

您在 Windows Tablet 的问题标题中提到过,您也提到过 你正在寻找一种方法来设置方向选项而不需要人类看。你的第二个条件与前者相矛盾。

  

我们如何检测设备是Windows平板电脑没有人看   视频??

无法回答这个问题。我认为你对流的看法是错误的。

您可以一次选择其中一个:

  1. 如果您需要检测某些设备,例如 Windows Tablet ,则可以 使用媒体查询或JavaScript方法来检测 设备
  2. 如果您需要设置选项而无需人工查看,您可以 使用MediaStreamTrack.applyConstraints()等方法。

答案 1 :(得分:0)

您可以通过javascript与screen.orientation获取方向信息。 请参阅MDN Docs