@teyuto/react-native-player
Version:
React Native teyuto player
3 lines (2 loc) • 4.46 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("react"),t=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,a=require("react-native-webview");function o(e,r){return(o=Object.setPrototypeOf||function(e,r){return e.__proto__=r,e})(e,r)}var s={width:"100%",height:"100%"};exports.default=function(e){var r,n;function i(r){var t;return(t=e.call(this,r)||this).playerUrl=t.buildEmbedUrl(r),t.token=t.buildToken(r),t}n=e,(r=i).prototype=Object.create(n.prototype),r.prototype.constructor=r,o(r,n);var p=i.prototype;return p.play=function(){var e;null==(e=this.webref)||e.injectJavaScript("player.play(); true;")},p.pause=function(){var e;null==(e=this.webref)||e.injectJavaScript("player.pause(); true;")},p.requestFullscreen=function(){var e;null==(e=this.webref)||e.injectJavaScript("player.requestFullscreen(); true;")},p.mute=function(){var e;null==(e=this.webref)||e.injectJavaScript("player.muted(true); true;")},p.unmute=function(){var e;null==(e=this.webref)||e.injectJavaScript("player.muted(false); true;")},p.seek=function(e){var r;if(isNaN(e))throw new Error("Invalid time");null==(r=this.webref)||r.injectJavaScript("player.currentTime(player.currentTime() + "+e+"); true;")},p.setCurrentTime=function(e){var r;if(isNaN(e))throw new Error("Invalid time");null==(r=this.webref)||r.injectJavaScript("player.currentTime("+e+"); true;")},p.setLoop=function(e){var r;null==(r=this.webref)||r.injectJavaScript("player.loop("+!!e+"); true;")},p.setPlaybackRate=function(e){var r;if(isNaN(e))throw new Error("Invalid rate");null==(r=this.webref)||r.injectJavaScript("player.playbackRate("+e+"); true;")},p.setVolume=function(e){var r;if(isNaN(e))throw new Error("Invalid volume");null==(r=this.webref)||r.injectJavaScript("player.volume("+e+"); true;")},p.onMessage=function(e){if(console.log(e),e.type)switch(e.type){case"controlsdisabled":this.props.onControlsDisabled&&this.props.onControlsDisabled();break;case"controlsenabled":this.props.onControlsEnabled&&this.props.onControlsEnabled();break;case"ended":this.props.onEnded&&this.props.onEnded();break;case"error":this.props.onError&&this.props.onError();break;case"firstplay":this.props.onFirstPlay&&this.props.onFirstPlay();break;case"fullscreenchange":this.props.onFullScreenChange&&this.props.onFullScreenChange();break;case"pause":this.props.onPause&&this.props.onPause();break;case"play":this.props.onPlay&&this.props.onPlay();break;case"playerresize":this.props.onPlayerResize&&this.props.onPlayerResize();break;case"qualitychange":this.props.onQualityChange&&this.props.onQualityChange(e.resolution);break;case"ratechange":this.props.onRateChange&&this.props.onRateChange();break;case"ready":this.props.onReady&&this.props.onReady();break;case"resize":this.props.onResize&&this.props.onResize();break;case"seeking":this.props.onSeeking&&this.props.onSeeking();break;case"timeupdate":this.props.onTimeUpdate&&this.props.onTimeUpdate(e.data.currentTime);break;case"useractive":this.props.onUserActive&&this.props.onUserActive();break;case"userinactive":this.props.onUserInactive&&this.props.onUserInactive();break;case"volumechange":this.props.onVolumeChange&&this.props.onVolumeChange(e.data.volume)}},p.buildQueryParameters=function(e){var r="&pip=off",t={autoplay:"auto",muted:"muted",controls:"controls",playbackRates:"playbackRates",qualitySelector:"qualitySelector",seekButtons:"seekButtons",playerColor:"playerColor",loop:"loop",captions:"captions",lowLatency:"lowLatency"};for(var a in e)"autoplay"!==a&&"muted"!==a&&"controls"!==a&&"playbackRates"!==a&&"qualitySelector"!==a&&"seekButtons"!==a&&"playerColor"!==a&&"loop"!==a&&"captions"!==a&&"lowLatency"!==a||(r+="&"+t[a]+"="+e[a]);return r},p.buildEmbedUrl=function(e){return"https://teyuto.tv/video/player?w="+e.id+this.buildQueryParameters(e)},p.buildToken=function(e){return""+e.token},p.render=function(){var e=this;return t.createElement(a.WebView,{ref:function(r){return e.webref=r},source:{uri:this.playerUrl,headers:{Authorization:"Bearer "+this.token}},style:this.props.style||s,scrollEnabled:!1,onMessage:function(r){return e.onMessage(JSON.parse(r.nativeEvent.data))},allowsInlineMediaPlayback:!0,allowsFullscreenVideo:!0,mediaPlaybackRequiresUserAction:!1,injectedJavaScriptBeforeContentLoaded:"window.addEventListener('message', (m) => window.ReactNativeWebView.postMessage(JSON.stringify(m.data)))"})},i}(r.Component);
//# sourceMappingURL=react-native-player.cjs.production.min.js.map