【发布时间】:2020-08-21 18:26:06
【问题描述】:
我正在尝试将THEOPlayer 集成到我的项目中,并且我想根据某些事件自定义样式。例如,我想在视频暂停时隐藏工具栏并显示叠加图像。
他们确实公开了一些我可以手动更改的 CSS 类,但我的问题是,如何在特定事件中更改 CSS 中的值。由于播放器是作为单个 JSX 元素导入的,因此我不知道如何将自定义类添加到其特定部分。所以我想知道是否有其他方法。
这是一个创建 Player 实例的组件:
class Player extends React.Component {
_player = null;
_el = React.createRef();
componentDidMount() {
const { source, onPlay, onPause } = this.props;
if (this._el.current) {
this._player = new window.THEOplayer.Player(this._el.current, {
libraryLocation:
"https://cdn.myth.theoplayer.com/7aff3fa6-f92e-45f9-a40e-1bce9911b073/",
});
this._player.source = source;
this._player.addEventListener("play", onPlay);
this._player.addEventListener("pause", onPause);
}
}
componentWillUnmount() {
if (this._player) {
this._player.destroy();
}
}
render() {
return (
<div
className={
"theoplayer-container video-js theoplayer-skin vjs-16-9 THEOplayer"
}
ref={this._el}
>
</div>
);
}
}
export default Player;
这是我想要更改样式 onPlay 和 onPause 的代码的一部分
<div className={"player-container"}>
<Player
source={source}
onPlay={() => {
console.log("playing");
}}
onPause={() => {
console.log("paused");
}}
/>
</div>
【问题讨论】: