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

基于鸿蒙API10的RTSP播放器(二:视频切换实现)

目标:

  1. 设置一个播放下一个视频的按钮,通过改变url地址实现 ✔
  2. 设置一个视频播放底部轨道,轨道左侧固定为00:00,右侧为当前已经播放的时长差✖
  3. 设置音量调节按钮,再实现滑动增减音量发✖
// 这里为ArkTS代码,标记为ts只是为了上色好看。注意代码放置位置// 1.播放位置状态变量,在结构体之外
let  locationIndex:number = 0 ;// 2.设置url组,苹果测试地址,最快  @State private playerURL: string = "http://devimages.apple.com/iphone/samples/bipbop/gear3/prog_index.m3u8";  @State private playerURLs:string[] = [  // 苹果测试地址,3s  "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8",  // 苹果测试地址,1s  'http://devimages.apple.com/iphone/samples/bipbop/gear3/prog_index.m3u8',  // 苹果测试,4s  "http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8",  // BBC测试  "https://vs-dash-ww-rd-live.akamaized.net/pl/testcard2020/avc-mobile.m3u8",  // 苹果测试  "http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8",  // 远程湖面监控  "rtsp://stream.strba.sk:1935/strba/VYHLAD_JAZERO.stream",  // BBC测试  "https://vs-dash-ww-rd-live.akamaized.net/pl/testcard2020/avc-mobile.m3u8",  // 海边沙滩监控  "rtsp://37.157.51.30/axis-media/media.amp",  // BBC测试  "https://vs-dash-ww-rd-live.akamaized.net/pl/testcard2020/avc-mobile.m3u8",  // 灯光闪烁监控  // "rtsp://77.110.228.219/axis-media/media.amp",  // BBC测试  "https://vs-dash-ww-rd-live.akamaized.net/pl/testcard2020/avc-mobile.m3u8",  // 观测站监控  "rtsp://196.21.92.82/axis-media/media.amp",  
]//3.设置改变位置变量函数,通过改变url地址播放下一个视频  
nextPlayer() {  // 循环条件  if (locationIndex == this.playerURLs.length - 1) {  locationIndex = 0;  } else {  locationIndex++;  }  // 停止播放  mIjkMediaPlayer.stop();  mIjkMediaPlayer.reset();  this.playerURL = this.playerURLs[locationIndex]  this.play(this.playerURL);  
}//4.在build()函数中通过按钮调用nextPlayer()方法
Button('Next')  .width('200px')  .onClick(() => {  this.nextPlayer();  })

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 类的继承性和多态性
  • 微生物分类检测系统源码分享
  • 004: VTK读入数据---vtkImageData详细说明
  • Go语言中的链表与双向链表实现
  • 食品分类2检测系统源码分享
  • 【Vue嵌套数据中,实现动态表头和内容】
  • 《职教论坛》
  • Angular面试题一
  • 闯关leetcode——21. Merge Two Sorted Lists
  • Java面试篇基础部分-Java中常用的I/O模型
  • Rust 简介与安装
  • leetcode 每日一题
  • 【C++】—— list 的了解与使用
  • 使用3-8译码器实现全减器(Verilog详细解析设计篇)
  • React两种路由模式的实现原理
  • python3.6+scrapy+mysql 爬虫实战
  • [译]CSS 居中(Center)方法大合集
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 11111111
  • 2019年如何成为全栈工程师?
  • 30秒的PHP代码片段(1)数组 - Array
  • axios 和 cookie 的那些事
  • css布局,左右固定中间自适应实现
  • Docker 笔记(2):Dockerfile
  • flutter的key在widget list的作用以及必要性
  • java2019面试题北京
  • js正则,这点儿就够用了
  • mysql 5.6 原生Online DDL解析
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • select2 取值 遍历 设置默认值
  • Spring核心 Bean的高级装配
  • Vue--数据传输
  • 关于Java中分层中遇到的一些问题
  • 规范化安全开发 KOA 手脚架
  • 聚类分析——Kmeans
  • 排序算法之--选择排序
  • 如何选择开源的机器学习框架?
  • 世界上最简单的无等待算法(getAndIncrement)
  • 收藏好这篇,别再只说“数据劫持”了
  • 原生 js 实现移动端 Touch 滑动反弹
  • Hibernate主键生成策略及选择
  • 树莓派用上kodexplorer也能玩成私有网盘
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • #Lua:Lua调用C++生成的DLL库
  • #知识分享#笔记#学习方法
  • (007)XHTML文档之标题——h1~h6
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (C#)获取字符编码的类
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (二十九)STL map容器(映射)与STL pair容器(值对)