在iPhone或macOS小程序模拟器中播放m3u8格式的视频会出现黑屏现象,特别是在liveType === 2的录播模式下。
custom-cache和http-cache设置为true,改善m3u8流的缓存处理poster="liveItem.coverUrl || ''",为iOS设备提供视频封面preload="auto",确保视频资源提前加载playsinline="true"和webkit-playsinline="true",支持iOS内联播放pages_course/living.vue: 主要修改文件<video v-if="liveItem.videoUrl&&liveItem.liveType==2"
:id="`myVideo_${liveId}`"
:autoplay="true"
class="item"
:src="liveItem.videoUrl"
:controls="false"
object-fit="contain"
:custom-cache="true"
:http-cache="true"
:poster="liveItem.coverUrl || ''"
preload="auto"
:playsinline="true"
:webkit-playsinline="true"
x5-video-player-type="h5"
x5-video-player-fullscreen="true"
x5-video-orientation="portraint"
@loadstart="onVideoLoadStart"
@canplay="onVideoCanPlay"
@error="videoError">
</video>
const systemInfo = uni.getSystemInfoSync();
const isIOS = systemInfo.platform === 'ios' || systemInfo.system.toLowerCase().includes('ios');
if (isIOS) {
setTimeout(() => {
videoContext.play();
console.log('iOS设备延迟播放m3u8视频');
}, 500);
} else {
videoContext.play();
}