video自定義實現視訊播放功能
import React, {Component} from 'react'
import style from '../style/Video.module.css'
import play from '../../../assets/player/play.png';
import pause from '../../../assets/player/pause.png';
class Video extends Component{
constructor(props) {
super(props);
this.state={
data:{},
isPlay: false,
isShow: true
}
this.video=React.createRef()
this.goPlay=this.goPlay.bind(this)
this.show_hide=this.show_hide.bind(this)
}
render() {
let isShow=this.state.isShow?style.show:style.hide;
return(
<div className={style.container}>
<div className={style.video_content}>
<video src={this.state.data.videoLink} className={style.video} preload="auto" ref={this.video} poster={this.state.data.coverUri}/>
<div className={style.play_img+' '+isShow} onClick={this.show_hide}>
<div onClick={this.goPlay} className={style.toggle_img}>
<img src={this.state.isPlay? pause:play}/>
</div>
</div>
</div>
)
}
show_hide(){
if(this.state.isPlay&&!this.state.isShow){
this.setState({
isShow: true
},()=>{
setTimeout(()=>{
this.setState({
isShow: false
})
},2000)
})
}else if(!this.state.isShow){
this.setState({
isShow: true
})
}
this.showID=setInterval(()=>{
if(!this.state.isPlay&&!this.state.isShow){
this.setState({
isShow: true
})
}
})
}
goPlay(event){
if(this.state.isPlay){
this.video.current.pause()
this.setState({
isPlay: false,
isShow:true
})
}else{
this.video.current.play();
this.setState({
isPlay: true
})
setTimeout(()=>{
this.setState({
isShow:false
})
},2000)
}
this.timeId=setInterval(()=>{
if(this.video.current.ended){
this.setState({
isPlay: false,
isShow: true
})
clearInterval(this.timeId)
}
},1000)
}
componentWillUnmount() {
clearInterval(this.timeId)
clearInterval(this.showID)
}
}
const mapPatchToProps=dispatch=>{
return{
...loadingAndToast(dispatch)
}
}
export default connect(state=>{
return{
axios: state.app.http,
api: state.app.api
}
},mapPatchToProps)(Video)
相關文章
- 自定義視訊播放器播放器
- Vue + WebRTC 實現音視訊直播(附自定義播放器樣式)VueWeb播放器
- Swift中使用MPMoviePlayerController實現自定義視訊播放器介面SwiftController播放器
- HTML video 播放本地視訊HTMLIDE
- 用canvas實現視訊播放與彈幕功能Canvas
- 螢石雲視訊EZOpenSDK整合(實現播放,視訊放大功能)
- ReactNative——react-native-video實現視訊全屏播放ReactIDE
- iOS 基於AVPlayer自定義視訊播放器iOS播放器
- 自定義視訊播放器與慢放滾輪播放器
- Flex4/AS3.0自定義VideoPlayer元件皮膚,實現Flash視訊播放器FlexS3IDE元件播放器
- 短視訊直播原始碼,自定義圖片或視訊的迴圈播放原始碼
- Android進階:十、自定義視訊播放器 1Android播放器
- 短視訊開發app,自定義帶進度條的視訊播放按鈕APP
- 實現播放視訊及彈幕
- Cisdem Video Player for mac(高清視訊播放器)IDEMac播放器
- Video元件:控制視訊的播放與暫停IDE元件
- Android進階:自定義視訊播放器開發(上)Android播放器
- Android進階:自定義視訊播放器開發(下)Android播放器
- Flutter:基於video_player實現視訊相關手勢控制、全屏播放FlutterIDE
- vue-自定義指令-實現提示功能Vue
- canvas之自定義頭像功能實現Canvas
- Nginx+FFmpeg實現rtsp流轉hls流,在WEB通過H5 video實現視訊播放NginxWebH5IDE
- Jquery實現自定義訊息彈窗jQuery
- 帶你用AVPlayer實現音訊和視訊播放音訊
- 如何實現視訊加密全平臺播放加密
- 自定義檔案上傳功能實現方法
- WebView 視訊全屏播放(基於Html5 video)WebViewHTMLIDE
- Elmedia Video Player Pro 專業音視訊播放器IDE播放器
- UITableView 視訊自動播放功能總結UIView
- 使用vue控制video視訊和彈幕功能VueIDE
- php短視訊原始碼,jQuery實現自定義輪播圖外掛PHP原始碼jQuery
- Android中SurfaceView視訊播放實現程式碼AndroidView
- Vue+Video.js播放m3u8視訊流VueIDEJS
- 微信網頁video播放視訊不全屏的解決方法網頁IDE
- Elmedia Video Player pro for mac - 蘋果專用視訊播放器IDEMac蘋果播放器
- Elmedia Video Player Pro for Mac(專業音視訊播放器)IDEMac播放器
- Mac專業音視訊播放器:Elmedia Video Player ProMac播放器IDE
- video.js 自定義使用IDEJS