|
|
@@ -559,16 +559,28 @@ const tryPlayVideo = () => {
|
|
|
console.error('视频播放失败,可能是浏览器自动播放限制:', error)
|
|
|
})
|
|
|
}
|
|
|
+ // 判断视频格式是否为m3u8
|
|
|
+ const isM3u8 = course.value.courseVideoPath && course.value.courseVideoPath.endsWith('.m3u8')
|
|
|
player = videojs(videoPlayer.value, {
|
|
|
controls: true,
|
|
|
sources: [
|
|
|
{
|
|
|
src: course.value.courseVideoPath,
|
|
|
- type: 'video/mp4'
|
|
|
+ type: isM3u8 ? 'application/x-mpegURL' : 'video/mp4'
|
|
|
}
|
|
|
],
|
|
|
preload: 'metadata' // 仅加载元数据,避免预加载整个文件
|
|
|
})
|
|
|
+ // 如果是m3u8格式,启用HLS支持
|
|
|
+ if (isM3u8 && !hlsRef.value) {
|
|
|
+ // 检查是否已加载hls.js插件
|
|
|
+ if (videojs.getPlugin('hls')) {
|
|
|
+ hlsRef.value = player.hls()
|
|
|
+ // 可以在这里添加额外的HLS配置
|
|
|
+ } else {
|
|
|
+ console.warn('video.js HLS插件未加载,可能无法正常播放m3u8格式视频')
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 检查视频播放权限
|