1.1.0 • Published 4 years ago

react-native-ezplayer v1.1.0

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

react-native-ezplayer

License NPM version

EZPlayer component for react-native apps

预览

EZPlayerRNBase EZPlayerRNList

介绍

基于EZPlayer封装的视频播放器,功能丰富,快速集成,可定制性强。

要求

  • iOS 9.0+
  • Xcode 12.0+
  • Swift 5.0+
  • React Native 0.63.3+

特性

使用

可以参考EZPlayerExample_RN项目,

react-native-ezplayer 文件:

EZRNPlayerView.swift : 对EZPlayer的封装,对接javascript

EZRNPlayerViewManager.swift : EZPlayer组件管理器

EZRNPlayerViewBridge.h & EZRNPlayerViewBridge.m : oc桥接

EZPlayer.js : 对EZPlayer封装的js api

属性

keydescriptionvalue
source视频数据源PropTypes.object
autoPlay设置数据源后自动播放PropTypes.bool
useDefaultUI使用EZPlayer自带皮肤PropTypes.bool
videoGravity视频画面比例PropTypes.string(aspect,aspectFill,scaleFill)
fullScreenMode全屏模式是竖屏还是横屏PropTypes.string(portrait,landscape)
floatMode浮动模式支持系统PIP和window浮层PropTypes.string(none,auto,system,window)
onPlayerHeartbeat播放器声明周期心跳PropTypes.func
onPlayerPlaybackTimeDidChangeaddPeriodicTimeObserver方法的触发PropTypes.func
onPlayerStatusDidChange播放器状态改变PropTypes.func
onPlayerPlaybackDidFinish视频结束PropTypes.func
onPlayerLoadingDidChangeloading状态改变PropTypes.func
onPlayerControlsHiddenDidChange播放器控制条隐藏显示PropTypes.func
onPlayerDisplayModeDidChange播放器显示模式改变了(全屏,嵌入屏,浮动)PropTypes.object
onPlayerDisplayModeChangedWillAppear播放器显示模式动画开始PropTypes.func
onPlayerDisplayModeChangedDidAppear播放器显示模式动画结束PropTypes.func
onPlayerTapGestureRecognizer点击播放器手势通知PropTypes.func
onPlayerDidPersistContentKeyFairPlay DRMPropTypes.func
onPlayerPIPControllerWillStart即将开启画中画PropTypes.func
onPlayerPIPControllerDidStart已经开启画中画PropTypes.func
onPlayerPIPFailedToStart开启画中画失败PropTypes.func
onPlayerPIPControllerWillEnd即将关闭画中画PropTypes.func
onPlayerPIPControllerDidEnd已经关闭画中画PropTypes.func
onPlayerPIPRestoreUserInterfaceForStop关闭画中画且恢复播放界面PropTypes.func

方法

functiondescription
play()播放
pause()暂停
stop()结束
seek(time, callback)设置播放进度,单位秒
replaceToPlay(source)替换播放源
rate(rate)设置播放速率
autoPlay(autoPlay)设置自动播放,autoPlay是PropTypes.bool
videoGravity(videoGravity)设置视频画面比例,videoGravity:aspect,aspectFill,scaleFill
toEmbedded(animated = true, callback)进入嵌入屏模式
toFloat(animated = true, callback)进入悬浮屏模式
toFull(orientation = 'landscapeLeft', animated = true, callback)进入全屏模式,orientation: landscapeLeft , landscapeRight
fullScreenMode(fullScreenMode)设置全屏的模式,fullScreenMode:portrait , landscape
floatMode(floatMode)设置浮窗的模式,fullScreenMode:none , auto, system, window,默认值auto

demo文件:

BasePlayerExample.js : EZPlayer的基础功能演示

TablePlayerExample.js :EZPlayer 在列表中的演示

TablePlayerCell.js : 列表的cell

EZCustomPlayer.js : 对EZPlayer.js进行封装,使用自定义ui,自定义ui可参考

Utils.js : 工具类

使用

//基本使用
//BasePlayerExample.js
        <EZPlayer
          ref={(e) => this._ezPlayer = e}
          style={styles.player}
          source={this.state.source }

          autoPlay={true}
          videoGravity={'aspect'} 
          fullScreenMode={'landscape'}
        />
//自定义ui
//EZCustomPlayer.js
          <TouchableWithoutFeedback onPress={this.action.onScreenTouch}>
                <View>
                    <EZPlayer
                        {...this.props}
                        useDefaultUI={false}
                        ref={(nativePlayer) => this.player.ref = nativePlayer}
                        style={this.props.style}
                        onPlayerHeartbeat={this.events.onPlayerHeartbeat}
                        onPlayerPlaybackTimeDidChange={this.events.onPlayerPlaybackTimeDidChange}
                        onPlayerStatusDidChange={this.events.onPlayerStatusDidChange}
                        onPlayerPlaybackDidFinish={this.events.onPlayerPlaybackDidFinish}
                        onPlayerLoadingDidChange={this.events.onPlayerLoadingDidChange}
                        onPlayerControlsHiddenDidChange={this.events.onPlayerControlsHiddenDidChange}
                        onPlayerDisplayModeDidChange={this.events.onPlayerDisplayModeDidChange}
                        onPlayerDisplayModeChangedWillAppear={this.events.onPlayerDisplayModeChangedWillAppear}
                        onPlayerDisplayModeChangedDidAppear={this.events.onPlayerDisplayModeChangedDidAppear}
                        onPlayerTapGestureRecognizer={this.events.onPlayerTapGestureRecognizer}
                        onPlayerDidPersistContentKey={this.events.onPlayerDidPersistContentKey}
                    />
                    {this.renderLoader()}
                    {this.renderBottomControls()}
                </View>
            </TouchableWithoutFeedback>

License

EZPlayer遵守MIT协议,具体请参考MIT