作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用plyr.js创建视频播放器。
使用 hls.js
发现错误:
Uncaught DOMException: Failed to read the 'buffered' property from 'SourceBuffer':
This SourceBuffer has been removed from the parent media source.
当我在路线更改时更改视频 src
时,就会发生这种情况。
我的播放器:
import React from 'react'
import HLS from 'hls.js'
import Plyr from 'plyr'
const Player = ({src}) => {
const [player, setPlayer] = useState(null);
const video = useRef(null);
useEffect(() => {
const node = video.current;
// Thought it would help, but no
const destroy = () => {
if (window.hls) {
window.hls.stopLoad();
window.hls.detachMedia();
window.hls.destroy();
}
};
if (node) {
if(!player) setPlayer(new Plyr(node, {captions: {active: true, update: true}}))
if (HLS.isSupported()) {
destroy();
window.hls = new HLS();
window.hls.loadSource(src);
window.hls.attachMedia(node);
} else node.src = src;
}
}, [src, player]);
return (
<div>
<video ref={video} src={src} controls/>
</div>
)
};
最佳答案
我修复了 useEffect
,现在它可以工作了:
import React , { useEffect, useRef, useState,context } from 'react'
import HLS from 'hls.js'
import Plyr from 'plyr'
const destroyHLS = () => {
window.hls.stopLoad();
window.hls.detachMedia();
window.hls.destroy();
};
const Player = ({src}) => {
const [player, setPlayer] = useState(null);
const video = useRef(null);
useEffect(() => setPlayer(new Plyr(video.current, context)), [src]);
useEffect(() => {
let ignore = false;
if (HLS.isSupported()) {
if (window.hls) destroyHLS();
window.hls = new HLS();
window.hls.loadSource(src);
window.hls.attachMedia(video.current);
} else video.current.src = src;
if (ignore) player.destroy();
return () => {
ignore = true;
};
}, [player, src]);
return (
<div>
<video ref={video} src={src} controls/>
</div>
)
};
关于javascript - 路由更改时未捕获 DOMException hls.js React.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58899212/
在我们的数据库表上,我们使用两个唯一的非聚集索引来创建跨四个字段的唯一约束。我们使用两个,因为其中一个字段 ZipCode 是一个可为空的字段。如果表中存在一条包含 ZipCode 的 null 条目
我刚刚开始学习 Rails 3 教程,以便对框架有一点熟悉,但我在生成 schema.rb 时遇到了问题。我的操作系统是 Windows 7 x64、Ruby 1.9.2、MySQL2 gem 0.2
我是一名优秀的程序员,十分优秀!