欧美日韩精品一区二区在线线,一级无码在线收看,精品国产高清91,久久精品欧美电影

# live-player

基礎(chǔ)庫 1.7.0 開始支持,低版本需做兼容處理。

小程序插件:支持,需要小程序基礎(chǔ)庫版本不低于 2.3.0

微信 Windows 版:支持

微信 Mac 版:支持

微信 鴻蒙 OS 版:支持

相關(guān)文檔: wx.createLivePlayerContext

渲染框架支持情況:Skyline (使用最新 Nightly 工具調(diào)試)、WebView

# 功能描述

實(shí)時(shí)音視頻播放(v2.9.1 起支持同層渲染)。

# 申請(qǐng)開通

暫只針對(duì)國(guó)內(nèi)主體如下類目的小程序開放,需要先通過類目審核,再在小程序管理后臺(tái),「開發(fā)」-「接口設(shè)置」中自助開通該組件權(quán)限。

一級(jí)類目/主體類型 二級(jí)類目 小程序內(nèi)容場(chǎng)景
社交 直播 涉及娛樂性質(zhì),如明星直播、生活趣事直播、寵物直播等。選擇該類目后首次提交代碼審核,需經(jīng)當(dāng)?shù)鼗ヂ?lián)網(wǎng)主管機(jī)關(guān)審核確認(rèn),預(yù)計(jì)審核時(shí)長(zhǎng) 7 天左右
教育 在線視頻課程 網(wǎng)課、在線培訓(xùn)、講座等教育類直播
醫(yī)療 互聯(lián)網(wǎng)醫(yī)院,公立醫(yī)療機(jī)構(gòu),三級(jí)私立醫(yī)療機(jī)構(gòu),其他私立醫(yī)療機(jī)構(gòu) 問診、大型健康講座等直播
金融 銀行、信托、公募基金、私募基金、證券/期貨、證券、期貨投資咨詢、保險(xiǎn)、企業(yè)征信、新三板信息服務(wù)平臺(tái)、股票信息服務(wù)平臺(tái)、股票信息服務(wù)平臺(tái)(港股/美股)、消費(fèi)金融、融資擔(dān)保、汽車金融/融資租賃 金融產(chǎn)品視頻客服理賠、金融產(chǎn)品推廣直播等
汽車 汽車預(yù)售 汽車預(yù)售、推廣直播
政府主體賬號(hào) / 政府相關(guān)工作推廣直播、領(lǐng)導(dǎo)講話直播等
IT科技 多方通信;音視頻設(shè)備 為多方提供電話會(huì)議/視頻會(huì)議等服務(wù);智能家居場(chǎng)景下控制攝像頭
房地產(chǎn)服務(wù) 房地產(chǎn)營(yíng)銷 房地產(chǎn)營(yíng)銷直播服務(wù)、在線音視頻帶看等
商業(yè)服務(wù) 公證 在線業(yè)務(wù)辦理等

# 通用屬性

