HarmonyOS鸿蒙Next中AVPlayer每次播放完一个音频,是reset还是再新建一个

HarmonyOS鸿蒙Next中AVPlayer每次播放完一个音频,是reset还是再新建一个

this.avPlayer = await media.createAVPlayer();

当一个音频播完,要播下一个,这时候是建议 reset 还是 重新 await media.createAVPlayer();

6 回复

使用AVPlayer 时根据状态AVPlayerState,当播放处于prepared / playing / paused / completed状态时,播放引擎处于工作状态,这需要占用系统较多的运行内存。当客户端暂时不使用播放器时,调用reset()或release()回收内存资源,做好资源利用,重复创建createAVPlayer会增加资源消耗,且可创建的音视频播放实例(即音频、视频、音视频三类相加)不能超过16个,推荐使用reset 。

支持文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/using-avplayer-for-playback-V13

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-media-V13

更多关于HarmonyOS鸿蒙Next中AVPlayer每次播放完一个音频,是reset还是再新建一个的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


请问怎么让应用在后台清掉后再次打开能继续播放音频,

this.avPlayer = await media.createAVPlayer();
// 只执行下面两个无法切换歌曲
this.avPlayer.reset();
this.avPlayer.url = url;

你好,楼主,这个问题解决了吗,能否告之?

在HarmonyOS鸿蒙Next中,AVPlayer播放完一个音频后,无需reset或新建一个AVPlayer实例。AVPlayer会自动进入“PlaybackCompleted”状态,此时可以直接调用prepare()方法准备下一个音频资源,然后调用start()方法开始播放。这种方式避免了频繁创建和销毁实例的开销,提高了性能和资源利用率。开发者只需关注资源准备和播放控制,无需手动管理reset或新建操作。

在HarmonyOS鸿蒙Next中,AVPlayer在播放完一个音频后,通常不需要重置或新建实例。你可以调用prepareAsyncsetSource方法加载新的音频资源进行播放。这样可以复用同一个AVPlayer实例,提高性能。如果确实需要重置播放器状态,可以调用reset方法,但一般情况下直接加载新资源即可。

回到顶部