09 音频电脑 字幕机 - SJTU-Art-Center/ACLiveConsole GitHub Wiki

0900 音频电脑与字幕机

音频电脑和字幕机的组合,用以实现音频实时打轴。

本部分的启用需要 打开公屏 (6.5.0 打开弹幕和打开公屏已经分离),或者是在 设置 选项卡中打开 始终启用字幕机。屏幕分辨率需要纵向较大,否则需要通过后者的设置消除 UI BUG。

0910 Surface Dial 交互

AC Live Console 引入了 Surface Dial(或者是 Radial 轮盘设备,你甚至可以DIY一个,只要你有时间)进行新式交互,给予音频电脑和字幕机一种打碟的感觉。

点击 启用 Surface Dial(或者是在 设置 中选中 启动时初始化 Surface Dial),按下 Surface Dial,就可以看到选单中多了两个选项:字幕机⌨ 和 音频电脑💻。按压进入相应的选单即可进行相关的操作。

Surface Dial 通过蓝牙的方式连接,并且只有三种方式的交互:

  • 长按压,切换选单
  • 短按压,单击
  • 顺时针/逆时针旋转,调参数

0920 字幕机

右面的三个文本框,分别对应前置字幕、当前字幕和后置字幕。按 下一条 按键(或者是 Surface Dial 字幕机选单后-顺时针旋转),将会把后置字幕的第一行代入当前字幕,所以在准备的时候可以将字幕准备好,然后输入后置弹幕文本框(有一个设想,是另一个人远程输入字幕,实时链接,这个人只负责打轴,暂未实现),然后旋转打轴即可。

上一条 按钮有一定的BUG,慎用,会导致字符串拼接,毕竟大部分情况是用不到的。

当每一阶段(每个节目)结束后,可以清楚前置字幕,用清空历史 按钮(或者是 Surface Dial 字幕机选单后-轻按压),摆除一些干扰。

下面一行是 字幕机不透明度,按下按钮可以直接极限变换。边距比例是正方形移动比例,以高度比例为准,画一个边角正方形,就是字幕位置。只使用一个自由度,是为了减少人工的关注量。

字幕的字体颜色与弹幕颜色一致,字体也是一致的。

0930 音频电脑

在使用本功能之前,需要先点击 打开音频电脑文件夹,选择对应的音频文件夹位置。

之后就可以在右方的 文件名搜索框 搜索到该文件,只要输入前几个字即可。

载入文件后,将会在上方的状态栏中显示。之后就可以单击 播放 按钮(或者是 Surface Dial 音频电脑选单后-轻按压),播放该文件。

6.5.0 如果没有打开公屏,会自动打开,并弹出音控台提醒用户打开音频电脑声音。

单击 停止 按钮(或者是 Surface Dial 音频电脑选单后-再按压)将会终止该音频文件的播放。

单击 下一首 按钮(或者是 Surface Dial 音频电脑选单后-顺时针旋转)将会以名称序切换到下一曲,这时会更新文件列表。

上一首按钮只能通过 Surface Dial 逆时针旋转触发,可以通过搜索栏直接搜索相关曲目。

切换到曲目后,如果该文件夹下有同名的 .lrc 歌词文件,则会被自动识别载入字幕机中。打轴将由字幕机自动进行,由 播放 触发。

自动打轴过程中尽可能不要干扰字幕机的操作,否则会发生错位现象。Surface Dial 采用了不同选单(音频电脑和字幕机),隔离了操作的误触。

音频电脑理论上是可以在公屏上播放视频的,但是停止时会出现挂起状态,所以还是慎用播放视频的功能。

右上角提示语 用于在右上角写有标识,可以写 直播 等类似标识,按下按钮变蓝显示,变白消失。

0940 Surface Dial、字幕机、音频协同原理

Surface Dial 通过 Windows.UI.Input 这个 UWP 链接库连接(非 WPF 原生库),需要 Windows 10 以上版本。灵敏度被设置为 5 度。

下一条后,①当前字幕 textboxCurrentSub 将会前移到前置字幕 textboxPrevSub 中,②后置字幕 textboxNextSub 将会抽取最前面的那一行放入当前字幕 textboxCurrentSub 中。

音频文件与字幕文件相链接,同名文件为一组。每切换一个文件都会刷新文件列表 fis ,按照 Contains(string) 方法寻找文件。如果遇到适当的歌词文件,则会扫描歌词行,构造 lrcline 结构,存入 lrcque 中,扫描完毕后将按照开始时间节点排序,同时构造 timeque 时间队列,另开线程,使用 Thread.Sleep(time) 方法精确计时。