AVProVideo视频进度条

AVProVideo视频进度条1,新建slider并添加事件

大家好,又见面了,我是你们的朋友全栈君。

1,新建slider并添加事件

 1 public MediaPlayer _mediaPlayer;  2 public Slider _videoSeekSlider;  3 public Text time;  4 float _setVideoSeekSliderValue;  5 private bool _wasPlayingOnScrub;  6  7 void Update()  8  {  9 10 int _all = (int)float.Parse((_mediaPlayer.m_Info.GetDurationMs() * 0.001f).ToString("F1")); 11 TimeSpan allTime = new TimeSpan(0, 0, _all); 12 13 int _current = (int)float.Parse((_mediaPlayer.m_Control.GetCurrentTimeMs() * 0.001f).ToString("F1")); 14 TimeSpan currentTime = new TimeSpan(0, 0, _current); 15 16 time.text = currentTime.Hours + ":" + currentTime.Minutes + ":" + currentTime.Seconds + "/" + allTime.Hours + ":" + allTime.Minutes + ":" + allTime.Seconds; 17 if (_mediaPlayer && _mediaPlayer.Info != null && _mediaPlayer.Info.GetDurationMs() > 0f) 18  { 19 float time = _mediaPlayer.Control.GetCurrentTimeMs(); 20 float d = time / _mediaPlayer.Info.GetDurationMs(); 21 _setVideoSeekSliderValue = d; 22 _videoSeekSlider.value = d; 23  } 24  } 25 26 public void OnVideoSeekSlider() 27  { 28 if (_mediaPlayer && _videoSeekSlider && _videoSeekSlider.value != _setVideoSeekSliderValue) 29  { 30 _mediaPlayer.Control.Seek(_videoSeekSlider.value * _mediaPlayer.Info.GetDurationMs()); 31  } 32  } 33 34 35 public void OnVideoSliderBegin() 36  { 37 if (_mediaPlayer) 38  { 39 _wasPlayingOnScrub = _mediaPlayer.Control.IsPlaying(); 40 if (_wasPlayingOnScrub) 41  { 42  _mediaPlayer.Control.Pause(); 43 44  } 45  OnVideoSeekSlider(); 46  } 47  } 48 49 public void OnVideoSliderEnd() 50  { 51 if (_mediaPlayer && _wasPlayingOnScrub) 52  { 53  _mediaPlayer.Control.Play(); 54 _wasPlayingOnScrub = false; 55 56  } 57 }

 

<span role="heading" aria-level="2">AVProVideo视频进度条

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/155668.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • verilog调用vhdl模块_verilog和vhdl哪个更好

    verilog调用vhdl模块_verilog和vhdl哪个更好初学FPGA,记录一些个人的探索历程和心得。本文的初衷是为了验证VHDL和Verilog文件互相调用功能。以一个简单的二选一选择器为例,分别用两种方法实现功能。一、用Verilog文件调用VHDL以Verilog文件为顶层文件,调用VHDL模块,testbench为Verilog文件。1、新建project2、编写.vhd文件,FPGA_VHDL.vhd,文件名与模块名称一致;3、编写FPGA_Verilog.v文件,文件名与模块名称一致,且设为top文件。4、编写testbench文件

  • Google自定义搜索引擎[通俗易懂]

    Google自定义搜索引擎[通俗易懂]本文主要介绍如何通过Google的API来定义自己的搜索引擎,并将Google搜索框嵌入到自己的web页面。另外,分析了自定义搜索引擎请求数据的url,模拟请求并获取搜索的结果。1写在前面前段时

  • LSM树详解_黑龙江野生鱼品种

    LSM树详解_黑龙江野生鱼品种LSM树(Log-Structured-Merge-Tree)的名字往往会给初识者一个错误的印象,事实上,LSM树并不像B+树、红黑树一样是一颗严格的树状数据结构,它其实是一种存储结构,目前HBase,LevelDB,RocksDB这些NoSQL存储都是采用的LSM树。LSM树的核心特点是利用顺序写来提高写性能,但因为分层(此处分层是指的分为内存和文件两部分)的设计会稍微降低读性能,但是通过牺牲小部分读性能换来高性能写,使得LSM树成为非常流行的存储结构。1、LSM树的核心思想如上图所示,LSM树有

    2022年10月29日
  • sqlSessionTemplate的优点

    sqlSessionTemplate的优点sqlSessionTemplate的优点 1.sqlSessionTemplate里面有一个sqlSessionProxy,可以使用动态代理 2.正因为动态代理,invoke方法里面会根据是否是事务,获取相同或不同的sqlSession,最后这个sqlSession去执行目标方法和关闭这个sqlSession 这样可以符合spring单例的特点,为不同的事务或conn,创建不同的sqlSession 如果直接在spring中注册一个sqlSession,那么不同连接都获得相

  • Redis 高级面试题 学会这些还怕进不了大厂?「建议收藏」

    Redis 高级面试题 学会这些还怕进不了大厂?

  • IntelliJ IDEA 详细图解最常用的配置 ,适合刚刚用的新人。

    IntelliJ IDEA 详细图解最常用的配置 ,适合刚刚用的新人。IntelliJIDEA使用教程(总目录篇)刚刚使用IntelliJIDEA编辑器的时候,会有很多设置,会方便以后的开发,磨刀不误砍柴工。比如:设置文件字体大小,代码自动完成提示,版本管理,本地代码历史,自动导入包,修改注释,修改tab的显示的数量和行数,打开项目方式,等等一大堆东西。总结一下,免得下次换了系统,还得再找一遍配置。具体总结如下图:设置外观和字体大小这…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号