0.3.81 • Published 2 years ago

ocean-player v0.3.81

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

说明

基于flv.jshls.js封装视频组件,支持React,也支持直接其他调用方式但是依赖React,ReactDOM,PropTypes

export { Player as default, Player, HistoryPlayer, createHistoryPlayer, createPlayer, Bar }
Component/Factorydescription
Player视频组件,适用于 React
HistoryPlayer历史视频组件,适用于 React
createPlayer创建视频控件,适用于非 React
createHistoryPlayer创建历史视频控件,适用于非 React
Bar用于拓展组件 contraller_bar
EventName返回支持的事件

安装

yarn add ocean-player
//or
npm i ocean-player

例子

React

//React simple demo
import LMPlayer from 'ocean-player'
ReactDOM.render(
  <LMPlayer
    file={`./video.mp4?${Math.random()}`}
    isLive={false}
    autoplay={true}
    loop={true}
    poster="./poster.png"
    onInitPlayer={player => {
      console.log(player)
    }}
  />,
  document.getElementById('root')
)

React

//other simple demo
import LMPlayer from 'ocean-player'
const container = document.getElementById('root')
LMPlayer.createPlayer({
  container,
  isLive: true,
  file: `./video.mp4?${Math.random()}`,
  onInitPlayer: player => {
    //get api
    console.log(player)
  }
})

flv地址示例:
http://ip:port/staticResource/v2/video/live.flv/2147511361?Authorization=eyJhbGciOiJIUzI1NiJ9.eyJvcmdhbml6YXRpb25JZCI6IjEwMDExMDAwMDAwMSIsImV4dCI6MTY0MTgxNTMyOTMxOSwidWlkIjoiMTAxMDAzMDAwMDAxIiwidmFsaWRTdGF0ZSI6MTA0NDA2LCJyb2xlSWQiOlsxMDEwMDIwMDAwMDFdLCJ2YWxpZFRpbWUiOm51bGwsIm9wdENlbnRlcklkIjoiMTAwMTAwMTAwMDAxIiwidXNlclR5cGUiOjEwMDcwMiwiaWF0IjoxNjQxNTU2MTI5MzE5fQ.5SZZ8BzobAgjlHFAkYsoCAIr4TK90h3xrgO3SgjW850

注意:开流地址内,存在.flv或者protocol=flv,可识别为flv开流

浏览器本地存储(localStorage)相关配置:

key: PY_PLUS

value:

{ "mode": 0, "version": "v1.0.10", "unique": true, "reloadTimer": 10, "switchRate": true, "patternAuth": false, "palette": true, "connectOnce": false }

nametyperequireddescription
modenumbertrue视频开流模式 0:浏览器默认方式-仅支持264,1:客户端插件模式(264/265/svac),2:综合媒体方式(硬解)
versionstring | 当前使用版本好
uniquebooleanfalse可选 默认值true,请求连接后是否添加时间戳
reloadTimernumberfalse可选 默认值 5 ,拉流失败时重新拉取次数
switchRatebooleanfalse可选 分辨率切换
palettebooleanfalse可选 默认值 false 调色板 --录像画面调色
connectOncebooleanfalse可选,默认值false 初始化拉流是否单次,启用后reloadTimer失效

Props

Player通用

nametyperequireddescription
filebooleanfalse视频url
isLivebooleanfalse默认值true,标记是否是直播模式
errorReloadTimernumberfalse默认值5,错误重连次数
typestringfalse可选flv,hls,native,强制设置格式
onInitPlayerfunctionfalse参数包含所有暴露api
draggablebooleanfalse可拖拽,默认值true
hideContrallerBarbooleanfalse隐藏控制栏,默认值false
scalebooleanfalse可缩放,默认值true
mutedstringfalse禁音,默认值muted
autoPlaybooleanfalse自动播放,默认值true
playsInlinebooleanfalse默认值false
preloadstringfalse默认值auto
posterstringfalse封面
loopbooleanfalse默认值false
snapshotfunctionfalse返回截图base64
classNamestringfalse-
rightExtContentsReact.Elementfalse控制栏右侧拓展
rightMidExtContentsReact.Elementfalse控制栏右侧拓展
leftExtContentsReact.Elementfalse控制栏左侧拓展
leftMidExtContentsReact.Elementfalse控制栏左侧拓展
flvOptionsobjectfalseflv.js
flvConfigobjectfalseflv.js
childrenReact.Elementfalse自定义拓展

