如何依据媒体状态机实现稳定的视频播放器?
简答题困难768 次浏览
参考答案与解析
# 核心结论
稳定的视频播放器应以 HTMLMediaElement 的真实状态和事件为事实来源,把播放器建模为异步状态机,而不是在用户点击后直接假设播放、暂停或跳转已经成功。状态至少应覆盖未加载、加载中、可播放、播放中、暂停、缓冲、定位、结束和失败,并区分“用户期望播放”与“媒体实际正在播放”。界面、快捷键、统计上报和错误恢复均由状态迁移驱动,避免多个事件处理器各自修改界面造成竞争。
# 底层机制
networkState 描述资源选择和网络获取阶段,readyState 描述已获取数据能支持的播放程度。HAVE_METADATA 仅表示时长、尺寸等元数据可用;HAVE_CURRENT_DATA
