easyplayer-pro播放器學習

背調

查詢官方文檔,EasyPlayer-pro支持ws-flv, http-flv, hls, webrtc(webrtc://xxx)格式,電子放大、水印(動態水印、幽靈水印)、顯示上一個視頻最后一幀、播放器快照截圖、視頻錄制(WebM格式(音頻+視頻)、MP4格式(視頻),FLV格式(音頻+視頻))、超時、斷網重連、異常暫停播放等

屬性配置?

屬性說明類型默認值
container

播放器容器

--

decoder

wasm解碼地址

String

-

isResize

是否拉伸

Boolean

true

loadingText

加載顯示的文字

String

加載中

videoBuffer

設置最小緩沖時長,單位秒,播放器會自動消除延遲

Number

1

hasAudio

是否解析音頻

Boolean

true

useMSE

MSE模式

Boolean

false

useWCS

WCS模式

Boolean

false

useSIMD

強制使用wasm模式

Boolean

false

background

視頻封面圖片

String

-

qualityConfig

配置清晰度

Array

['普清', '高清', '超清', '4K', '8K']

defaultStreamQuality

默認顯示的清晰度,如果不設置,會顯示第一個清晰度

String

-

isNotMute

是否渲染音頻

Boolean

false

recordType

視頻錄制默認mp4格式

String

mp4, flv

playbackForwardMaxRateDecodeIFrame

錄像倍數

Number

-

debug

控制臺日志打印

Boolean

false

debugLevel

打印日志級別默認warn

String

debug, warn

調用方法和事件回調

方法/事件說明
play播放

playback

播放錄像

pause

暫停播放

isPause

返回是否暫停中狀態

setBufferTime

設置最大緩沖時長

setVolume

設置音量

getVolume

獲取音量

exitFullscreen

退出全屏(取消全屏)播放視頻

mute

靜音

cancelMute

取消靜音

isMute

返回是否靜音

screenshot

獲取快照

setFullscreen

全屏

setStreamQuality

設置分辨率,必須是qualityConfig里面的數據

forward

設置錄像倍數

setPlaybackStartTime

設置錄像跳轉時間/s

getVideoInfo

獲取視頻信息

getAudioInfo

獲取音頻信息

destroy

關閉視頻,釋放底層資源

play

播放事件

pause

暫停事件

videoInfo

視頻信息

audioInfo

音頻信息

mute

音頻事件

error

播放異常

kBps

當前網速,單位KB 每秒1次

recordEnd

錄制結束的事件

recordStart

錄制開始的事件

fullscreen

當前是否全屏

streamQualityChange

清晰度回調

playbackSeek

錄像時間軸跳轉回調

playbackPreRateChange

錄像倍數的回調

currentPts

監聽當前渲染幀的時間戳(流里面的)

應用

npm install easyplayerpro
import { createApp } from 'vue';
import App from './App.vue';
import EasyPlayerPro from 'easyplayerpro';const app = createApp(App);// 將 EasyPlayerPro 掛載到全局屬性
app.config.globalProperties.$EasyPlayerPro = EasyPlayerPro;app.mount('#app');
<template><div class="container"><div class="row"><div class="col-md-8"><!-- 播放器容器 --><div ref="videoContainer" id="video" class="player-container"></div></div><div class="col-md-4"><!-- 配置選項 --><div class="config-options"><label><input type="checkbox" v-model="config.useMSE" /> MSE 硬解</label><label><input type="checkbox" v-model="config.useSIMD" /> WASM 解碼</label><label><input type="checkbox" v-model="config.hasAudio" /> 渲染音頻</label><label><input type="checkbox" v-model="config.websocket1006ErrorReplay" /> 自動重連</label><label>延遲重播時間:<input type="number" v-model.number="config.reconnectTime" /> ms</label><label>水印配置:<input type="text" v-model="config.watermark.text" /></label><label>視頻封面 URL:<input type="text" v-model="config.poster" /></label><label>播放地址:<input type="text" v-model="config.url" id="playHref" /></label></div><!-- 控制按鈕 --><div class="control-buttons"><button id="play" @click="createPlayer">播放</button><button id="rePlay" @click="rePlay">重播</button><button id="destroy" @click="destroyPlayer">銷毀</button><button @click="screenshotFn">截圖</button></div></div></div></div>
</template><script setup>
import { reactive, onMounted, ref } from 'vue';// 獲取全局屬性
const { proxy } = getCurrentInstance();// 初始化播放器配置
const config = reactive({useMSE: false,useSIMD: false,hasAudio: false,websocket1006ErrorReplay: false,reconnectTime: 5000, // 5秒重連watermark: {text: ''},poster: '',url: 'http://192.168.1.37:8888/live/001.live.flv'
});// 聲明
let easypro;
const videoContainer = ref(null);
const playHref = ref(null);// 實例初始化
function createPlayer () {if (easypro) {easypro.destroy(); // 銷毀存在的實例console.log('Existing player destroyed');}easypro = new proxy.$EasyPlayerPro({container: videoContainer.value,videoBuffer: 0.2,videoBufferDelay: config.videoBufferDelay || 0, // 使用 config 中的值useMSE: config.useMSE,useSIMD: config.useSIMD,hasAudio: config.hasAudio,websocket1006ErrorReplay: config.websocket1006ErrorReplay,reconnectTime: config.reconnectTime,networkDelayTimeoutReplay: false,heartTimeout: 10000,replayUseLastFrameShow: false,background: config.background || '',timeout: 10,qualityConfig: ['普清', '高清', '超清', '4K', '8K'],debug: true,debugLevel: "debug",operateBtns: {fullscreen: true,screenshot: true,play: true,},});const url = config.url;if (url) {easypro.play(url);console.log(`Playing video from: ${url}`);} else {console.warn('No video URL provided!');}
}// 重播
function rePlay () {if (easypro) {easypro.play(config.url);console.log('Replaying the video');} else {createPlayer();}
}// 銷毀
function destroyPlayer () {if (easypro) {easypro.destroy();console.log('Player destroyed');}
}// 截圖
function screenshotFn () {if (easypro) {easypro.screenshot();console.log('Screenshot taken');} else {console.warn('No player instance found to take a screenshot');}
}onMounted(() => {playHref.value = document.getElementById('playHref');
});
</script><style scoped>
.player-container {width: 100%;height: 500px;background-color: #000;
}.config-options label {display: block;margin-bottom: 8px;
}.control-buttons button {margin-right: 10px;
}
</style>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63530.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63530.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63530.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

5G 模組 初始化狀態檢測

5G 模組 上電檢測 5G 模組 上電檢測 #終端上電后&#xff0c;待模組正常啟動&#xff0c;再進入 控制臺。 #vim /etc/profile##新增 until [ -c /dev/ttyUSB1 ] doecho -e "Wait module[5G] up ... "sleep 5 done ##新增The End.

WPF+MVVM案例實戰與特效(四十三)- 打造動態炫酷彩虹字控件,讓你的界面動起來

文章目錄 1、引言1、案例效果2、案例實現1、XAML 布局2、邏輯代碼3、動畫效果4、控件使用5、運行效果3、案例源代碼4、總結1、引言 上一節,我們實現了炫酷的彩虹字控件,現在我們想讓彩虹字更加生動吸引人,讓每個字體跳動起來,讓字體活過來。這里我們通過動畫實現,我們把這…

線程知識總結(一)

1、概述 1.1 進程與線程 進程是程序運行時&#xff0c;操作系統進行資源分配的最小單位&#xff0c;包括 CPU、內存空間、磁盤 IO 等。從另一個角度講&#xff0c;進程是程序在設備&#xff08;計算機、手機等&#xff09;上的一次執行活動&#xff0c;或者說是正在運行中的程…

深入QML語法

文章目錄 深入了解 QML 文檔的結構和語法什么是 QML 文檔&#xff1f;導入語句導入語句的格式示例 對象聲明基本語法示例更復雜的對象聲明 QML 對象類型詳解1. Rectangle&#xff08;矩形&#xff09;2. Gradient&#xff08;漸變&#xff09;3. Text&#xff08;文本&#xff…

【Python】使用Selenium 操作瀏覽器 自動化測試 記錄

【自動化】Python SeleniumUtil 工具 開啟開發者模式 自動安裝油猴用戶腳本等-CSDN博客文章瀏覽閱讀389次。【自動化】Python SeleniumUtil 工具。https://blog.csdn.net/G971005287W/article/details/144565691?spm1001.2014.3001.5501【學習記錄】瀏覽器指紋相關學習記錄&am…

Linux應用軟件編程-文件操作(標準io)

在Linux下一切皆文件&#xff0c;比如&#xff1a;.txt&#xff0c;.c&#xff0c;.h&#xff0c;.jpg&#xff0c;目錄&#xff0c;鍵盤&#xff0c;鼠標&#xff0c;顯示器、硬盤等等都是文件&#xff0c;即IO。文件操作的統一思想&#xff1a;打開文件&#xff0c;讀、寫文件…

【Rust自學】4.4. 引用與借用

4.4.0 寫在正文之前 這一節的內容其實就相當于C的智能指針移動語義在編譯器層面做了一些約束。Rust中引用的寫法通過編譯器的約束寫成了C中最理想、最規范的指針寫法。所以學過C的人對這一章肯定會非常熟悉。 喜歡的話別忘了點贊、收藏加關注哦&#xff08;加關注即可閱讀全文…

深入解析 StarRocks 物化視圖:全方位的查詢改寫機制

小編導讀&#xff1a; 本文將重點介紹如何利用物化視圖進行查詢改寫。文章將全面介紹物化視圖的基本原理、關鍵特性、應用案例、使用場景、代碼細節以及主流大數據產品的物化視圖改寫能力對比。 物化視圖在 StarRocks 中扮演著至關重要的角色&#xff0c;它是進行數據建模和加速…

2. petalinux-build失敗

NOTE 解決因為網絡原因產生的編譯錯誤分享詳細的解決步驟 報錯的情況 因為網絡原因產生編譯錯誤 現象 找不到適合的包文件(No suitable stageing package found) 不能發現文件(Fetcher failure for URL) 解決方法 采用本地加載本地文件的方式&#xff0c;步驟如下 進入…

sql server msdb數據庫備份恢復

備份 BACKUP DATABASE [msdb] TO DISK ND:\liyuanshuai\test\sqlserver_bakfile\msdb20241219.bak WITH NOFORMAT, NOINIT, NAME Nlys-完整 數據庫 備份, SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS 10 GO然后刪除2個測試的job&#xff0c;停止 SQL Server 代理…

web實驗二

web實驗二 2024.12.19 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>青島理工大學</title>&l…

bain.js(十二):RNN神經網絡實戰教程 - 音樂樂譜生成 -人人都是作曲家~

系列文章&#xff1a; &#xff08;一&#xff09;&#xff1a;可以在瀏覽器運行的、默認GPU加速的神經網絡庫概要介紹&#xff08;二&#xff09;&#xff1a;項目集成方式詳解&#xff08;三&#xff09;&#xff1a;手把手教你配置和訓練神經網絡&#xff08;四&#xff09…

WebSocket入門與結合redis

WebSocket是什么 WebSocket 是一種用于在客戶端和服務器之間建立雙向通信的協議&#xff0c;它能實現實時、持久的連接。與傳統的 HTTP 請求響應模式不同&#xff0c;WebSocket 在建立連接后允許客戶端和服務器之間相互發送消息&#xff0c;直到連接關閉。由于 WebSocket 具有…

Hive是什么,Hive介紹

官方網站&#xff1a;Apache Hive Hive是一個基于Hadoop的數據倉庫工具&#xff0c;主要用于處理和查詢存儲在HDSF上的大規模數據?。Hive通過將結構化的數據文件映射為數據庫表&#xff0c;并提供類SQL的查詢功能&#xff0c;使得用戶可以使用SQL語句來執行復雜的?MapReduce任…

OpenHarmony和OpenVela的技術創新以及兩者對比

兩款有名的國內開源操作系統&#xff0c;OpenHarmony&#xff0c;OpenVela都非常的優秀。本文對二者的創新進行一個簡要的介紹和對比。 一、OpenHarmony OpenHarmony具有諸多有特點的技術突破和重要貢獻&#xff0c;以下是一些主要方面&#xff1a; 架構設計創新 分層架構…

Electron-Vue 開發下 dev/prod/webpack server各種路徑設置匯總

背景 在實際開發中&#xff0c;我發現團隊對于這幾個路徑的設置上是純靠猜的&#xff0c;通過一點點地嘗試來找到可行的路徑&#xff0c;這是不應該的&#xff0c;我們應該很清晰地了解這幾個概念&#xff0c;以下通過截圖和代碼進行細節講解。 npm run dev 下的路徑如何處理&…

前端-處理數據的函數

判斷數據是否為空,對象是否存在某屬性,屬性值是否為空,對大數據進行換算,對單位進行轉換. 目錄 1.格式化數據 2.判斷值是否為空(包括對象、數組、字符串、數值類型) &#xff08;1&#xff09;值是0不表示空 &#xff08;2&#xff09;值是0表示空 3. 檢查對象是否具有指定名…

基礎入門-Web應用蜜罐系統堡壘機運維API內外接口第三方拓展架構部署影響

知識點&#xff1a; 1、基礎入門-Web應用-蜜罐系統 2、基礎入門-Web應用-堡壘機運維 3、基礎入門-Web應用-內外API接口 4、基礎入門-Web應用-第三方拓展架構 一、演示案例-Web-拓展應用-蜜罐-釣魚誘使 蜜罐&#xff1a;https://hfish.net/ 測試系統&#xff1a;Ubuntu 20.04 …

Android運行低版本項目可能遇到的問題

Android運行低版本項目可能遇到的問題 低版本項目總是遇到各種問題的&#xff0c;耐心點 一、gradle-xxx.xxx.xxx.zip一直下載不下來 在gradle-wrapper.properties可以試下 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists zipStoreBaseGRADLE_USER_HOME …

springboot中Controller內文件上傳到本地以及阿里云

上傳文件的基本操作 <form action"/upload" method"post" enctype"multipart/form-data"> <h1>登錄</h1> 姓名&#xff1a;<input type"text" name"username" required><br> 年齡&#xf…