做网站哪个公司好,网站建设方案报价费用明细价格,宝安区简介,网上找客户有哪些网站调用 ref.current.play() 方法来播放视频#xff1b; 如果视频需要暂停#xff0c;我们调用 ref.current.pause() 方法来暂停视频。
通过 useRef 创建的 ref 操作视频的开始与暂停
当用户点击按钮时#xff0c;根据当前视频的状态#xff0c;我们会开始或暂停视频… 调用 ref.current.play() 方法来播放视频 如果视频需要暂停我们调用 ref.current.pause() 方法来暂停视频。
通过 useRef 创建的 ref 操作视频的开始与暂停
当用户点击按钮时根据当前视频的状态我们会开始或暂停视频并根据视频的播放状态来更新按钮的显示文本。 // 播放及暂停视频
import { useRef, useState } from react;const ControlsVideo () {const [isPlaying, setIsPlaying] useStateany(false);const ref useRefany(null);function handleClick() {// 按钮名的修改const nextIsPlaying !isPlaying;// 开始或暂停视频setIsPlaying(nextIsPlaying);if (nextIsPlaying) {ref.current.play();} else {ref.current.pause();}}return (button onClick{handleClick}{isPlaying ? 开始 : 暂停}/buttonvideowidth250ref{ref}onPlay{() setIsPlaying(true)}onPause{() setIsPlaying(false)}sourcesrchttps://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4typevideo/mp4//video/);
};export default ControlsVideo;
我们定义了一个函数组件 ControlsVideo。在组件内部我们使用 useState 创建了一个名为 isPlaying 的状态变量并将初始值设置为 false表示视频初始状态是暂停的。我们还使用 useRef 创建了一个引用 ref并将其初始化为 null。
接下来我们定义了一个叫做 handleClick 的函数。当按钮被点击时这个函数会被调用。
在函数内部我们首先通过取反操作符 ! 来获取下一个状态 nextIsPlaying。然后我们调用状态更新函数 setIsPlaying将 nextIsPlaying 设置为新的状态值从而更新 isPlaying 的值。
接着我们使用 ref.current 来获取到 ref 引用所指向的 DOM 元素这里是一个 video 元素。
根据 nextIsPlaying 的值如果视频需要播放 调用 ref.current.play() 方法来播放视频 如果视频需要暂停我们调用 ref.current.pause() 方法来暂停视频。
在组件的返回值中我们渲染了一个按钮和一个视频元素。
在按钮部分我们通过调用 handleClick 函数来处理按钮的点击事件。根据 isPlaying 的状态我们使用条件运算符 ? 和 : 来显示不同的按钮名如果 isPlaying 为 true显示 “开始”否则显示 “暂停”。
在视频元素部分我们将 ref 设置为 video 元素的 ref 属性以便将引用与该元素关联起来。同时我们通过 onPlay 和 onPause 事件处理函数来更新 isPlaying 的状态当视频开始播放时将其设置为 true当视频暂停时将其设置为 false。并且我们指定了视频源的 URL 和类型。