屬性 類型 默認(rèn)值 必填 說明 最低版本
src string 音視頻地址。目前僅支持 flv, rtmp 格式 1.7.0
mode string live 模式 1.7.0
合法值 說明
live 直播
RTC 實(shí)時(shí)通話,該模式時(shí)延更低
autoplay boolean false 自動(dòng)播放 1.7.0
muted boolean false 是否靜音 1.7.0
orientation string vertical 畫面方向 1.7.0
合法值 說明
vertical 豎直
horizontal 水平
object-fit string contain 填充模式,可選值有 contain,fillCrop 1.7.0
合法值 說明
contain 圖像長(zhǎng)邊填滿屏幕,短邊區(qū)域會(huì)被填充??
fillCrop 圖像鋪滿屏幕,超出顯示區(qū)域的部分將被截掉
background-mute boolean false 進(jìn)入后臺(tái)時(shí)是否靜音(已廢棄,默認(rèn)退后臺(tái)靜音) 1.7.0
min-cache number 1 最小緩沖區(qū),單位s(RTC 模式推薦 0.2s) 1.7.0
max-cache number 3 最大緩沖區(qū),單位s(RTC 模式推薦 0.8s)。緩沖區(qū)用來抵抗網(wǎng)絡(luò)波動(dòng),緩沖數(shù)據(jù)越多,網(wǎng)絡(luò)抗性越好,但時(shí)延越大。 1.7.0
sound-mode string speaker 聲音輸出方式 1.9.90
合法值 說明
speaker 揚(yáng)聲器
ear 聽筒
auto-pause-if-navigate boolean true 當(dāng)跳轉(zhuǎn)到本小程序的其他頁面時(shí),是否自動(dòng)暫停本頁面的實(shí)時(shí)音視頻播放 2.5.0
auto-pause-if-open-native boolean true 當(dāng)跳轉(zhuǎn)到其它微信原生頁面時(shí),是否自動(dòng)暫停本頁面的實(shí)時(shí)音視頻播放 2.5.0
picture-in-picture-mode string/Array 設(shè)置小窗模式: push, pop,空字符串或通過數(shù)組形式設(shè)置多種模式(如: ["push", "pop"]) 2.10.3
合法值 說明
[] 取消小窗
push 路由 push 時(shí)觸發(fā)小窗
pop 路由 pop 時(shí)觸發(fā)小窗
picture-in-picture-init-position string 小窗模式下小窗的初始顯示位置,格式為 (alignment, y),其中 alignment 表示小窗吸附屏幕左側(cè)還是右側(cè),可選值為 left、right,y 代表小窗最頂部所在的屏幕高度百分比 3.3.0
enable-auto-rotation boolean false 是否開啟手機(jī)橫屏?xí)r自動(dòng)全屏,當(dāng)系統(tǒng)設(shè)置開啟自動(dòng)旋轉(zhuǎn)時(shí)生效 2.11.0
referrer-policy string no-referrer 格式固定為 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 為小程序的 appid,{version} 為小程序的版本號(hào),版本號(hào)為 0 表示為開發(fā)版、體驗(yàn)版以及審核版本,版本號(hào)為 devtools 表示為開發(fā)者工具,其余為正式版本; 2.13.0
合法值 說明
origin 發(fā)送完整的referrer
no-referrer 不發(fā)送
enable-casting boolean false 是否支持投屏。開啟后,可以通過 LivePlayerContext 上相關(guān)方法進(jìn)行操作。 2.32.0
bindstatechange eventhandle 播放狀態(tài)變化事件,detail = {code} 1.7.0
bindfullscreenchange eventhandle 全屏變化事件,detail = {direction, fullScreen} 1.7.0
bindnetstatus eventhandle 網(wǎng)絡(luò)狀態(tài)通知,detail = {info} 1.9.0
bindaudiovolumenotify eventhandler 播放音量大小通知,detail = {} 2.10.0
bindenterpictureinpicture eventhandler 播放器進(jìn)入小窗 2.11.0
bindleavepictureinpicture eventhandler 播放器退出小窗 2.11.0
bindcastinguserselect eventhandler 用戶選擇投屏設(shè)備時(shí)觸發(fā) detail = { state: "success"/"fail" } 2.32.0
bindcastingstatechange eventhandler 投屏成功/失敗時(shí)觸發(fā) detail = { type, state: "success"/"fail" } 2.32.0
bindcastinginterrupt eventhandler 投屏被中斷時(shí)觸發(fā) 2.32.0

# 狀態(tài)碼

代碼 說明
2001 拉流:已經(jīng)連接服務(wù)器
2002 拉流:已經(jīng)連接 RTMP 服務(wù)器,開始拉流
2003 拉流:網(wǎng)絡(luò)接收到首個(gè)視頻數(shù)據(jù)包(IDR)
2004 拉流:視頻播放開始
2005 拉流:視頻播放進(jìn)度
2006 拉流:視頻播放結(jié)束
2007 拉流:視頻播放Loading
2008 拉流:解碼器啟動(dòng)
2009 拉流:視頻分辨率改變
2030 音頻設(shè)備發(fā)生改變,即當(dāng)前的輸入輸出設(shè)備發(fā)生改變,比如耳機(jī)被拔出
2032 拉流:視頻渲染首幀事件
2101 拉流:當(dāng)前視頻幀解碼失敗
2102 拉流:當(dāng)前音頻幀解碼失敗
2103 拉流:網(wǎng)絡(luò)斷連, 已啟動(dòng)自動(dòng)重連
2104 拉流:網(wǎng)絡(luò)來包不穩(wěn):可能是下行帶寬不足,或由于主播端出流不均勻
2105 拉流:當(dāng)前視頻播放出現(xiàn)卡頓
2106 拉流:硬解啟動(dòng)失敗,采用軟解
2107 拉流:當(dāng)前視頻幀不連續(xù),可能丟幀
2108 拉流:當(dāng)前流硬解第一個(gè)I幀失敗,SDK自動(dòng)切軟解
3001 拉流:RTMP -DNS解析失敗
3002 拉流:RTMP服務(wù)器連接失敗
3003 拉流:RTMP服務(wù)器握手失敗
3005 拉流:RTMP 讀/寫失敗,之后會(huì)發(fā)起網(wǎng)絡(luò)重試
-2301 拉流:網(wǎng)絡(luò)斷連,且經(jīng)多次重連無效,請(qǐng)自行重啟拉流
-2302 拉流:獲取拉流地址失敗

