fix: safari resolution get fallback

This commit is contained in:
shinya
2025-07-11 18:25:56 +08:00
parent 14ae97ecd0
commit 4358bb27f7
3 changed files with 10 additions and 3 deletions

View File

@@ -310,7 +310,7 @@ function PlayPageClient() {
case 'SD':
return 20;
default:
return 30;
return 0;
}
})();
score += qualityScore * 0.4;

View File

@@ -476,7 +476,7 @@ const EpisodeSelector: React.FC<EpisodeSelectorProps> = ({
const sourceKey = `${source.source}-${source.id}`;
const videoInfo = videoInfoMap.get(sourceKey);
if (videoInfo) {
if (videoInfo && videoInfo.quality !== '未知') {
if (videoInfo.hasError) {
return (
<div className='bg-gray-500/10 dark:bg-gray-400/20 text-red-600 dark:text-red-400 px-1.5 py-0 rounded text-xs flex-shrink-0'>

View File

@@ -72,9 +72,9 @@ export async function getVideoResolutionFromM3u8(m3u8Url: string): Promise<{
hasMetadataLoaded &&
(hasSpeedCalculated || actualLoadSpeed !== '未知')
) {
clearTimeout(timeout);
const width = video.videoWidth;
if (width && width > 0) {
clearTimeout(timeout);
hls.destroy();
video.remove();
@@ -97,6 +97,13 @@ export async function getVideoResolutionFromM3u8(m3u8Url: string): Promise<{
loadSpeed: actualLoadSpeed,
pingTime: Math.round(pingTime),
});
} else {
// webkit 无法获取尺寸,直接返回
resolve({
quality: '未知',
loadSpeed: actualLoadSpeed,
pingTime: Math.round(pingTime),
});
}
}
};