我想更新HTML5视频元素中的source标签,以便单击按钮时,无论播放什么内容,都将切换到新视频。
我有一个Clip组件,它返回一个HTML5视频元素,其源URL通过props提供。
function Clip(props) {
return (
<video width="320" height="240" controls autoPlay>
<source src={props.url} />
</video>
)
}
我还有一个Movie组件,其中包含多个URL,每个URL对应于电影的一部分。它还包含一个position属性,它通过记住当前正在播放的部分来充当迭代器。
class Movie extends Component {
constructor() {
super();
this.state = {
sections: [
'https://my-bucket.s3.amazonaws.com/vid1.mp4',
'https://my-bucket.s3.amazonaws.com/vid2.mp4'
],
position: 0
};
}
render() {
const sections = this.state.sections
const position = this.state.position
return (
<div>
{position}
<Clip url={sections[position]} />
<button onClick={() => this.updatePosition()}>Next</button>
</div>
)
}
updatePosition() {
const position = this.state.position + 1;
this.html" target="_blank">setState({ position: position });
}
}
电影组件呈现一个Clip组件和一个“ Next”按钮。单击“下一步”按钮后,我想更新位置属性,并使用部分中的下一个URL重新呈现HTML5视频元素。
到目前为止,当我单击“下一步”时,HTML5视频源标记将更新,但是该元素将继续播放前一个URL中的视频。谁能帮我弄清楚如何重置视频元素?
更新: 我创建了一个JSFiddle,您可以在这里看到。
更新2: 更新video元素上的src属性是可行的!
短篷:key
在<Clip>
或上添加道具<video>
,例如:
function Clip({ url }) {
return (
<video key={url}>
<source src={url} />
</video>
);
}
长遮篷:
视频不会改变,因为从本质上讲,您只是在修改<source>
元素,而React知道<video>
应该保持不变,因此不会在DOM上对其进行更新,也不会触发load
该源的新事件。
为了确保不仅<source>
得到更新,还要确保对其进行更新<video>
,key
以便React理解这是一个全新的元素。
有关更完整的说明,请查看有关React docs上的键的本文:)
我要做的是创建一种播放列表,只使用html5和vanilla javascript(不使用jquery)。相同的短视频一直循环直到你点击其中一个箭头,然后一行中的下一个(或上一个)视频被加载到相同的视频元素中。 以下是我的资料: HTML JavaScript 但是,使用这段代码,单击任何一个箭头似乎都没有任何作用。但我不确定我做错了什么。我首先想到的是if测试失败了,所以它只是重新加载了相同的视
我想在画布上画一段视频。为了实现这一点,我在Javascript中捕获onMouseDown和onMouseUp事件,以获得每个事件的x和y坐标(我需要在画布中设置视频的位置、宽度和高度)。 因此,每次我在画布上绘制视频时,我创建的上一个视频都应该停止,并且必须播放新的视频。两个问题: 1)视频不播放(功能只画第一帧),但他的音频可以 2) 如何停止以前绘制的视频? 演示:http://jsfid
问题内容: 我正在尝试将YouTube视频源放入HTML5标签,但似乎不起作用。经过一番谷歌搜索,我发现HTML5不支持YouTube视频URL作为来源。 您可以使用HTML5嵌入YouTube视频吗?如果没有,是否有任何解决方法? 问题答案: 第1步:添加到您喜欢的YouTube网址 步骤2:在来源中寻找标签 第3步:添加到视频标签: 例: 注意那里似乎有些东西。我不知道该字符串可以工作多长时间
我正在制作一种带有全屏视频背景的个人网站。我需要为不同的屏幕大小加载不同的视频。我正在使用React,并基于React Hooks制作组件。 这些是我的依赖版本: 在我的组件“VideoBackground”中,我使用useState创建了一个状态,我将在其中存储视频源和海报图像源,如下所示: 我使用useEffect钩子作为componentDidMount函数,根据窗口宽度动态加载视频,并向浏
本文向大家介绍HTML5视频无法在iPad上使用jquery bxSlider插件,包括了HTML5视频无法在iPad上使用jquery bxSlider插件的使用技巧和注意事项,需要的朋友参考一下 要使其工作,请从官方网站下载bxslider插件。从下载的bxslider zip中获取图像文件夹,然后将其粘贴到项目的js文件夹中。 所有文件夹现在看起来像- 以上应该可以解决您的问题。
function checkVideo() { if(!!document.createElement('video').canPlayType) { var vidTest=document.createElement("video"); oggTest=vidTest.canPlayType('video/ogg; codecs="theora, vorbis"'); if (!oggTest