# 網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)

鍵名 說明
videoBitrate 當(dāng)前視頻編/碼器輸出的比特率,單位 kbps
audioBitrate 當(dāng)前音頻編/碼器輸出的比特率,單位 kbps
videoFPS 當(dāng)前視頻幀率
videoGOP 當(dāng)前視頻 GOP,也就是每?jī)蓚€(gè)關(guān)鍵幀(I幀)間隔時(shí)長(zhǎng),單位 s
netSpeed 當(dāng)前的發(fā)送/接收速度
netJitter 網(wǎng)絡(luò)抖動(dòng)情況,為 0 時(shí)表示沒有任何抖動(dòng),值越大表明網(wǎng)絡(luò)抖動(dòng)越大,網(wǎng)絡(luò)越不穩(wěn)定
netQualityLevel 網(wǎng)絡(luò)質(zhì)量:0:未定義 1:最好 2:好 3:一般 4:差 5:很差 6:不可用
videoWidth 視頻畫面的寬度
videoHeight 視頻畫面的高度
videoCache 緩沖的視頻總時(shí)長(zhǎng),單位毫秒
audioCache 緩沖的音頻總時(shí)長(zhǎng),單位毫秒
vDecCacheSize 解碼器中緩存的視頻幀數(shù) (Android 端硬解碼時(shí)存在)
vSumCacheSize 緩沖的總視頻幀數(shù),該數(shù)值越大,播放延遲越高
avPlayInterval 音畫同步錯(cuò)位時(shí)間(播放),單位 ms,此數(shù)值越小,音畫同步越好
avRecvInterval 音畫同步錯(cuò)位時(shí)間(網(wǎng)絡(luò)),單位 ms,此數(shù)值越小,音畫同步越好
audioCacheThreshold 音頻緩沖時(shí)長(zhǎng)閾值,緩沖超過該閾值后,播放器會(huì)開始調(diào)控延時(shí)

# 小窗特性說明

live-player 小窗支持以下三種觸發(fā)模式(在組件上設(shè)置 picture-in-picture-mode 屬性):

  1. push 模式,即從當(dāng)前頁跳轉(zhuǎn)至下一頁時(shí)出現(xiàn)小窗(頁面棧push)

  2. pop 模式,即離開當(dāng)前頁面時(shí)觸發(fā)(頁面棧pop)

  3. 以上兩種路由行為均觸發(fā)小窗

此外,小窗還支持以下特性:

  • 小窗容器尺寸會(huì)根據(jù)原組件尺寸自動(dòng)判斷

  • 點(diǎn)擊小窗,用戶會(huì)被導(dǎo)航回小窗對(duì)應(yīng)的播放器頁面

  • 小窗出現(xiàn)后,用戶可點(diǎn)擊小窗右上角的關(guān)閉按鈕或調(diào)用 context.exitPictureInPicture() 接口關(guān)閉小窗

當(dāng)播放器進(jìn)入小窗模式后,播放器所在頁面處于 hide 狀態(tài)(觸發(fā) onHide 生命周期),該頁面不會(huì)被銷毀。當(dāng)小窗被關(guān)閉時(shí),播放器所在頁面會(huì)被 unload (觸發(fā) onUnload 生命周期)。

# Bug & Tip

  1. tiplive-player 默認(rèn)寬度300px、高度225px,可通過wxss設(shè)置寬高。
  2. tip:開發(fā)者工具上暫不支持。
  3. tip: 相關(guān)介紹和原理可參考此文章

# 示例代碼

在開發(fā)者工具中預(yù)覽效果

<live-player src="https://domain/pull_stream" mode="RTC" autoplay bindstatechange="statechange" binderror="error" style="width: 300px; height: 225px;" />
Page({
  statechange(e) {
    console.log('live-player code:', e.detail.code)
  },
  error(e) {
    console.error('live-player error:', e.detail.errMsg)
  }
})