使用hls的时候在本地是正常的,编译放在服务器上就不显示了
acodercat opened this issue · 55 comments
使用hls的时候在本地是正常的,编译放在服务器上就不显示了,求!!!!
今天上线的时候才发现
同学,你要给出具体的错误,和你自己的判断,否则没有办法解决。
我也是这个错
但是在edge浏览器上可以播放
遇到相同的问题,有没有解决方法?
因为你们config和build 中用的是严格模式'use strict',去掉再 打包
就好了
真的吗
我也遇到这个问题了,照着这个
https://github.com/surmon-china/vue-video-player/issues/34
在webpack配置文件module
里加入 noParse: [/videojs-contrib-hls/],
最新版,v5.0.0 应该是可以解决这个问题的,ps: 需要删除 node_modules
重新安装。
@ffdfgdfg 是正解。
导入了v5.0.0 把node_modules 删除了后.还是在报错: "Cannot read property 'EventTarget' of undefined"
@sunxiang0918 videojs-contrib-hls
依赖 window.videojs
全局变量,想办法使其能访问,像这里:
https://github.com/surmon-china/vue-video-player/blob/master/examples/04-video.vue#L32
@surmon-china 搞定了,谢谢了!!
我想问问是怎么解决的,我按照作者的 demo 代码如下:
`
import 'video.js/dist/video-js.css'
import 'vue-video-player/src/custom-theme.css'
import { videoPlayer } from 'vue-video-player'
import videojs from 'video.js'
window.videojs = videojs
// hls plugin for videojs6
require('videojs-contrib-hls/dist/videojs-contrib-hls.js')
`
但是打包编译以后 还是报错:
Uncaught ReferenceError: e is not defined
@chuanshuo-yongyuan 上面说了啊, @ffdfgdfg 的答案是正解。
@surmon-china 非常感谢,解决了,谢谢!!!
开发模式下,已换成v5.0.0,还是报错:Uncaught ReferenceError: e is not defined
m3u8格式的视频,本地可以正常播放,打包发布之后就'No compatible source was found for this media.'变成这个,希望大佬解答一下,困扰几天了,感激不尽@surmon-china
How to use noParse in nuxt.config.js ...?
videojs 7.0版本已经不需要videojs-contrib-hls 麻烦 作者更新
同求
请问一下支持rmvb格式的视频吗?
m3u8格式的视频,本地可以正常播放,打包发布之后就'No compatible source was found for this media.'变成这个,希望大佬解答一下,困扰几天了,感激不尽@surmon-china
请问你解决了吗??
@surmon-china @ffdfgdfg @chuanshuo-yongyuan 我在webpack处已经添加这一行,
打包上传至服务器发现
这个要怎么处理呢?麻烦大家给个解决方案谢谢
请问vue-video-player动态绑定sources下的src导致不能播放视频,怎么解决?
@surmon-china 您好,我也遇到上诉的问题,本地运行正常,部署到线上控制台报错: e is not defined。
在webpack也已经配置:
js库各版本:
"vue-video-player": "^5.0.2",
"vue": "^2.5.11",
"video.js": "^7.5.4",
"videojs-contrib-hls": "^5.15.0",
项目代码
import 'vue-video-player/src/custom-theme.css'
import videojs from 'video.js'
window.videojs = videojs
require('videojs-contrib-hls/dist/videojs-contrib-hls.js')
<video-player class="vjs-custom-skin"
:options="playerOptions(item, idx)"
@ready="playerReadied">
</video-player>
playerOptions(item, idx){
return {
autoplay: false,
muted: true,
preload: 'auto',
language: "en",
aspectRatio: '16:9',
sources: [{
withCredentials: false,
type: "application/x-mpegURL",
src: item.url
}],
controlBar: {
timeDivider: false,
durationDisplay: false
},
flash: { hls: { withCredentials: false }},
html5: { hls: { withCredentials: false }},
poster: "https://gydev-1252687978.piccd.myqcloud.com/gy/pc-upload/20190506/768d8f3a-20cb-4e3f-bb8b-7b2ba459cc2c.png"
}
},
项目紧急,期待您的解答!! @surmon-china
@ffdfgdfg
降级版本为"video.js": "^5.18.4",
,问题没解决,请问是这个版本吗
可以试试升级,我上次就是这样解决的,我把他的组件源码直接copy到自己项目里
@ffdfgdfg
降级版本为"video.js": "^5.18.4",
,问题没解决,请问是这个版本吗可以试试升级,我上次就是这样解决的,我把他的组件源码直接copy到自己项目里
请问版本是什么版本
@ffdfgdfg
降级版本为"video.js": "^5.18.4",
,问题没解决,请问是这个版本吗可以试试升级,我上次就是这样解决的,我把他的组件源码直接copy到自己项目里
请问版本是什么版本
不记得了。。你试试最新版本把
@ffdfgdfg 谢谢您昨天的回答, 我今天上午试了6.0.1 与 6.2.1,还是不可以,请问可以加你的联系方式具体去来交流吗?后面我直接使用的video.js (版本为^7.5.4),部署到服务器上还是会报e is not defined,我在videojs提了lssues,videojs/video.js#5985
作者回复我说错误太过于笼统,请问我应该怎么具体去描述我的问题
@aspect93 按照您说的,我上午直接使用videojs,部署到测试坏境还是会报错; videojs他现在的7版本已经不用videojs-contrib-hls,我是不是只要下载 video.js与video-js.min.css就行了? 可以告诉我您的联系方式吗?我这项目有点急
@aspect93 按照您说的,我上午直接使用videojs,部署到测试坏境还是会报错; videojs他现在的7版本已经不用videojs-contrib-hls,我是不是只要下载 video.js与video-js.min.css就行了? 可以告诉我您的联系方式吗?我这项目有点急
你qq多少
@virtueDe @aspect93 昨天今天晚上抽空测测,首先上次我说错了,这个项目基于videojs6.6+的,所以我当时说videojs5引起误导。
我直接用npm安装这个项目,项目内自动装videojs6.13,这就是videojs6的最新版了,之前的办法可以用。
再说说用videojs7,我用npm下的最新videojs7.5.4替换掉项目的node_modules内的老videojs6.13,改了下package.json,去掉ie8,hls等等多余依赖,直接就能用,不管是调试还是编译,videojs7里面确实内建了videojs-http-streaming,所以想用videojs7的话可以这么干。
@wuhao0815 把videojs源码下载 依赖到本地 就用videojs
@surmon-china @ffdfgdfg @chuanshuo-yongyuan 我在webpack处已经添加这一行,
打包上传至服务器发现
这个要怎么处理呢?麻烦大家给个解决方案谢谢
你好 你解决了吗
最近看了下videojs,videojs7已经不用videojs-contrib-hls 改用内建videojs-http-streaming,解决这个问题我想有两个思路,一个是降级videojs成5,这个以前确实是能够解决的;还有就是不解析 videojs-http-streaming。具体的我也没有测试过,给不出详细办法,近来上班了比较忙,见谅。 De notifications@github.com 于2019年5月7日周二 下午3:58写道:
…
@surmon-china https://github.com/surmon-china 您好,我也遇到上诉的问题,本地运行正常,部署到线上控制台报错: e is not defined。 在webpack也已经配置: [image: image] https://user-images.githubusercontent.com/46802209/57282651-14797480-70e0-11e9-97bc-9c20e3c4c38f.png js库各版本: "vue-video-player": "^5.0.2", "vue": "^2.5.11", "video.js": "^7.5.4", "videojs-contrib-hls": "^5.15.0", 项目代码 import 'vue-video-player/src/custom-theme.css' import videojs from 'video.js' window.videojs = videojs require('videojs-contrib-hls/dist/videojs-contrib-hls.js') <video-player class="vjs-custom-skin" :options="playerOptions(item, idx)" @ready="playerReadied"> playerOptions(item, idx){ return { autoplay: false, muted: true, preload: 'auto', language: "en", aspectRatio: '16:9', sources: [{ withCredentials: false, type: "application/x-mpegURL", src: item.url }], controlBar: { timeDivider: false, durationDisplay: false }, flash: { hls: { withCredentials: false }}, html5: { hls: { withCredentials: false }}, poster: "https://gydev-1252687978.piccd.myqcloud.com/gy/pc-upload/20190506/768d8f3a-20cb-4e3f-bb8b-7b2ba459cc2c.png" } }, 项目紧急,期待您的解答!! @surmon-china https://github.com/surmon-china — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#90 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/AEJHFX2KHCWNZAOLD45FUOLPUEZDRANCNFSM4DZL3I4A .
你好 我也报错了那个 required is not defined.请问现在有什么办法解决吗?
How to use noParse in nuxt.config.js ...?
set config.module.noParse = /videojs-contrib-hls/
in the extend function in the nuxt.config.js
m3u8格式的视频,本地可以正常播放,打包发布之后就'No compatible source was found for this media.'变成这个,希望大佬解答一下,困扰几天了,感激不尽@surmon-china
请问你解决了吗??
我也遇到了同样的问题,我是忘记了如下语句:
import 'video.js/dist/video-js.css';
import 'vue-video-player/src/custom-theme.css';
import 'videojs-contrib-hls'; // <----- 我就是忘记了这一行语句
import { videoPlayer } from 'vue-video-player';
export default {
name: "VideoPlayerWithCover",
components: { videoPlayer },
....
同样编译之后在服务器上运行报错:
你这个播放的是本地的视频吗?可以播放blob:http://localhost:9528/9018e430-d6f4-4c8a-95a7-2ea0f255a906 这样的链接吗?
我通过这种方法生成了本地视频的URL
export function readMediaFile(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.readAsArrayBuffer(file.raw)
reader.onloadend = (e) => {
const buffer = e.target.result
const videoBlob = new Blob([new Uint8Array(buffer)], { type: 'video/mp4' })
const url = window.URL.createObjectURL(videoBlob)// 此处url内容形如 blob:http://localhost:9528/9018e430-d6f4-4c8a-95a7-2ea0f255a906
const realUrl = url.slice(5)
resolve(realUrl)
}
reader.onerror = (e) => {
reject(e)
}
})
}
你这个播放的是本地的视频吗?可以播放blob:http://localhost:9528/9018e430-d6f4-4c8a-95a7-2ea0f255a906 这样的链接吗? 我通过这种方法生成了本地视频的URL
export function readMediaFile(file) { return new Promise((resolve, reject) => { const reader = new FileReader() reader.readAsArrayBuffer(file.raw) reader.onloadend = (e) => { const buffer = e.target.result const videoBlob = new Blob([new Uint8Array(buffer)], { type: 'video/mp4' }) const url = window.URL.createObjectURL(videoBlob)// 此处url内容形如 blob:http://localhost:9528/9018e430-d6f4-4c8a-95a7-2ea0f255a906 const realUrl = url.slice(5) resolve(realUrl) } reader.onerror = (e) => { reject(e) } }) }
浏览器版本过低就会报图片的错误,目前已知chrome65会报错
我没用这个插件,直接用的videojs,遇到这个问题,搜索到这里了。
我用的是8.X的版本,解决方案是
import videojs from '!video.js'
参考videojs/video.js#8170 (comment)