用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,欢迎留言指出。

 

补充: 新版本的弹幕播放器已经发布,对弹幕增加了描边,阴影,透明度,字体,字号设置的支持,性能方面也有了较大优化,看起来要舒服得多,欢迎使用。

 

转载于:https://www.cnblogs.com/TianFang/p/4115773.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以提供一些建议,但最终决定权在您手中。首先,您可以使用WPF将内容绑定到您的自定义日志窗口,以便将日志记录到文件或数据库中。其次,您可以使用WPF的字体控件来显示日志信息,以便更好地控制日志窗口的外观和布局。最后,您可以使用WPF的调试框架来跟踪和记录您的应用程序的状态,以便更好地理解和检查日志窗口的行为。 ### 回答2: WPF(Windows Presentation Foundation)是一种基于.NET框架的应用程序开发平台,可以用来创建丰富的用户界面。在WPF中编一个log(日志)窗口可以通过以下步骤完成: 1. 首先,创建一个新的WPF应用程序项目,并在主窗口的XAML文件中设计好日志窗口的界面。可以使用Grid布局或者其他容器来容纳日志信息的显示区域和相关控件。 2. 在窗口的代码文件中,定义一个List或ObservableCollection类型的属性,用于存储日志信息。这个属性将作为数据源绑定到界面上的日志显示区域,以实现动态更新。 3. 在窗口的初始化方法中,将该属性绑定到日志显示区域的ItemsSource属性,以实现日志信息的实时显示。 4. 提供一个公共方法或命令,用于向日志中添加新的信息。这个方法将在用户点击按钮或者其他触发事件的时候调用。 5. 在这个方法内部,将新的日志信息添加到日志信息的属性中。可以使用自定义的数据结构或简单的字符串格式保存日志信息。 6. 当属性值发生改变时,界面上绑定的日志显示区域将自动更新,显示新添加的日志信息。 7. 可以考虑增加一些界面上的控件,比如滚动条,以便用户可以方便地查看较长的日志。可以使用ScrollViewer控件将日志显示区域包裹起来,并根据需要设置自动滚动的属性值。 通过以上步骤,在WPF中实现一个简单的log窗口是十分可行的。这个窗口可以用于显示应用程序的运行日志、错误信息等,提高开发调试和错误追踪的效率。 ### 回答3: WPF(Windows Presentation Foundation)是用于构建 Windows 客户端应用程序的一种技术。要用 WPF 一个 log 窗口,需要遵循以下步骤: 1. 创建一个 WPF 应用程序项目。在 Visual Studio 中新建项目,选择 WPF 应用程序模板。 2. 在主窗口的 XAML 文件中,布局 log 窗口的外观。可以使用 StackPanel、Grid 或其他布局控件来创建一个容器,用于显示 log 信息。 3. 在代码文件中,定义一个可用于向 log 窗口添加日志信息的方法。可以使用 TextBox 控件来实现。 4. 在定义的方法中,将新的日志信息追加到 TextBox 的 Text 属性中。可以使用字符串拼接或 StringBuilder 等方式。 5. 在应用程序的其他位置,调用这个方法,将需要记录的日志信息传递给 log 窗口。 6. 根据实际需求,可以对 log 窗口进行美化和扩展,例如添加滚动条、日期时间戳等。 7. 在主窗口的 XAML 文件中,添加一个按钮或其他触发事件的控件,用于显示 log 窗口。 8. 为按钮或其他控件的 Click 事件绑定一个函数,在函数中实例化 log 窗口,并显示。 9. 编译和运行应用程序,点击按钮或其他控件时,log 窗口将会显示出来,同时在其他位置添加的日志信息也会在 log 窗口中显示。 总结:通过以上步骤,可以用 WPF一个 log 窗口,用于记录和显示应用程序的日志信息。这个窗口可以在主窗口的一定操作或特定事件发生时进行显示,方便用户或开发者查看和分析日志。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值