需求分析
在Linux下直播看不到弹幕,无法与观众互动。
实现过程
第一阶段
问题可拆分为收与发。
可行性分析
B站有API能够返回一个直播间最近的10条弹幕,可以依赖这个API接收弹幕。
抓包可知一次发送弹幕的行为即为一次POST请求,可以使用python脚本实现发送信息。
分别编写发送和接收弹幕的程序。开两个终端使用。
第二阶段
开两个终端切换较为麻烦,于是萌生了把两个程序整合成一个的想法,想实现类似网页的上方是弹幕下方是输入框的效果。
可行性分析
弹幕的动态捕捉依赖间隔固定时间地获取最近10条弹幕,提取出新的弹幕,显示在终端上,但是如果整合进输入程序,输入方法会阻塞进程,如果一直不输入就没有办法获取新的弹幕,所以需要为输入设定超时。
查阅资料得知,为输入方法设定超时需要使用多线程,或者异步异常信息处理,刚学py,不会这些。。。
查阅英文资料和pypi得知,python有个inputimeout库可以处理超时输入的问题,所以就整上了。
但是在现在这一流程中,每次输入超时都需要清屏,这样每次更新弹幕的时候都会闪一下,体验非常不好。
第三阶段
有没有办法实现一个terminal中分屏显示都个session呢?
可行性分析
结合我个人的Linux使用经验,可以使用tmux这个工具实现分屏操作,所以第二阶段的工作就白做了。。。
最终效果
不足与提升空间
冷启动时需要较多的步骤,不够优雅。
未来可以尝试使用GUI框架封装代码,实现一个输出框一个输入框收发代码。
1/25 Update
采用PysimpleGUI这个最简单的GUI库封装了代码,现在很好用()