HistoryPlayer 独有

nametyperequireddescription
historyListobjectfalse视频片断集合
defaultTimenumberfalse开始播放时间
//historyList 结构
const historyList = { beginDate: 0, duration: 0, fragments: [] }

//fragments 结构
const fragments = [
    { begin: 0, file: xx, end: 180}
]

Api

接口

nameargumentsdescription
play-播放方法
reload-重连视频
pause-暂停播放
seekTotime:number调整播放进度
setVolumevolume:number调整音量大小
mute-禁音
unmute-退出禁音
requestPictureInPicture-开启画中画
exitPictureInPicture-退出画中画
setPlaybackRaterate:number设置播放速率
getDuration-获取视频总时长
getCurrentTime-获取当前播放时间
getSecondsLoaded-获取缓存时间
getBufferedTime-获取当前视频缓存的起止时间
fastForwardtime默认5秒快进通过seekTo方法实现
backWindtime默认5秒快退通过seekTo方法实现
snapshot-截图
requestFullScreen-全屏
cancelFullScreen-退出全屏
oneventName,linstener监听事件
offeventName,linstener移除监听事件
emiteventName,data触发监听事件

对象

namedescription
flv当使用flv模式是返回flv对象
hls当使用hls模式是返回hls对象
__player返回当前video对象

event

支持事件

export default {
  RELOAD: "reload", //手动视频重载
  RELOAD_FAIL: "reloadFail", // 视频出错,重连失败
  RELOAD_SUCCESS: "reloadSuccess", //视频出错,重连成功
  ERROR: "error", //视频出错
  ERROR_RELOAD: "errorRload", //视频出错,自动重连
  HISTORY_PLAY_END: "historyPlayEnd", //历史视频列表播放结束
  SEEK: "seek", //跳跃播放时间
  TRANSFORM: "transform", //视频容器缩放
  CHANGE_PLAY_INDEX: "changePlayIndex", //历史视频列表播放索引改变
  HIDE_CONTRALLER:"hideContraller",
  SHOW_CONTRALLER:"showContraller",
  CLEAR_ERROR_TIMER:"clearErrorTimer" //重连成功清楚错误次数
};

可通过onoffemit使用,另外拓展可通过__player添加原生video事件

0.3.79

2 years ago

0.3.76

2 years ago

0.3.81

2 years ago

0.3.80

2 years ago

0.3.75

3 years ago

0.3.74

3 years ago

0.3.73

3 years ago

0.3.72

3 years ago

0.3.71

3 years ago

0.3.70

3 years ago

0.3.69

3 years ago

0.3.68

3 years ago

0.3.67

3 years ago

0.3.66

3 years ago

0.3.65

3 years ago

0.3.64

3 years ago

0.3.63

3 years ago

0.3.62

3 years ago

0.3.61

3 years ago

0.3.59

3 years ago

0.3.58

3 years ago

0.3.57

3 years ago

0.3.56

3 years ago

0.3.55

3 years ago

0.3.60

3 years ago

0.3.5

3 years ago

0.3.4

3 years ago

0.2.49

3 years ago

0.3.0

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.3

3 years ago

0.2.48

3 years ago

0.2.47

3 years ago

0.2.46

3 years ago

0.2.45

3 years ago

0.2.44

3 years ago

0.2.43

3 years ago

0.2.42

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.9

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.3

3 years ago

0.1.0

3 years ago