用WPF写了一个弹幕播放器

看弹幕视频的时候,如果不发弹幕,一个本地的弹幕播放器往往能带来更好的体验。目前已经有一些实现了,最初用过一个MukioPlayer, 后来又用过一个用C++写的BiliLocal,这个程序能自动下载弹幕,播放格式也非常宽泛,功能和性能基本上都没有什么值得挑剔的地方,感觉主要的一个Bug就是进度跳转的时候弹幕要消失一阵子(包括显示/隐藏弹幕的时候)。

前段时间为学习WPF的动画的时候顺便做了一个本地的弹幕播放器练手,后来发现效果还不错,便将其完善了下,现在已经能基本可用了。虽然BiliLocal已经非常给力了,但自己写的控制力度更大,没有BiliLocal的进度跳转是字幕消失的Bug,弹幕滚动算法上也加了一些小调整,看起来更加舒服点(个人感觉),一些想要的功能也可以自己加上去。这个程序虽然是WPF写的,但并没有用什么平台相关的功能,感觉移植到Windows Phone或Win8的Metro界面下应该是比较容易的。

感兴趣的朋友可以下载试用一下:点击下载。(需要.Net 4.5框架)

基本操作:

打开本地视频和弹幕:

  • 点击打开按钮可以打开本地视频文件和弹幕文件,可以同时选择视频文件和弹幕,也可以分别选择。
  • 直接将文件拖到主窗口

视频文件支持和系统相关,我只试了一些h264格式的mp4,mkv等格式的支持需要安装K Lite CodecPack或其它解码器。字幕文件目前只支持bilibili的xml格式的。

打开在线弹幕

  • 目前只支持解析bilibili的在线弹幕,直接点击打开弹幕按钮,输入其Url即可。
  • 直接在浏览器中将视频URL拖入到主窗口中。

播放控制

  • 播放按钮:开始、停止、暂停操作 (双击主界面可显示/隐藏控制面板)
  • 进度条:跳转进度
  • 快捷键:←:后退30s,→:前进30s, 空格:暂停/继续

其它控制操作

  • 声音调整
  • 显示/隐藏字幕

后续待添加的功能:

  1. 支持调整弹幕透明度
  2. 支持调整播放速率
  3. 收藏夹
  4. 区间重复播放
  5. 支持主题
  6. 一些个性化配置(如自定义快捷键,弹幕参数等)
  7. 能够支持外挂字幕和mkv的内置字幕

这些功能实现基本上都不难,但是如果要做相应的界面就非常费时间了,等有精力的时候再慢慢弄。另外,程序中不免有些Bug,欢迎留言指出。

时间: 2024-10-07 00:28:23

用WPF写了一个弹幕播放器的相关文章

用WPF实现一个弹幕播放器

最近写了一系列关于WPF二维动画的Blog,今天准备写个程序来实战一下.由于手头上确实没有什么好的例子,便写了个离线的弹幕播放器,效果如下: 实际上,用WPF实现一个弹幕播放器还是比较简单的,主要分为如下几个步骤: 下载离线弹幕文件,并解析为程序比较方便的识别格式 加载弹幕数据,并生成弹幕动画TimeLine,这里我将每一个弹幕用一个TextBlock表示,用一个Canvas来承载这些弹幕.用关键帧动画来表示弹幕,并将动画和TextBlock关联起来. 使用MediaElement加载弹幕,使用

将WPF版的弹幕播放器给优化了一下

年前较闲的时候研究了一下WPF的性能优化,练手的时将之前写的弹幕播放器给重新写了一下.年前的时间不大够,没有写完,这两天接着弄了一下,基本上弄得差不多了. 主要重写了底层的渲染算法,优化后效果还是非常明显的,试了几个BiliBili上的热门的弹幕,基本上满屏的弹幕依然能流畅播放.在我的i5-750上,cpu占用基本上在16%左右(光播放视频基本上CPU就占用了7%),还是比较令人满意的.并且我这里还是用的比较简单的算法,一开始就把所有的弹幕全部给加载了,也没有使用多线程渲染,还是有一定的优化空间

