测试C#调用Aplayer播放视频(3:编写简易播放器)

这篇具有很好参考价值的文章主要介绍了测试C#调用Aplayer播放视频(3:编写简易播放器)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  学习了参考文献1中的示例代码,也找出了前一篇文章中自己测试控件但无法播放视频的问题(没有将解码库文件复制到可执行程序所在的codecs文件夹内),本文基于APlayer组件编写简单的视频播放器,主要实现以下功能:

序号 功能 说明
1 自定义logo 调用SetCustomLogo函数设置未播放视频时的显示图片,图片来自参考文献2
2 打开文件 调用Open函数打开并播放视频文件
3 定时刷新播放信息 参照参考文献1中的demo,使用定时器定时刷新当前播放进度,调用GetDuration获取视频总时长,调用GetPosition获取当前播放时间,同时在OnOpenSucceeded中启动定时器,在OnStateChanged事件中停止定时器
4 暂停/播放/停止 调用Pause/Play/Close函数暂停/播放/停止视频
5 设置音量 调用SetVolume设置音量,尽在0-100范围内调节音量,并未使用APlayer的10倍放大
6 拖拽时间条 调用SetPosition函数在Trackbar的Scroll事件中重新设置播放时间
7 快进/快退 调用SetPosition函数快进/快退10秒

  最后是程序界面、播放视频截图及主要代码:
测试C#调用Aplayer播放视频(3:编写简易播放器),dotnet编程,c#,Aplayer,视频播放器测试C#调用Aplayer播放视频(3:编写简易播放器),dotnet编程,c#,Aplayer,视频播放器

public Form1()
{
   this.axPlayer1.SetCustomLogo(((Bitmap)Bitmap.FromFile("gundam.jpg")).GetHbitmap().ToInt32());
   axPlayer1.OnOpenSucceeded += new EventHandler(OnOpenSucceeded);
   axPlayer1.OnStateChanged += new _IPlayerEvents_OnStateChangedEventHandler(OnStateChanged);
}

string TimeToString(TimeSpan span)
{
   return span.Hours.ToString("00") + ":" +
   span.Minutes.ToString("00") + ":" +
   span.Seconds.ToString("00");
}

void OnOpenSucceeded(object sender, EventArgs e)
{
   lblProgress.Text= "00:00:00/"+TimeToString(TimeSpan.FromMilliseconds(axPlayer1.GetDuration()));            
   tbTimeline.Maximum = axPlayer1.GetDuration();
   timer1.Start();
}

private void UpdatePlayInfo(object sender, EventArgs e)
{
   lblProgress.Text = TimeToString(TimeSpan.FromMilliseconds(axPlayer1.GetPosition()))+"/" + TimeToString(TimeSpan.FromMilliseconds(axPlayer1.GetDuration()));
   tbTimeline.Value = axPlayer1.GetPosition() < 0 ? 0 : axPlayer1.GetPosition();
}

private void tbVolumn_ValueChanged(object sender, EventArgs e)
{
   axPlayer1.SetVolume(tbVolumn.Value);
}

private void btnForward_Click(object sender, EventArgs e)
{
   axPlayer1.SetPosition(axPlayer1.GetPosition() + 10000);
}

private void btnBack_Click(object sender, EventArgs e)
{
   int timeLine = axPlayer1.GetPosition() - 10000;
   axPlayer1.SetPosition(timeLine < 0 ? 0 : timeLine);
}

private void btnClose_Click(object sender, EventArgs e)
{
   axPlayer1.Close();
}

private void btnPlay_Click(object sender, EventArgs e)
{
   axPlayer1.Play();
}

private void btnPause_Click(object sender, EventArgs e)
{
   axPlayer1.Pause();
}

void OnStateChanged(object sender, _IPlayerEvents_OnStateChangedEvent e)
{
   switch (e.nNewState)
   {
       case 0:
           tbTimeline.Value = 0;
           lblProgress.Text = "00:00:00/00:00:00" ;   
           timer1.Stop();
           break;                
   }
}

private void btnOpen_Click(object sender, EventArgs e)
{
   using (OpenFileDialog ofd = new OpenFileDialog())
   {
       ofd.Filter = "mp4|*.mp4|avi|*.avi|rm|*.rm|rmvb|*.rmvb|flv|*.flv|xr|*.xr|所有文件|*.*";
       ofd.Multiselect = false;
       if (ofd.ShowDialog() == DialogResult.OK)
       {
           axPlayer1.Open(ofd.FileName);
       }
   }
}

private void tbTimeline_Scroll(object sender, EventArgs e)
{
   axPlayer1.SetPosition(tbTimeline.Value);
   lblProgress.Text = TimeToString(TimeSpan.FromMilliseconds(axPlayer1.GetPosition())) + "/" + TimeToString(TimeSpan.FromMilliseconds(axPlayer1.GetDuration()));
}

