当前位置: 首页 > article >正文

基于鸿蒙API10的RTSP播放器(五:拖动底部视频滑轨实现跳转)

拖动前播放位置:
在这里插入图片描述

拖动后播放位置:

在这里插入图片描述

  1. 在Slider组件中,添加onChange方法进行监听,当视频轨道拖放结束时,触发this.seekTo()函数,其中seekTo函数需要传递一个视频已播放时长作为参数
Slider({  
  value: this.progressValue,  
  min: 0,  
  max: 100,  
  step: 1,  
  style: SliderStyle.OutSet  
})  
  .height('20px')  
  .width('650px')  
  .blockColor($r('app.color.slider_block_color'))  
  .trackColor($r('app.color.slider_track_color'))  
  .selectedColor($r('app.color.slider_selected_color'))  
  .showSteps(true)  
  .showTips(true)  
.enabled(this.sliderEnable)  
.onChange((value: number, mode: SliderChangeMode) => {  
  LogUtils.getInstance().LOGI("plumcarefree slider-->onChangeStart:" + value);  
  // 状态值为2时,标志手势离开滑块  
  if (mode == SliderChangeMode.End) {  
    // 获取滑块位置  
    let seekValue = value * (mIjkMediaPlayer.getDuration() / 100);  
    // 设置视频位置  
    this.seekTo(seekValue.toString());  
  }  
  LogUtils.getInstance().LOGI("plumcarefree slider-->onChangestartEnd:" + value);  
})
  1. 编写seekTo()函数,可以按照自己需求添加一些额外的逻辑。核心函数是继续调用底层的seekTo()函数
seekTo(value: string) {  
  // if (mIjkMediaPlayer.isPlaying()) {  
  //   mIjkMediaPlayer.pause();  // 先暂停视频  
  // }  
  mIjkMediaPlayer.seekTo(value);  
  
  // 延迟执行reset和seek操作,确保资源释放完毕  
  // setTimeout(() => {  
  //   mIjkMediaPlayer.stop();  //   mIjkMediaPlayer.reset();  //   // 设置新位置并重新播放  
  //   mIjkMediaPlayer.seekTo(value);  
  //   mIjkMediaPlayer.start();  // }, 100);
  }

http://www.kler.cn/news/302504.html

相关文章:

  • pytorch torch.triu函数介绍
  • python实现进化算法
  • 在国产芯片上实现YOLOv5/v8图像AI识别-【4.4】RK3588网络摄像头推理后推流到RTSP更多内容见视频
  • 海思SD3403(21AP10, 108DC2910 )4K60 的 ISP 图像处理能力,4Tops INT8算力
  • 数据结构2 :双向链表和内核链表
  • mysql可重复读不能解决幻读吗?
  • linux————根据端口查找运行目录的三种方法
  • STM32内部闪存FLASH(内部ROM)、IAP
  • 信息安全工程师题
  • ASR(自动语音识别)识别文本效果的打分总结
  • 用Cri-O,Sealos CLI,Kubeadm方式部署K8s高可用集群
  • 【docker】了解什么是Docker
  • 欧洲麻花钻市场主要企业市场占有率及排名
  • Framework | 在Android中运行时获取顶层Activity并处理业务逻辑
  • 【测试】——自动化测试入门(Selenium环境搭建)
  • Golang | Leetcode Golang题解之第395题至少有K个重复字符的最长子串
  • IPC$漏洞多位密码爆破方法
  • 揭开Facebook AI的神秘面纱:如何利用人工智能提升社交体验
  • Java笔试面试题AI答之单元测试JUnit(4)
  • 亚信安全出席第五届国际反病毒大会 探究AI现代网络勒索治理
  • SprinBoot+Vue爱老助老服务平台的设计与实现
  • JAVAEE初阶第六节——网络编程套接字
  • 通信工程学习:什么是SLF签约数据定位功能
  • 携手科大讯飞丨云衔科技为企业提供全栈AI技术解决方案
  • yolov8学习笔记
  • 深入理解Java中的Lambda表达式
  • 如何利用 Smarter Balanced 塑造教育领域的 AI 治理
  • Python-pptx:如何在幻灯片中轻松插入与填充表格
  • 守护应用边界:通过反射API实现安全的输入输出过滤
  • 在Vue中,字符串转换为整数类型