临时提交

This commit is contained in:
lin 2025-09-23 14:32:14 +08:00
parent c1672728d3
commit f7eea28951
5 changed files with 96 additions and 79 deletions

File diff suppressed because one or more lines are too long

View File

@ -171,7 +171,32 @@ declare namespace Jessibuca {
* https://github.com/langhuihui/jessibuca/issues/152 解决方案 * https://github.com/langhuihui/jessibuca/issues/152 解决方案
* WebGL图像预处理默认每次取4字节的数据540x960分辨率下的UV分量宽度是540/2=2704绿 * WebGL图像预处理默认每次取4字节的数据540x960分辨率下的UV分量宽度是540/2=2704绿
*/ */
openWebglAlignment?: boolean openWebglAlignment?: boolean,
/**
* webcodecs硬解码是否通过video标签渲染
*/
wcsUseVideoRender?: boolean,
/**
*
*/
controlAutoHide?: boolean,
/**
*
*/
recordType?: 'webm' | 'mp4',
/**
* 使web全屏(90)
*/
useWebFullScreen?: boolean,
/**
* 使
*/
autoUseSystemFullScreen?: boolean,
} }
} }
@ -222,8 +247,8 @@ declare class Jessibuca {
jessibuca.setTimeout(10) jessibuca.setTimeout(10)
jessibuca.on('timeout',function(){ jessibuca.on('timeout',function(){
// //
}); });
*/ */
setTimeout(): void; setTimeout(): void;
@ -249,17 +274,17 @@ declare class Jessibuca {
* pause `play()` * pause `play()`
@example @example
jessibuca.pause().then(()=>{ jessibuca.pause().then(()=>{
console.log('pause success') console.log('pause success')
jessibuca.play().then(()=>{ jessibuca.play().then(()=>{
}).catch((e)=>{ }).catch((e)=>{
}) })
}).catch((e)=>{ }).catch((e)=>{
console.log('pause error',e); console.log('pause error',e);
}) })
*/ */
pause(): Promise<void>; pause(): Promise<void>;
@ -289,14 +314,20 @@ declare class Jessibuca {
@example @example
jessibuca.play('url').then(()=>{ jessibuca.play('url').then(()=>{
console.log('play success') console.log('play success')
}).catch((e)=>{ }).catch((e)=>{
console.log('play error',e) console.log('play error',e)
}) })
// // 添加请求头
jessibuca.play() jessibuca.play('url',{headers:{'Authorization':'test111'}}).then(()=>{
console.log('play success')
}).catch((e)=>{
console.log('play error',e)
})
*/ */
play(url?: string): Promise<void>; play(url?: string, options?: {
headers: Object
}): Promise<void>;
/** /**
* *
@ -427,6 +458,21 @@ declare class Jessibuca {
*/ */
isRecording(): boolean; isRecording(): boolean;
/**
* /
* @param isShow
*
* @example
* jessibuca.toggleControlBar(true) // 显示
* jessibuca.toggleControlBar(false) // 隐藏
* jessibuca.toggleControlBar() // 切换 隐藏/显示
*/
toggleControlBar(isShow:boolean): void;
/**
*
*/
getControlBarShow(): boolean;
/** /**
* jessibuca * jessibuca
@ -477,14 +523,14 @@ declare class Jessibuca {
* *
* @example * @example
* jessibuca.on("error",function(error){ * jessibuca.on("error",function(error){
if(error === Jessibuca.ERROR.fetchError){ if(error === Jessibuca.ERROR.fetchError){
// //
} }
else if(error === Jessibuca.ERROR.webcodecsH265NotSupport){ else if(error === Jessibuca.ERROR.webcodecsH265NotSupport){
// //
} }
console.log('error:',error) console.log('error:',error)
}) })
*/ */
on(event: 'error', callback: (err: Jessibuca.ERROR) => void): void; on(event: 'error', callback: (err: Jessibuca.ERROR) => void): void;

File diff suppressed because one or more lines are too long

View File

@ -45,7 +45,7 @@
</div> </div>
</div> </div>
</div> </div>
<div id="playerBox"> <div id="playerBox" :style="playBoxStyle">
<div class="playBox" style="height: calc(100% - 90px); width: 100%; background-color: #000000"> <div class="playBox" style="height: calc(100% - 90px); width: 100%; background-color: #000000">
<div v-if="playLoading" style="position: relative; left: calc(50% - 32px); top: 43%; z-index: 100;color: #fff;float: left; text-align: center;"> <div v-if="playLoading" style="position: relative; left: calc(50% - 32px); top: 43%; z-index: 100;color: #fff;float: left; text-align: center;">
<div class="el-icon-loading" /> <div class="el-icon-loading" />
@ -167,6 +167,11 @@ export default {
} }
}, },
computed: { computed: {
playBoxStyle() {
return {
height: this.isFullScreen ? 'calc(100vh - 61px)' : 'calc(100vh - 164px)'
}
},
boxStyle() { boxStyle() {
if (this.showSidebar) { if (this.showSidebar) {
return { return {

View File

@ -7,11 +7,12 @@
title="视频播放" title="视频播放"
top="0" top="0"
append-to-body append-to-body
width="40vw"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="showVideoDialog" :visible.sync="showVideoDialog"
@close="close()" @close="close()"
> >
<div style="width: 100%; height: 100%"> <div style="width: 100%; ">
<el-tabs <el-tabs
v-if="Object.keys(this.player).length > 1" v-if="Object.keys(this.player).length > 1"
v-model="activePlayer" v-model="activePlayer"
@ -20,18 +21,21 @@
@tab-click="changePlayer" @tab-click="changePlayer"
> >
<el-tab-pane label="Jessibuca" name="jessibuca"> <el-tab-pane label="Jessibuca" name="jessibuca">
<jessibucaPlayer <div style="height: 22.5vw">
v-if="activePlayer === 'jessibuca'" <jessibucaPlayer
ref="jessibuca" v-if="activePlayer === 'jessibuca'"
:visible.sync="showVideoDialog" ref="jessibuca"
:video-url="videoUrl" :visible.sync="showVideoDialog"
:error="videoError" :video-url="videoUrl"
:message="videoError" :error="videoError"
:has-audio="hasAudio" :message="videoError"
fluent :has-audio="hasAudio"
autoplay fluent
live autoplay
/> live
/>
</div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="WebRTC" name="webRTC"> <el-tab-pane label="WebRTC" name="webRTC">
<rtc-player <rtc-player
@ -64,44 +68,6 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<jessibucaPlayer
v-if="Object.keys(this.player).length == 1 && this.player.jessibuca"
ref="jessibuca"
:visible.sync="showVideoDialog"
:video-url="videoUrl"
:error="videoError"
:message="videoError"
:has-audio="hasAudio"
fluent
autoplay
live
/>
<rtc-player
v-if="Object.keys(this.player).length == 1 && this.player.webRTC"
ref="jessibuca"
:visible.sync="showVideoDialog"
:video-url="videoUrl"
:error="videoError"
:message="videoError"
height="100px"
:has-audio="hasAudio"
fluent
autoplay
live
/>
<h265web
v-if="Object.keys(this.player).length == 1 && this.player.h265web"
ref="jessibuca"
:visible.sync="showVideoDialog"
:video-url="videoUrl"
:error="videoError"
:message="videoError"
height="100px"
:has-audio="hasAudio"
fluent
autoplay
live
/>
</div> </div>
<div id="shared" style="text-align: right; margin-top: 1rem;"> <div id="shared" style="text-align: right; margin-top: 1rem;">