参考文献:
[1]https://blog.csdn.net/qq_45533937/article/details/115800927
[2]https://www.hpoi.net/hobby/10836文章来源地址https://www.toymoban.com/news/detail-744256.html

到了这里,关于测试C#调用Aplayer播放视频(3:编写简易播放器)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【OpenCV+Qt】实现简易视频播放器——支持进度条拖动

    OpenCV实现视频播放器,其思路大致就是在线程中使用OpenCV中的VideoCapture循环读取本地视频的每一帧Mat,然后发送到界面转换成QImage进行显示,而进度条拖动则用到了VideoCapture中的set函数,进度条则是使用Qslider;并且通过自定义新的进度条类实现点击跳转功能; 效果: 1.进行

    2023年04月08日
    浏览(54)
  • ChatGpt+人工修正 PyQt5 实现简易视频播放器

    支持功能: 1. 视频播放速度调整 2. 视频声音调整 3. 视频当前播放帧截帧(用的ffmpeg 怎么装自己百度去,截取准确度很高,QT自带的截帧那玩意信号不触发,不好使) 4. 视频暂停

    2024年02月16日
    浏览(42)
  • 【Harmony OS】【ArkUI】ets开发 简易视频播放器

    前言:这一次我们来使用ets 的Swiper 组件、List 组件和Video 组件制作一个简易的视频播放器。本篇是以HarmonyOS 官网的codelab 简易视频播放器(eTS )为基础进行编写。本篇最主要的内容就是一个主界面包括顶部的视频海报轮播,中部的视频播放列表,以及点击海报和播放列表进

    2023年04月27日
    浏览(40)
  • 038-第三代软件开发-简易视频播放器-自定义Slider (二)

    : Qt 、 Qml 、 3 、 4 、 5 欢迎来到我们的 QML C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。

    2024年02月07日
    浏览(39)
  • 用Python编写一个通用视频播放器:让您观看任何类型的正经视频!

    用Python编写一个通用视频播放器:让您观看任何类型的正经视频! 在这篇文章中,我将向您展示如何使用Python编写一个简单但功能强大的视频播放器。这个播放器将能够处理各种视频文件格式,并提供基本的播放、暂停、停止和进度控制功能。让我们开始吧! 首先,我们需

    2024年02月03日
    浏览(41)
  • Qt/C++编写手机版本视频播放器和Onvif工具(可云台和录像)

    用Qt+ffmpeg写播放器很多人有疑问,为何不用Qt自己的多媒体框架来写,最重要的原因是Qt自带的目前都依赖具体的本地解码器,如果解码器不支持,那就是歇菜的,最多支持个MP4格式,而且在手机上也都是支持本地少部分格式的文件,对于各种视频流完全无能无力。而ffmpeg就不

    2024年02月10日
    浏览(42)
  • html5视频播放器代码调用实例(视频切换\倍速切换)

    本文将对视频播放相关的功能进行说明,包括初始化播放器、播放器尺寸设置、视频切换、倍速切换、视频预览、自定义视频播放的开始/结束时间、禁止拖拽进度、播放器皮肤、控件按钮以及播放控制等。  图 / html5视频播放器调用效果(倍速切换)    图 / html5视频播放器

    2024年02月07日
    浏览(56)
  • <Python>PyQt5+ffmpeg,简单视频播放器的编写(解码器:K-lite)

    更新日志: 202211251640:第一版,基本功能:视频导入,播放、暂停、播放时间显示、音量控制 概述:本文是利用PyQt5加上ffmpeg来编写一个具备基本功能的视频播放器(播放、暂停、进度调整、音量调整、视频播放列表、文件夹导入视频等) 实现步骤设想:PyQt制作UI界面,利

    2024年02月16日
    浏览(54)
  • uniapp - 微信小程序接入腾讯视频播放器功能插件,uniapp开发微信小程序端调用引入并使用腾讯视频播放组件完整全流程(详细示例源码,一键复制开箱即用)

    在uniapp 微信小程序项目中,集成腾讯视频功能插件,实现播放腾讯视频效果,附带详细示例源码及注释, 你可以跟着步骤一步步来,保证几分钟就能快速在uniapp小程序项目中植入腾讯视频功能!

    2024年02月12日
    浏览(68)
  • PyQt5实现简易音乐播放器

    环境 vscode python 3.10.0 PyQt5 5.15.4 功能目标 能够读取本地的音乐文件,并实现播放的开关、曲目的切换和音量的加减 具体实现 新建一个文件夹,在文件夹下再新建一个文件夹,命名为music,将歌曲放入其中。在vscode中打开该文件夹。 在QtDesigner中搭建出UI界面,并使用pyuic工具转

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包