| 
					
				 | 
			
			
				@@ -1,83 +0,0 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# m3u8视频黑屏问题修复总结 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-## 问题描述 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-在iPhone或macOS小程序模拟器中播放m3u8格式的视频会出现黑屏现象,特别是在`liveType === 2`的录播模式下。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-## 修复方案 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-### 1. 优化video组件属性配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **启用缓存**: 将`custom-cache`和`http-cache`设置为`true`,改善m3u8流的缓存处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **添加poster属性**: 设置`poster="liveItem.coverUrl || ''"`,为iOS设备提供视频封面 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **预加载设置**: 添加`preload="auto"`,确保视频资源提前加载 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **iOS兼容性**: 添加`playsinline="true"`和`webkit-playsinline="true"`,支持iOS内联播放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **X5内核优化**: 添加x5相关属性,优化在微信环境下的播放体验 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-### 2. 播放逻辑优化 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **平台检测**: 添加iOS设备检测逻辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **延迟播放**: iOS设备延迟500ms播放,给video元素更多初始化时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **错误重试**: 针对iOS+m3u8组合增加重试次数(5次)和延迟时间(3秒) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-### 3. 错误处理增强 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **格式检测**: 识别m3u8格式并提供针对性处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **重新初始化**: iOS设备播放失败时,先停止再重新播放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **用户提示**: 提供更明确的错误信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-### 4. 用户体验改善 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **加载状态**: 添加视频加载动画和状态提示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **平台提示**: 根据设备类型显示不同的加载文本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- **视觉反馈**: 添加旋转动画和半透明遮罩 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-## 修改的文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- `pages_course/living.vue`: 主要修改文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-## 关键修改点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-### video组件配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-```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> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-``` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-### iOS延迟播放逻辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-```javascript 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-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(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-``` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-## 测试建议 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-1. 在iPhone真机上测试m3u8视频播放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-2. 在macOS小程序模拟器中测试 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-3. 验证加载状态提示是否正常显示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-4. 测试错误重试机制是否有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-## 注意事项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- 确保m3u8视频源的CORS配置正确 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- 检查视频服务器的HTTPS配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- 验证视频格式和编码兼容性 
			 |