Files
DPM/src/components/MediaHeaderControls.jsx
T
Pine 26f92837b3 fix(media): 媒体播放控制区只保留播放/暂停 + 左右切换,移除右侧资源名称
- 删除页眉媒体控制区的资源名称按钮(含 cleanName/showName 死代码)
- 保留:播放/暂停、上一段、序号、下一段、声音解锁(异常时)
2026-08-18 02:24:40 +08:00

55 lines
1.9 KiB
React

import { useState, useEffect } from 'react';
import Icon from './Icons';
import { onMediaUiState, mediaCommand } from '../utils/mediaControl';
/* =========================================================
页眉媒体控制区 —— 仅媒体轮播页显示
订阅媒体页播放状态(paused/index/total/name/soundBlocked),
点击通过 mediaCommand() 下发指令,由 MediaScreen 执行
========================================================= */
export default function MediaHeaderControls() {
const [st, setSt] = useState(null);
useEffect(() => onMediaUiState(setSt), []);
if (!st || !st.loaded) {
return (
<div className="bd-hd-media" title="媒体播放控制">
<Icon name="player-play" size={13} />
</div>
);
}
return (
<div className="bd-hd-media">
{/* 播放 / 暂停 */}
<button
className={`bd-hd-media-btn ${st.paused ? 'primary' : ''}`}
onClick={() => mediaCommand(st.paused ? 'play' : 'pause')}
title={st.paused ? '播放' : '暂停'}
>
<Icon name={st.paused ? 'play' : 'pause'} size={14} />
</button>
{/* 上一段 */}
<button className="bd-hd-media-btn" onClick={() => mediaCommand('prev')} title="上一段">
<Icon name="chevron-left" size={13} />
</button>
{/* 序号 */}
<span className="bd-hd-media-num">
<b>{st.index + 1}</b>/<em>{st.total}</em>
</span>
{/* 下一段 */}
<button className="bd-hd-media-btn" onClick={() => mediaCommand('next')} title="下一段">
<Icon name="chevron-right" size={13} />
</button>
{/* 声音解锁 */}
{st.soundBlocked && (
<button className="bd-hd-media-btn warn" onClick={() => mediaCommand('enable_sound')} title="点击开启声音">
<Icon name="volume" size={14} />
</button>
)}
</div>
);
}