fix(media): 视频播放 - 资源视频改走 playback 变体,失败后刷新签名并重试
画布预览、生成回填和项目水合都解析浏览器可播地址;播放失败时绕过展示缓存,等待转码完成后强制刷新 playback 地址。
This commit is contained in:
1 parent
0b1d5073e8
commit
9997422fcd
8 files changed
+285
-101
No files matched your search
@@ -24,6 +24,7 @@ type VideoPlayerProps = {
|
||||
hasAudio?: boolean;
|
||||
onCanPlay?: MediaPlayerProps["onCanPlay"];
|
||||
onPlay?: MediaPlayerProps["onPlay"];
|
||||
onError?: MediaPlayerProps["onError"];
|
||||
};
|
||||
|
||||
const zhCNTranslations = {
|
||||
@@ -74,7 +75,7 @@ const supportedVideoMimeTypes = new Set<VideoMimeType>(["video/mp4", "video/webm
|
||||
* 统一视频播放表面,保留原生媒体 URL 契约,同时提供可访问的完整控件布局。
|
||||
* 画布节点需要隔离播放器手势,避免拖动进度条时被误判为拖动画布。
|
||||
*/
|
||||
export function VideoPlayer({ src, mimeType, title = "视频", className, brandColor = "#f5f5f5", preload = "metadata", autoPlay = false, dataCanvasNoZoom = false, compactControls = false, hasAudio, onCanPlay, onPlay }: VideoPlayerProps) {
|
||||
export function VideoPlayer({ src, mimeType, title = "视频", className, brandColor = "#f5f5f5", preload = "metadata", autoPlay = false, dataCanvasNoZoom = false, compactControls = false, hasAudio, onCanPlay, onPlay, onError }: VideoPlayerProps) {
|
||||
const [detectedHasAudio, setDetectedHasAudio] = useState<boolean | undefined>(undefined);
|
||||
const autoPlayAttemptedRef = useRef(false);
|
||||
const audioProbeGenerationRef = useRef(0);
|
||||
@@ -188,6 +189,7 @@ export function VideoPlayer({ src, mimeType, title = "视频", className, brandC
|
||||
style={{ "--video-brand": brandColor }}
|
||||
onCanPlay={handleCanPlay}
|
||||
onPlay={onPlay}
|
||||
onError={onError}
|
||||
onLoadedMetadata={(event) => {
|
||||
const provider = event.target.provider;
|
||||
const media = isVideoProvider(provider) ? provider.media : undefined;
|
||||
|
||||
Reference in new issue
Block a user