HarmonyOS 鸿蒙Next横屏播放问题
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
应用级设置屏幕自动旋转:在模块配置文件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