优化:公屏叫号默认播放并移除声音控制

需求:服务端下发音频已验证可用,公屏无需再显示开启声音按钮和状态提示。

实现:移除声音控制组件与首次点击门槛,新叫号到达后直接播放内置音频队列。

验证:前端 65 项测试通过,生产构建通过。
This commit is contained in:
2026-08-01 11:40:58 +08:00
parent 6d911271e6
commit 01d261e893
7 changed files with 22 additions and 92 deletions

View File

@@ -1,37 +0,0 @@
import type { RefObject } from "react";
import type { AudioAnnouncementStatus } from "../hooks/useAudioAnnouncements";
interface AudioControlProps {
audioRef: RefObject<HTMLAudioElement | null>;
status: AudioAnnouncementStatus;
onEnable: () => void;
}
export function AudioControl({ audioRef, status, onEnable }: AudioControlProps) {
return (
<>
<audio ref={audioRef} preload="auto" aria-hidden="true" />
{status === "ready" ? (
<aside className="speech-control speech-control--ready" role="status">
<strong></strong>
<span></span>
</aside>
) : (
<aside className={`speech-control${status === "error" ? " speech-control--error" : ""}`} role="status">
<div>
<strong>{status === "error" ? "叫号声音开启失败" : "叫号声音尚未开启"}</strong>
<span>{status === "error" ? "请检查设备媒体音量后重试" : "请点击一次,之后将自动播报"}</span>
</div>
<button
className="button button--primary"
type="button"
disabled={status === "enabling"}
onClick={onEnable}
>
{status === "enabling" ? "正在开启叫号声音" : status === "error" ? "重新开启叫号声音" : "开启叫号声音"}
</button>
</aside>
)}
</>
);
}