手持弹幕
把手机举起来当灯牌用:一句应援话铺满整屏,横向滚动。字号、颜色、速度都能先在下面对着预览调好,再点进全屏。
点「进入全屏」开始播放,用系统手势或 Esc 退出
进入全屏后,点画面任意位置可以暂停或继续;全屏里旋转角度只影响文字方向,不改动输入的内容。
弹幕内容
换行会被压成空格,因为单行滚动放不下换行;超长文字会按 60 字截断。
字体与颜色
滚动方向与闪烁
闪烁是按时间取余算的,和滚动互不干扰;闪得太快在远处反而看不清,500ms 左右比较合适。
预览
预览区高度是屏幕的 58%,进入全屏后会铺满整屏。文字左右两侧留白是为了让长句子在窄屏上也能读完整。
现场使用的几个注意点
手机亮度是成败关键。演唱会现场灯光很暗,屏幕调到最亮并关掉自动亮度,否则白字黑底也发灰;如果是白色背景,请把系统亮度调低一点,既能省电也能减少对旁边人的干扰。长时间亮屏很耗电,建议带上充电宝,或者把「停留时间」控制在需要的那几分钟。
全屏接口的兼容性差异很大。桌面浏览器和安卓 Chrome 基本都支持 requestFullscreen,iOS 的 Safari 对非视频元素一直限制较多,此时页面会退化成铺满整屏的遮罩层,观感几乎一样,只是顶部可能还留着浏览器的地址栏。这个降级是自动的,不需要你手动切换。
屏幕方向锁定同样只在全屏状态下生效,而且 iOS 完全不支持。所以这里同时提供了「转 90°」按钮:它用 CSS 把整个画面旋转过来,横屏竖屏都能用,不依赖系统 API;如果系统锁屏方向也开着,可能会出现转两次的情况,把系统的方向锁定关掉就好。
文字位置是按「已经过去的时间」算的,不是每帧累加位移。这样做的原因是掉帧不可避免:现场手机可能弹通知、可能发热降频,如果按帧累加,走一会儿就会明显变慢甚至停下来;按时间算则永远和真实速度一致,切到后台再切回来也能落回正确位置。
最后提醒一句现场礼貌:把手机举高时注意别挡住后面人的视线,透明背景的弹幕在别人镜头里会叠在舞台上,看着更乱;人多的场合用黑底白字,屏幕发出的光最少,自己也省电。