vue3-liveplayer-wrapper
Version:
Vue 3 wrapper for @liveqing/liveplayer-v3 with recording and playback control features - Fully compatible with Vue 3.5+
135 lines (114 loc) • 3.3 kB
TypeScript
// 全局 video.js 声明
declare global {
interface Window {
videojs: any;
}
}
declare module 'liveplayer-wrapper' {
import { ComponentPublicInstance, App } from 'vue'
import LivePlayerWrapper from '../components/LivePlayerWrapper.vue'
// 导出组件
export { LivePlayerWrapper }
// 导出类型
export interface LivePlayerWrapperProps {
// 视频相关属性
videoUrl?: string
videoTitle?: string
poster?: string
alt?: string
// 播放控制属性
autoplay?: boolean
controls?: boolean
loop?: boolean
live?: boolean
muted?: boolean
// 显示设置
aspect?: string
fluent?: boolean
stretch?: boolean
hideBigPlayButton?: boolean
waterMark?: string
// 超时设置
timeout?: number
// 按钮显示控制
showCustomButton?: boolean
hideSnapshotButton?: boolean
hideFullscreenButton?: boolean
hideFluent?: boolean
hideStretch?: boolean
// HLS相关设置
resolution?: string
resolutiondefault?: string
playbackRates?: number[]
playbackRate?: number
// FLV相关设置
hasaudio?: boolean
hasvideo?: boolean
// 其他功能
customButtons?: string
autofocus?: boolean
dblclickFullscreen?: boolean
language?: string
digitalZoom?: boolean
}
export interface LivePlayerWrapperInstance extends ComponentPublicInstance {
// 播放控制
play(): void
pause(): void
togglePlay(): void
paused(): boolean
// 播放进度
getCurrentTime(): number
setCurrentTime(time: number): void
// 截图功能
snap(): void
// 音量控制
getMuted(): boolean
setMuted(muted: boolean): void
toggleMute(): void
getVolume(): number
setVolume(volume: number): void
// 全屏控制
isFullscreen(): boolean
requestFullscreen(): void
exitFullscreen(): void
toggleFullscreen(): void
// 其他功能
getDuration(): number
getPlayer(): any
// 录制功能
startRecording(): void
stopRecording(): void
toggleRecording(): void
isRecording(): boolean
getRecordingTime(): string
forceStopRecording(): void
recoverFromRecordingError(): void
// 播放开关功能
togglePlayback(): void
isPlaying(): boolean
}
export interface LivePlayerWrapperEvents {
message: (event: { type: string; message: string }) => void
error: (error: Error) => void
ended: () => void
timeupdate: (time: number) => void
pause: (time: number) => void
play: (time: number) => void
fullscreen: (isFullscreen: boolean) => void
snapOutside: (data: string) => void
snapInside: (data: string) => void
customButtons: (buttonName: string) => void
canplay: (duration: number) => void
volumechange: (volume: number, muted: boolean) => void
ready: (player: any) => void
recordingStart: () => void
recordingStop: () => void
recordingError: (error: string) => void
}
// 默认导出 - 支持 Vue 3.5+ 的 App 类型
const LivePlayerWrapperPlugin: {
install: (app: App) => void
}
export default LivePlayerWrapperPlugin
}