Commit d8a30950 authored by 喻天's avatar 喻天

fix: 视频组件修改

parent 5aa5839d
...@@ -22,7 +22,7 @@ class App extends React.Component { ...@@ -22,7 +22,7 @@ class App extends React.Component {
if (VideoInfo.url) { if (VideoInfo.url) {
this.create(this.refs[`myVideo` + VideoInfo.key], `key`, JessibucaObj); this.create(this.refs[`myVideo` + VideoInfo.key], `key`, JessibucaObj);
setTimeout(() => { setTimeout(() => {
this.play(VideoInfo.url + `_${VideoInfo.dataRate}`, `key`); this.play(VideoInfo.url + `${VideoInfo.dataRate}`, `key`);
}, 10); }, 10);
} }
} }
...@@ -69,7 +69,6 @@ class App extends React.Component { ...@@ -69,7 +69,6 @@ class App extends React.Component {
...jsc, ...jsc,
...obj, ...obj,
container: dom, container: dom,
decoder: '/JessibucaVideo/decoder.js',
}; };
if (dom) { if (dom) {
this.jessibuca = new window.Jessibuca(jsc); this.jessibuca = new window.Jessibuca(jsc);
......
...@@ -11,7 +11,7 @@ group: ...@@ -11,7 +11,7 @@ group:
## 组件使用 ## 组件使用
**需将组件中 JessibucaVideo 文件夹,拷贝至环境根目录 public 中**<br/> **且需在子应用或者基座上的入口文件 index.html 或者 index.ejs 中,用 script 标签将 jessibuca.js 引入**<br/> 如:<br/> `<script type="text/javascript" src="/civ_energy/JessibucaVideo/jessibuca.js"></script>`<br/> `<script type="text/javascript" src="/civbase/JessibucaVideo/jessibuca.js"></script>` **需将组件中 JessibucaVideo 文件夹,拷贝至环境根目录 public 中**<br/> **且需在子应用或者基座上的入口文件 index.html 或者 index.ejs 中,用 script 标签将 jessibuca.js 引入**<br/> 如:<br/> `<script type="text/javascript" src="/civ_energy/JessibucaVideo/jessibuca.js"></script>`<br/> `<script type="text/javascript" src="/civbase/JessibucaVideo/jessibuca.js"></script>`<br/> **在定义 decoder.js 文件路径时,需兼容子应用和基座**<br/> 如:<br/> `let _url = '/civ_energy/JessibucaVideo/decoder.js'`<br/> ` let JessibucaObj = { decoder: window.__POWERED_BY_QIANKUN__ ? '/civbase' + _url : _url }`<br/>
## 代码演示 ## 代码演示
...@@ -21,6 +21,7 @@ group: ...@@ -21,6 +21,7 @@ group:
| Jessibuca 常用参数 | 说明 | 类型 | 默认值 | | Jessibuca 常用参数 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| **decoder** | 是文件"/JessibucaVideo/decoder.js"的路径 | string | --- |
| hiddenAutoPause | 是否开启当页面的'visibilityState'变为'hidden'的时候,自动暂停播放。 | boolean | false | | hiddenAutoPause | 是否开启当页面的'visibilityState'变为'hidden'的时候,自动暂停播放。 | boolean | false |
| hasAudio | 是否有音频,如果设置 false,则不对音频数据解码,提升性能 | boolean | true | | hasAudio | 是否有音频,如果设置 false,则不对音频数据解码,提升性能 | boolean | true |
| isFlv | 当为 true 的时候:ws 协议不检验是否以.flv 为依据,进行协议解析。 | boolean | false | | isFlv | 当为 true 的时候:ws 协议不检验是否以.flv 为依据,进行协议解析。 | boolean | false |
...@@ -37,9 +38,9 @@ group: ...@@ -37,9 +38,9 @@ group:
| VideoInfo 参数 | --- | --- | --- | | VideoInfo 参数 | --- | --- | --- |
| fullUrl | 完整 url,接入 flv 或者三方的链接 | string | "" | | fullUrl | 完整 url,接入 flv 或者三方的链接 | string | "" |
| useFullUrl | 是否为完整 url,是,则取 fullUrl,否,则会用 key 去拼接 | boolean | false | | useFullUrl | 是否为完整 url,是,则取 fullUrl,否,则会用 key 去拼接 | boolean | false |
| key | 摄像头唯一标识 | string | "" | | key | 摄像头唯一标识,一串 GUID | string | "" |
| cameraName | 摄像头名称 | string | "" | | cameraName | 摄像头名称 | string | "" |
| dataRate | 码率,1 为主码流,2,3 为其他码流,与消耗网络有关,主码流消耗最高 | number | 2 | | dataRate | 码率,1 为主码流,2,3 为其他码流,与消耗网络有关,主码流消耗最高**由于拼接方式不定,改为是字符串传入** | string | '/2' |
## 写在最后 ## 写在最后
......
...@@ -11,65 +11,59 @@ const Demo1 = (props) => { ...@@ -11,65 +11,59 @@ const Demo1 = (props) => {
screenshot: false, screenshot: false,
}, },
loadingText: '演示视频加载中', loadingText: '演示视频加载中',
decoder: '/JessibucaVideo/decoder.js',
}; };
// 若是在子应用中,则需加上子应用名称,且兼容基座
// 如下:
// let _url = '/civ_energy/JessibucaVideo/decoder.js'
// let JessibucaObj = {
// decoder: window.__POWERED_BY_QIANKUN__ ? '/civbase' + _url : _url
// }
let VideoInfo = { let VideoInfo = {
key: '/live/s8', key: '1CEB209F-8BC7-44B5-9F6B-3D8FCB855E76',
dataRate: 2, dataRate: `/2`,
fullUrl: 'ws://172.16.19.19:8080/jessica/rtsp/site_pd00001/ipc_172.16.19.7', fullUrl: 'ws://172.16.19.19:8080/jessica/1CEB209F-8BC7-44B5-9F6B-3D8FCB855E76',
useFullUrl: true, useFullUrl: true,
cameraName: `摄像头s8`, cameraName: `摄像头s8`,
}; };
useEffect(() => { useEffect(() => {
console.log(jessibuca); // 事件 ,返回视频信息
jessibuca.current.on('videoInfo', function (data) { jessibuca.current.on('videoInfo', function (data) {
// console.log('timeUpdate', ts);
console.log('width:', data.width, 'height:', data.width); console.log('width:', data.width, 'height:', data.width);
}); });
// jessibuca.current.on('timeUpdate', function (ts) {
// console.log('timeUpdate', ts); // 事件 ,播放视频之后的回调
// // console.log('pause:',data)
// })
jessibuca.current.on('play', function (data) { jessibuca.current.on('play', function (data) {
// console.log('timeUpdate', ts);
console.log('play:', jessibuca); console.log('play:', jessibuca);
}); });
// 事件 ,暂停视频之后的回调
jessibuca.current.on('pause', function (data) { jessibuca.current.on('pause', function (data) {
// console.log('timeUpdate', ts);
console.log('pause:', data); console.log('pause:', data);
}); });
// ******
// 其他事件需查看在线文档
// ******
}, []); }, []);
const stopVideo = () => { const stopVideo = () => {
try { jessibuca.current.pause();
jessibuca.current.pause();
console.log(jessibuca.current.isPlaying());
} catch (ex) {
console.log(ex);
}
}; };
const startVideo = () => { const startVideo = () => {
try { if (jessibuca && jessibuca.current) {
if (jessibuca && jessibuca.current) { jessibuca.current.play();
jessibuca.current.play(); // console.log(jessibuca.current.isPlaying());
console.log(jessibuca.current.isPlaying());
}
} catch (ex) {
console.log(ex);
} }
}; };
const testVideo = () => { const testVideo = () => {
console.log(jessibuca.current.isPlaying()); // console.log(jessibuca.current.isPlaying());
}; };
const destroyVideo = () => { const destroyVideo = () => {
try { jessibuca.current.destroy();
jessibuca.current.destroy();
} catch (ex) {
console.log(ex);
}
}; };
return ( return (
<div> <div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment