HarmonyOS 鸿蒙Next横屏播放问题

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next横屏播放问题

播放视频,如果视频在竖屏状态下,如何设置成横屏,并且这个时候还能继续转屏操作。
当前监听转屏的方法如下:

this.orientationChangeListener = mediaquery.matchMediaSync('(orientation: portrait)');
this.orientationChangeListener.on('change', (result) => { this.onPortrait(result) });

目前通过按钮设置成横屏的方法 w.setPreferredOrientation(window.Orientation.AUTO_ROTATION_LANDSCAPE) 但是这样就无法触发竖屏的监听无法转成横屏了。 能否可以在没有转屏的时候直接设置成横屏状态。 非常感谢。


更多关于HarmonyOS 鸿蒙Next横屏播放问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

应用级设置屏幕自动旋转:在模块配置文件module.json5中给EntryAbility设置"orientation": “auto_rotation_restricted”,再打开手机自动旋转即可。

应用中通过window.getLastWindow 获取window实例→用setPreferredOrientation设置窗口显示方向的属性。通过display.on可以监听屏幕状态改变。点击设置了具体方向后,再加上传感器模式判断屏幕方向。

传感器监听手机旋转角度的Demo:

import sensor from '@ohos.sensor';
import base from '@ohos.base';

export function onDegree(callback: base.Callback<string>): void {
  sensor.on(sensor.SensorId.GRAVITY, (data: sensor.GravityResponse) => {
    let degree: number = -1;
    let rotation: string = 'INVALID';
    degree = CalDegree(data.x, data.y, data.z)
    if (degree >= 0 && (degree <= 30 || degree >= 330)) {
      rotation = 'ROTATION_0';
    } else if (degree >= 60 && degree <= 120) { // Use ROTATION_90 when degree range is [60, 120]
      rotation = 'ROTATION_90';
    } else if (degree >= 150 && degree <= 210) { // Use ROTATION_180 when degree range is [150, 210]
      rotation = 'ROTATION_180';
    } else if (degree >= 240 && degree <= 300) { // Use ROTATION_270 when degree range is [240, 300]
      rotation = 'ROTATION_270';
    }
    callback(rotation);
  });
}

function CalDegree(x: number, y: number, z: number): number {
  let degree: number = -1;
  // 3 为 有效_增量_角度_阈值_系数
  if ((x * x + y * y) * 3 < z * z) {
    return degree;
  }
  degree = 90 - (Number)(Math.round(Math.atan2(y, -x) / Math.PI * 180));
  return degree >= 0 ? degree % 360 : degree % 360 + 360;
}

更多关于HarmonyOS 鸿蒙Next横屏播放问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS(鸿蒙)Next横屏播放问题,以下提供直接且专业的解答:

在HarmonyOS系统中,若遇到Next(假设为某个应用或功能组件)横屏播放不正常的情况,首先确认设备是否已开启自动旋转屏幕功能。这通常在设备的下拉通知栏中可找到相关设置。若已开启,但Next仍无法横屏播放,可能是由于应用本身未适配横屏模式或系统权限设置问题。

  • 检查应用适配:确认Next是否支持横屏模式。部分应用可能仅支持竖屏播放,需查看应用内的设置或开发者文档。
  • 系统权限:确保应用已获取自动旋转屏幕的权限。在“设置”->“应用和服务”->“应用管理”中找到Next,检查其权限设置。
  • 重启设备:有时简单的重启可以解决系统或应用缓存导致的问题。
  • 更新系统/应用:确保鸿蒙系统及Next应用均为最新版本,以排除因版本过旧导致的问题。

如果上述步骤均无法解决问题,可能是系统或应用存在更深层次的兼容性问题。此时,建议直接联系官网客服以获取更专业的技术支持。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部