HarmonyOS 鸿蒙Next 升级到api11的时候,关于avplay

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

HarmonyOS 鸿蒙Next 升级到api11的时候,关于avplay

我在api9的时候用avplay实现了播放器播放音频功能,那个时候是允许在全局定义

private avPlayer; 然后用this.avPlayer 来绑定按钮控制播放暂停等操作的

现在升级到11之后,首先就不能允许这样空定义,但是初始化是  avPlayer = await media.createAVPlayer(); 

await是不被允许写在没有  async 修饰的方法的。

假设我只在某个async修饰的方法中去定义初始化,那么我在页面按钮怎么控制这个avPlayer来进行播放暂停等动作呢?

我观察官方文档https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/using-avplayer-for-playback-V5

里面也是在方法中定义的,没有演示怎么在页面按钮中去控制播放或者暂停

3 回复

官方示例中常用方式:

声明:仍然声明为组件全局变量

private avPlayer: media.AVPlayer | undefined = undefined;  (漏写了真实类型:)

初始化:可按原来方式,相应方法前加async即可;

使用:在要调用的位置添加 if (avPlayer != undefined) { } 包围调用的代码以免IDE警告对象可能是undefined状态。

嗯 我刚刚也找到了 private avPlayer: media.AVPlayer | undefined = undefined; 类型还是要声明的 media.AVPlayer还得加上 感谢

关于HarmonyOS 鸿蒙Next升级到API11时关于avplay的问题,你需要在全局声明avPlayer为media.AVPlayer | undefined类型,并在需要使用时检查其是否为undefined。在API11中,由于语言规范的变化,你需要在async函数中初始化avPlayer,这通常意味着你需要在适当的事件处理或初始化逻辑中处理它。如果avPlayer需要在多个地方被访问和控制,建议将其封装在适当的组件或服务中。如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部