项目地址

需求分析

在Linux下直播看不到弹幕,无法与观众互动。

实现过程

第一阶段

问题可拆分为收与发。

可行性分析

B站有API能够返回一个直播间最近的10条弹幕,可以依赖这个API接收弹幕。

抓包可知一次发送弹幕的行为即为一次POST请求,可以使用python脚本实现发送信息。

分别编写发送和接收弹幕的程序。开两个终端使用。

第二阶段

开两个终端切换较为麻烦,于是萌生了把两个程序整合成一个的想法,想实现类似网页的上方是弹幕下方是输入框的效果。

可行性分析

弹幕的动态捕捉依赖间隔固定时间地获取最近10条弹幕,提取出新的弹幕,显示在终端上,但是如果整合进输入程序,输入方法会阻塞进程,如果一直不输入就没有办法获取新的弹幕,所以需要为输入设定超时。

查阅资料得知,为输入方法设定超时需要使用多线程,或者异步异常信息处理,刚学py,不会这些。。。

查阅英文资料和pypi得知,python有个inputimeout库可以处理超时输入的问题,所以就整上了。

但是在现在这一流程中,每次输入超时都需要清屏,这样每次更新弹幕的时候都会闪一下,体验非常不好。

第三阶段

有没有办法实现一个terminal中分屏显示都个session呢?

可行性分析

结合我个人的Linux使用经验,可以使用tmux这个工具实现分屏操作,所以第二阶段的工作就白做了。。。

最终效果

不足与提升空间

冷启动时需要较多的步骤,不够优雅。

未来可以尝试使用GUI框架封装代码,实现一个输出框一个输入框收发代码。

1/25 Update

采用PysimpleGUI这个最简单的GUI库封装了代码,现在很好用()