问题描述
我是ReactJS的新手。我正在尝试将VideoJS与react集成在一起。我要在此处实现的目标是,当用户观看完视频的前30秒后触发API调用。我正在使用称为timeCheck()的方法监视时间。播放器实例是在componentDidMount()生命周期下创建的。我面临的挑战是我无法从timeCheck()方法访问玩家变量。
import React from 'react';
import videojs from 'video.js';
import 'video.js/dist/video-js.css';
class VideoPlayer extends React.Component {
componentDidMount() {
this.player = videojs(this.videoNode,this.props,function onPlayerReady() {
console.log('onPlayerReady',this)
});
this.player.on('timeupdate',this.timeCheck)
}
componentwillUnmount() {
if (this.player) {
this.player.dispose()
}
}
updateView() {
console.log('Another view added')
}
timeCheck() {
if (this.player.currentTime() > 50) {
this.player.off('timeupdate',this.timeCheck)
console.log('Breached 50 seconds...')
this.player.trigger('Played50Seconds')
}
else {
console.log('Counter ticking.....')
}
}
render() {
return (
<div>
<h3> It's a player component </h3>
<div data-vjs-player>
<video ref={node => this.videoNode = node} className="video-js"></video>
</div>
</div>
)
}
}
export default VideoPlayer
错误消息
index.js:1 VIDEOJS:错误:TypeError:this.player.currentTime不是 功能 在Player.timeCheck(VideoPlayer.js:25) 在HTMLdivelement.data.dispatcher(video.es.js:1899) 在触发时(video.es.js:2035) 在Player.trigger $ 1 [作为触发器](video.es.js:2921) 在播放器上。 [作为handleTechTimeupdate_](video.es.js:25658) 在HTMLVideoElement.data.dispatcher(video.es.js:1899)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)