鸿蒙开发之监听屏幕横竖屏切换

鸿蒙开发的横竖屏切换隶属于mediaquery模块,通过注册监听,回调方法来让我们处理横竖屏切换后的业务逻辑。

import mediaquery from '@ohos.mediaquery'

@Entry
@Component
struct OfficalMediaqueryPage {
  listener = mediaquery.matchMediaSync('(orientation: landscape)')
  build() {
      Column({space:30}) {
        Text('开始监听')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            console.log('开始监听')
            this.listenScreenDirection()
          })

        Text('去掉监听')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            console.log('去掉监听')
            this.unlistenScreenDirection()
          })
      }
      .width('100%')
      .backgroundColor(this.color)
      .height('100%')
  }

    
  //监听屏幕旋转
  listenScreenDirection()  {
    this.listener.on('change',this.onScreenLandscape)
  }

  //去掉
### 鸿蒙 NEXT 开发视频播放器教程与示例代码 鸿蒙系统(HarmonyOS)的视频播放器开发可以通过多种方式实现,包括使用官方提供的 `AVPlayer` API 和第三方库。以下是关于鸿蒙 NEXT 开发视频播放器的相关资料和教程汇总: #### 1. 视频播放器开发基础 在鸿蒙系统中,`AVPlayer` 是核心的多媒体播放组件,支持音视频播放功能[^5]。开发者可以通过以下步骤完成视频播放器的基本功能: - 创建 `AVPlayer` 实例。 - 设置播放资源(如本地文件或网络流媒体地址)。 - 设置播放窗口(绑定到 UI 组件)。 - 调整播放参数(如音量、倍速、缩放模式等)。 - 控制播放状态(播放、暂停、跳转、停止)。 #### 2. 示例代码:视频横竖屏切换 鸿蒙官方提供了一个视频横竖屏切换的示例代码[^4],展示了如何通过监听屏幕方向变化实现视频全屏切换功能。以下是关键代码片段: ```typescript // VideoPlayView.ets - 视频播放组件 @Entry @Component struct VideoPlayView { @State private player: AVPlayer = new AVPlayer(); build() { Column() { Video({ src: "https://example.com/video.mp4", player: this.player, autoPlay: true, controls: true, }).width("100%").height("100%") } .onRotationChanged((orientation) => { if (orientation === DeviceOrientation.LandscapeLeft || orientation === DeviceOrientation.LandscapeRight) { // 全屏逻辑 this.enterFullScreen(); } else { // 退出全屏逻辑 this.exitFullScreen(); } }) } private enterFullScreen() { // 锁定屏幕旋转 this.lockScreenOrientation(); } private exitFullScreen() { // 解锁屏幕旋转 this.unlockScreenOrientation(); } private lockScreenOrientation() { // 锁定屏幕方向为当前方向 setPreferredOrientation(DeviceOrientation.LockCurrent); } private unlockScreenOrientation() { // 恢复默认屏幕方向 setPreferredOrientation(DeviceOrientation.Unlocked); } } ``` #### 3. 第三方库支持 如果需要更复杂的功能(如边播边缓存、截图、生成 GIF 等),可以参考第三方库 `GSYVideoPlayer`[^3]。虽然该库主要针对 Android 平台,但其设计理念可以为鸿蒙开发提供参考。 #### 4. 官方学习资料 为了更好地掌握鸿蒙视频播放器开发,建议参考以下官方学习资料: - **鸿蒙系统学习手册**:涵盖 ArkTS、ArkUI 等知识点,适合初学者快速上手[^1]。 - **鸿蒙 NEXT 开发快速入门教程**:详细讲解 ArkTS 语法装饰器和布局设计[^2]。 - **鸿蒙多媒体分享 - 视频横竖屏切换**:提供完整的代码示例和目录结构[^4]。 #### 5. 注意事项 - 在开发过程中,确保正确处理 `AVPlayer` 的生命周期,避免资源泄漏[^5]。 - 使用 `on('stateChange')` 方法监听播放状态变化,及时响应用户操作或系统事件。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值