一个可扩展的弹幕播放器的HTML5实现范例---ABPlayerHTML5

ABPlayerHTML5 是一个简单易懂的现代弹幕魔法播放器.这个项目意在取代基于 Flash 的 ABPlayer,同时也希望能为新一代的HTML5弹幕播放器打造一个实现范例.这个播放器將用相对通俗易懂的方法,实现最基础的弹幕播放器功能,以供开发者参照. 在你的应用中加入ABPlayerHTML5请在 head 元素内引入如下的库. <link rel="stylesheet" href="http://jabbany.github.io/ABPlayerHTML5

关于弹幕播放器的起步

我想,很多的宅男,宅女,包括很多的技术宅都知道弹幕这个词语,起源于niconico这个著名的弹幕视频分享网站,我想,如果自己来做个弹幕播放器怎么样? 于是我找了很多的大神和朋友,其中我很感谢他们帮助我,没有他们我不会学到这些知识. 接下来我公开这名大神的源代码地址 https://code.google.com/p/mukioplayer/ 你懂得,我就不说了. 接下来,我所使用的不是这个源代码,而是这个大神用他的源代码写的一个wordpress插件,总之我先截图吧,让你们看看我现在安装之后的画

ios开发:一个音乐播放器的设计与实现

github地址:https://github.com/wzpziyi1/MusicPlauer 这个medo,关于歌曲播放的主要功能都实现了的.下一曲.上一曲,暂停,根据歌曲的播放进度动态滚动歌词,将当前正在播放的歌词放大显示,拖动进度条,歌曲跟着变化,并且使用Time Profiler进行了优化,还使用XCTest对几个主要的类进行了单元测试. 已经经过真机调试,在真机上可以后台播放音乐,并且锁屏时,显示一些主要的歌曲信息. 首页: 歌曲内部播放: 当拖动小的进度条的时候,歌曲也会随之变化.

做个简单的本地弹幕播放器

前言 本文仅仅是做一个简单的弹幕播放器 本文弹幕播放器仅仅是演示一下发送弹幕功能 请跳转本文底部的在线调试代码进行调试 最终实现效果如下: Okay.首先你得找到一个弹幕开源库就是这个啦:https://github.com/jabbany/CommentCoreLibrary 其次你得准备好一个HTML文件 准备完后lets do it 更多内容请见原文链接:http://www.gbtags.com/gb/share/5769.htm 引入两个重要的弹幕开源库文件 这里用了我blog的文件

Android MVC实现一个音乐播放器

MVCPlayer 我尝试在android上使用MVC模式来开发一个音乐播放器.GitHub地址:https://github.com/skyhacker2/MVCPlayer 什么是MVC 来自维基百科 控制器 Controller - 负责转发请求,对请求进行处理. 视图 View - 界面设计人员进行图形界面设计. 模型 Model - 程序员编写程序应有的功能(实现算法等等).数据库专家进行数据管理和数据库设计(可以实现具体的功能). 那么在android上,Activity就是Cont

每天看一片代码系列(三):codepen上一个音乐播放器的实现

今天我们看的是一个使用纯HTML+CSS+JS实现音乐播放器的例子,效果还是很赞的: codePen地址 HTML部分 首先我们要思考一下,一个播放器主要包含哪些元素.首先要有播放的进度信息,还有播放/暂停或者上一首下一首等必要的按钮,同时还要显示一些当前播放的音乐名称等信息.播放多首歌曲时,要显示播放列表...因此,从语义上可以构造出基本的HTML结构: // 背景区块,用于显示当前播放音乐的图片 <div class='background' id='background'></di

因为业务需要,用nodejs写了一个css解析器,因为是基础库,想开源,不知道有没有人需要。

一般而言htmlparser的解析使用得比较多,node库中已经有了,npm install -g htmlparser2就可以安装. 这段时间要实现nodejs上的安全扫描,需要对html,css,js进行解析,css主要是限制一些绝对定位,浮层和url,防止产生钓鱼或攻击.所以写了一个css的解析器. 感觉 这些基础库应该公开出去,但是不知道有多少人有这个需求.