鸿蒙arkts学习 初识avplayer+Xcomponent

学习内容

使用avplayer+Xcompnent实现最基础的视频播放功能,类似avplayer的Hello World

avPlayer读取和控制视频播放,Xcomponent展示画面

基本步骤

  1. 创建avPlayer
  2. 设置播放源(以网络url形式)
  3. 注册avPlayer的回调函数(状态机)(在initialized状态下设置相应Xcomponent的SurFaceId 简单说就是avPlayer绑定一个Xcomponent)

代码基本结构

完整代码

import { media } from '@kit.MediaKit';

@Entry
@Component
struct Index {
  private xComponentId = 'VideoSurface'
  private avPlayer?: media.AVPlayer
  private xComponentController:XComponentController = new XComponentController()

  async aboutToAppear(): Promise<void> {
    media.createAVPlayer().then((player:media.AVPlayer)=>{
      this.avPlayer = player
      this.avPlayer.url ="你的url"
      let surfaceID = this.xComponentController.getXComponentSurfaceId()
      this.s
鸿蒙系统中,通过 ArkTS 使用 `AVPlayer` 播放视频时,调整视频的亮度可以通过 `Effect` 相关接口实现。`Effect` 是 HarmonyOS 提供的用于对视频或图像进行实时处理的模块,支持亮度、对比度、饱和度等参数的调整。[^1] ### 实现步骤 1. **创建 `AVPlayer` 实例** 首先需要创建一个 `AVPlayer` 实例,用于播放视频资源。 ```ts import AVPlayer from '@ohos.multimedia.avplayer'; let avPlayer: AVPlayer = AVPlayer.create(); ``` 2. **设置视频播放源** 设置视频文件路径或 URI,作为 `AVPlayer` 的播放源。 ```ts avPlayer.setSource({ uri: 'file://path/to/your/video.mp4' }); ``` 3. **创建并配置 `Effect` 实例** 创建 `Effect` 实例,并通过 `setBrightness` 方法设置亮度值。亮度值通常在 `0.0` 到 `1.0` 之间,其中 `0.0` 表示最暗,`1.0` 表示默认亮度。 ```ts import Effect from '@ohos.multimedia.effect'; let effect: Effect = Effect.create(); effect.setBrightness(1.5); // 设置亮度值 ``` 4. **将 `Effect` 应用于 `AVPlayer`** 将配置好的 `Effect` 实例绑定到 `AVPlayer`,使其在播放视频时应用该效果。 ```ts avPlayer.setEffect(effect); ``` 5. **开始播放视频** 最后调用 `play` 方法开始播放视频。 ```ts avPlayer.play(); ``` ### 完整代码示例 ```ts import AVPlayer from '@ohos.multimedia.avplayer'; import Effect from '@ohos.multimedia.effect'; let avPlayer: AVPlayer = AVPlayer.create(); avPlayer.setSource({ uri: 'file://path/to/your/video.mp4' }); let effect: Effect = Effect.create(); effect.setBrightness(1.5); // 设置亮度值 avPlayer.setEffect(effect); avPlayer.play(); ``` ### 注意事项 - 亮度值范围应根据具体需求设定,超出推荐范围可能导致视觉效果失真。 - 在实际开发中,建议通过用户交互(如滑动条)动态调整亮度值,以提升用户体验。 - 需要确保设备支持 `Effect` 模块,部分低版本设备可能不支持图像处理功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值