bonc-htmlplayer
Advanced tools
Comparing version 1.0.7 to 1.0.8
{ | ||
"name": "bonc-htmlplayer", | ||
"version": "1.0.7", | ||
"version": "1.0.8", | ||
"description": "东方国信的html播放器内核", | ||
@@ -5,0 +5,0 @@ "main": "./src/index.js", |
@@ -0,26 +1,15 @@ | ||
[TOC] | ||
# BonchH5Player 播放器内核接口文档 | ||
## 下载源码及安装配置 | ||
``` | ||
git clone https://code.bonc.com.cn/liuyuchao/civms_h5player.git | ||
cd bonc-htmlplayer | ||
npm install | ||
# npm全局安装的路径配置到系统环境变量中,将项目的包放到全局目录下 | ||
npm link | ||
``` | ||
环境变量如下图所示 | ||
## 描述 | ||
本项目包含一个h5播放器,接收相机传过来的h264流媒体数据。即可以通过git拉取源码使用,也可以通过npm安装适应。公司的私有npm需要连接公司的内网使用,我把播放器内核包放到了 https://code.bonc.com.cn/nexus/repository/npm-test/ 切换npm仓库地址后即可通过npm安装。同时,该npm包在公有npm上也有推送,所以可以直接执行“npm i bonc-htmlplayer”。播放视频的过程中需保证网络流畅,否则会造成丢包,引起花屏。 | ||
![环境变量](https://code.bonc.com.cn/fuqingyu/bonc-htmlplayer/blob/master/doc/environment_variable.png) | ||
## 项目中使用 | ||
``` | ||
npm link bonc-htmlplayer | ||
``` | ||
## 快速开始(基于react) | ||
## 快速开始(基于react的demo) | ||
```javascript | ||
import React,{Component} from 'react'; | ||
import configs from './config' | ||
import Html5Player from 'bonc-htmlplayer' | ||
import Html5Player from 'bonc-htmlplayer'//播放器内核库 | ||
class App extends Component{ | ||
@@ -30,9 +19,5 @@ | ||
this._player = new Html5Player(configs); | ||
//绑定回调(打开视频、准备完毕、断开连接) | ||
this._player.on('startVideo',this.onOpen.bind(this)); | ||
this._player.on('startSuccess',this.onPlay.bind(this)); | ||
this._player.on('disconnectNetWork',this.onDisconnectNetWork.bind(this)); | ||
} | ||
playVideo(){ | ||
var url = 'http://172.16.17.165:80/vms/deviceForChannel/openChanneltForHtml' | ||
var url = 'http://172.16.17.165:80//vms/deviceForChannel/openChanneltForHtml' | ||
var formData = new FormData(); | ||
@@ -82,3 +67,6 @@ var channelidstr = '334a578c72334d21a201656e246f4c25-0000' | ||
``` | ||
## 注: | ||
demo中的channelidstr这个通道id来自于接口(两种方式),具体用哪个字段,请参考文档以下两个接口的说明: | ||
1.根据组织id获取编码设备以及编码设备下的通道 | ||
2.获取通道列表 | ||
## API | ||
@@ -90,5 +78,5 @@ | ||
|videoId |是 |String | 视频的video标签的ID | | ||
|centerInfo|否|object|包含中心服务器的url和摄像头通道id的对象 centerInfo:{centerUrl:'172.16.17.165',channelId:'334a578c72334d21a201656e246f4c25-0000'} | ||
|centerInfo|否|object|包含中心服务器的url和摄像头通道id的对象 centerInfo:{centerUrl:'http://172.16.96.165:80//vms/deviceForChannel/openChanneltForHtml' ,channelId:'334a578c72334d21a201656e246f4c25-0000'} | ||
例: | ||
例1: | ||
```javascript | ||
@@ -100,2 +88,13 @@ var configs = { | ||
``` | ||
例2: | ||
```javascript | ||
var configs = { | ||
videoId : 'playerid', | ||
centerInfo:{ | ||
centerUrl:'http://172.16.96.165:80//vms/deviceForChannel/openChanneltForHtml', | ||
channelId:'334a578c72334d21a201656e246f4c25-0000' | ||
} | ||
}; | ||
this._player = new Html5Player(configs); | ||
``` | ||
@@ -105,2 +104,3 @@ ## 实例方法 | ||
json:object,如果构造方法的配置项中指定了中心服务器地址和通道id,openVideo方法不再需要参数 | ||
|配置项|必选|类型|说明| | ||
@@ -134,11 +134,20 @@ |:---- |:---|:----- |----- | | ||
### closeVideo() 关闭视频 | ||
### fullScreen() 全屏 | ||
## 事件 | ||
### startVideo 开始播放 | ||
### on(event,function) 绑定事件的回调函数 | ||
|参数|类型|说明| | ||
|:---- |:----- |----- | | ||
|event|string|事件名称| | ||
|function|function|事件的回调| | ||
### off(event,function) 解绑定事件的回调 参数同上 | ||
### offAll() 解绑定所有事件的所有回调 | ||
### startSuccess 取流成功 | ||
## 事件及其回调 | ||
| 名称 | 说明 | 参数 | | ||
| ------------ | ------------ | ------------ | | ||
| startVideo |播放命令执行后,请求websocket服务之前 | | | ||
| startSuccess |视频准备成功,开始播放之前 | | | ||
| disconnectNetWork |网络异常断开后 | | | ||
| currentTime |播放当前帧数据对应的时间|time:int 当前帧的unix时间,单位是ms | ||
|imgInfo |抛出人脸序列的回调|e:人脸数据,类型ArrayBuffer | ||
### disconnectNetWork 网络断开 | ||
@@ -275,3 +275,3 @@ import {extractNALubonc} from './utils' | ||
{ | ||
if(nalType!=7 && nalType!=8) | ||
if(nalType!=7 && nalType!=8 ) | ||
{ | ||
@@ -387,6 +387,10 @@ nalarr.push(nal); | ||
}) | ||
if(bufferLength>2 && bufferLength<=3){ | ||
if(bufferLength>0){ | ||
this.app.node.play(); | ||
this.app.node.playbackRate = 1; | ||
this.app.node.play(); | ||
} | ||
else if(bufferLength>2 && bufferLength<=3){ | ||
this.app.node.playbackRate = 1; | ||
} | ||
else if(bufferLength>3 && bufferLength<=5){ | ||
@@ -393,0 +397,0 @@ this.app.node.playbackRate = 1.25; |
@@ -92,9 +92,9 @@ import ByteArray from './ByteArray' ; | ||
var biPlanes=socketBA.ReadUint16(true);//2字节 | ||
var biBitCount=socketBA.ReadUint16(true); | ||
var biCompression=socketBA.ReadUint32(true); | ||
var biSizeImage=socketBA.ReadUint32(true); | ||
var biXPelsPerMeter=socketBA.ReadUint32(true); | ||
var biYPelsPerMeter=socketBA.ReadUint32(true); | ||
var biClrUsed=socketBA.ReadUint32(true); | ||
var biClrImportant=socketBA.ReadUint32(true); | ||
var biBitCount=socketBA.ReadUint16(true);//2字节 | ||
var biCompression=socketBA.ReadUint32(true);//4字节 | ||
var biSizeImage=socketBA.ReadUint32(true);//4字节 | ||
var biXPelsPerMeter=socketBA.ReadUint32(true);//4字节 | ||
var biYPelsPerMeter=socketBA.ReadUint32(true);//4字节 | ||
var biClrUsed=socketBA.ReadUint32(true);//4v | ||
var biClrImportant=socketBA.ReadUint32(true);//4字节 | ||
// var timestamp=biXPelsPerMeter*1000 + Math.floor(biYPelsPerMeter/1000); | ||
@@ -101,0 +101,0 @@ if(!this.start){ |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
4422
148
2426000
37