HarmonyOS鸿蒙Next中avplayer如何设置播放进度和单曲循环

HarmonyOS鸿蒙Next中avplayer如何设置播放进度和单曲循环 看过文档和论坛的帖子,但仍然不理解如何设置播放进度和单曲循环。

一、播放进度

目前知道 on('timeUpdate') 可以监听资源播放当前时间,但不知道如何将这个方法返回的时间拿出来放到显示的组件中,同时也不清楚这个监听放在哪里。

durationUpdate 这个时长也是如此,不知道该如何拿出来。

看论坛帖子里有人放在 aboutToAppear 里,但我尝试了下不行,不知道问题在哪。

二、单曲循环

看文档和论坛帖子,说是在 completed 状态时用这个 this.avPlayer.seek(0),但设置后仍然不行,播放完后日志可以打印到‘播放完毕那’,但播放器不会继续播放,不清楚问题出在哪里。

希望有大佬可以指点下,希望详细一些,谢谢!


更多关于HarmonyOS鸿蒙Next中avplayer如何设置播放进度和单曲循环的实战教程也可以访问 https://www.itying.com/category-93-b0.html

11 回复

loop是在这些状态下设置的吗

cke_199.png

更多关于HarmonyOS鸿蒙Next中avplayer如何设置播放进度和单曲循环的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


标题

这是段落文本。

这是另一段落文本。

请问你是怎么保存播放进度的?只用保存时间吗?

循环播放这块,直接调用avplayer的属性loop即可。对于获取播放进度,看官方案例,我理解的做法是:将进度条组件与avplayer播放这个类绑定,就可以将时间传过去

在播放器结束状态触发的时候重置一下播放器就可以重播了,this.avPlayer.reset();

官方codelabs中的VideoPlayer中用的就是这个方法loop的。

好的,我再研究研究,感谢!

希望HarmonyOS能加强与其他品牌设备的兼容性,让更多人受益。

可以看着一文章

大佬,是有文章链接没附上吗?

在HarmonyOS鸿蒙Next中,使用AVPlayer设置播放进度和单曲循环可以通过以下方式实现:

  1. 设置播放进度
    使用AVPlayerseekTo方法可以设置播放进度。该方法接受一个时间参数,单位为毫秒。例如,将播放进度设置为10秒:

    avPlayer.seekTo(10000, AVPlayer.SeekMode.Accurate);
    

    SeekMode可选Accurate(精准定位)或Fast(快速定位)。

  2. 设置单曲循环
    通过设置AVPlayerloop属性为true,可以实现单曲循环播放:

    avPlayer.loop = true;
    
  3. 完整示例

    let avPlayer = new AVPlayer();
    avPlayer.src = 'path_to_media_file';
    avPlayer.loop = true; // 设置单曲循环
    avPlayer.seekTo(10000, AVPlayer.SeekMode.Accurate); // 设置播放进度为10秒
    avPlayer.play();
    

通过上述方法,可以在HarmonyOS鸿蒙Next中实现播放进度设置和单曲循环功能。

在HarmonyOS鸿蒙Next中,使用AVPlayer设置播放进度和单曲循环的方法如下:

  1. 设置播放进度:通过AVPlayerseekTo方法,传入目标时间(毫秒)即可。例如:

    avPlayer.seekTo(5000); // 跳转到5秒处
    
  2. 设置单曲循环:通过AVPlayersetLooping方法,传入true即可。例如:

    avPlayer.setLooping(true); // 开启单曲循环
    

确保在调用这些方法前,AVPlayer已正确初始化并准备好播放。

回到顶部