live-pusher
基礎(chǔ)庫 1.7.0 開始支持,低版本需做兼容處理。
小程序插件:支持,需要小程序基礎(chǔ)庫版本不低于 2.3.0
微信 Windows 版:支持
微信 Mac 版:支持
微信 鴻蒙 OS 版:支持
相關(guān)文檔: wx.createLivePusherContext
渲染框架支持情況:Skyline (使用最新 Nightly 工具調(diào)試)、WebView
功能描述
實(shí)時(shí)音視頻錄制(v2.9.1 起支持同層渲染)。需要用戶授權(quán) scope.camera、scope.record。
申請(qǐng)開通
暫只針對(duì)國內(nèi)主體如下類目的小程序開放,需要先通過類目審核,再在小程序管理后臺(tái),「開發(fā)」-「接口設(shè)置」中自助開通該組件權(quán)限。
| 一級(jí)類目/主體類型 | 二級(jí)類目 | 小程序內(nèi)容場景 |
| 社交 | 直播 | 涉及娛樂性質(zhì),如明星直播、生活趣事直播、寵物直播等。選擇該類目后首次提交代碼審核,需經(jīng)當(dāng)?shù)鼗ヂ?lián)網(wǎng)主管機(jī)關(guān)審核確認(rèn),預(yù)計(jì)審核時(shí)長 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ǎn)服務(wù) | 房地產(chǎn)營銷 | 房地產(chǎn)營銷直播服務(wù)、在線音視頻帶看等 |
| 商業(yè)服務(wù) | 公證 | 在線業(yè)務(wù)辦理等 |
通用屬性
| 屬性 | 類型 | 默認(rèn)值 | 必填 | 說明 | 最低版本 |
| url | string | | 否 | 推流地址。目前僅支持 rtmp 格式 | 1.7.0 |
| mode | string | RTC | 否 | 模式 | 1.7.0 |
| |
| autopush | boolean | false | 否 | 自動(dòng)推流 | 1.7.0 |
| enableVideoCustomRender | boolean | false | 否 | 自定義渲染,允許開發(fā)者自行處理所采集的視頻幀,詳見LivePusherContext | 2.29.0 |
| muted | boolean | false | 否 | 是否靜音。即將廢棄,可用 enable-mic 替代 | 1.7.0 |
| enable-camera | boolean | true | 否 | 開啟攝像頭 | 1.7.0 |
| auto-focus | boolean | true | 否 | 自動(dòng)聚集 | 1.7.0 |
| orientation | string | vertical | 否 | 畫面方向 | 1.7.0 |
| | 合法值 | 說明 | | vertical | 豎直 | | horizontal | 水平 |
|
| beauty | number | 0 | 否 | 美顏,取值范圍 0-9 ,0 表示關(guān)閉。鴻蒙 OS 暫不支持 | 1.7.0 |
| whiteness | number | 0 | 否 | 美白,取值范圍 0-9 ,0 表示關(guān)閉 | 1.7.0 |
| aspect | string | 9:16 | 否 | 寬高比,可選值有 3:4, 9:16 | 1.7.0 |
| min-bitrate | number | 200 | 否 | 最小碼率 | 1.7.0 |
| max-bitrate | number | 1000 | 否 | 最大碼率 | 1.7.0 |
| audio-quality | string | high | 否 | 高音質(zhì)(48KHz)或低音質(zhì)(16KHz),值為high, low | 1.7.0 |
| waiting-image | string | | 否 | 進(jìn)入后臺(tái)時(shí)推流的等待畫面 | 1.7.0 |
| waiting-image-hash | string | | 否 | 等待畫面資源的MD5值 | 1.7.0 |
| zoom | boolean | false | 否 | 調(diào)整焦距 | 2.1.0 |
| device-position | string | front | 否 | 前置或后置,值為front, back | 2.3.0 |
| background-mute | boolean | false | 否 | 進(jìn)入后臺(tái)時(shí)是否靜音(已廢棄,默認(rèn)退后臺(tái)靜音) | 1.7.0 |
| mirror | boolean | false | 否 | 設(shè)置推流畫面是否鏡像,產(chǎn)生的效果在 live-player 反應(yīng)到 | 2.7.0 |
| remote-mirror | boolean | false | 否 | 同 mirror 屬性,后續(xù) mirror 將廢棄 | 2.10.0 |
| local-mirror | string | auto | 否 | 控制本地預(yù)覽畫面是否鏡像 | 2.10.0 |
| | 合法值 | 說明 | | auto | 前置攝像頭鏡像,后置攝像頭不鏡像 | | enable | 前后置攝像頭均鏡像 | | disable | 前后置攝像頭均不鏡像 |
|
| audio-reverb-type | number | 0 | 否 | 音頻混響類型 | 2.10.0 |
| | 合法值 | 說明 | | 0 | 關(guān)閉 | | 1 | KTV | | 2 | 小房間 | | 3 | 大會(huì)堂 | | 4 | 低沉 | | 5 | 洪亮 | | 6 | 金屬聲 | | 7 | 磁性 |
|
| enable-mic | boolean | true | 否 | 開啟或關(guān)閉麥克風(fēng) | 2.10.0 |
| enable-agc | boolean | false | 否 | 是否開啟音頻自動(dòng)增益 | 2.10.0 |
| enable-ans | boolean | false | 否 | 是否開啟音頻噪聲抑制 | 2.10.0 |
| audio-volume-type | string | auto | 否 | 音量類型 | 2.10.0 |
| | 合法值 | 說明 | | auto | 自動(dòng) | | media | 媒體音量 | | voicecall | 通話音量 |
|
| video-width | number | 360 | 否 | 上推的視頻流的分辨率寬度 | 2.10.0 |
| video-height | number | 640 | 否 | 上推的視頻流的分辨率高度 | 2.10.0 |
| beauty-style | string | smooth | 否 | 設(shè)置美顏類型。鴻蒙 OS 暫不支持 | 2.12.0 |
| | 合法值 | 說明 | | smooth | 光滑美顏 | | nature | 自然美顏 |
|
| filter | string | standard | 否 | 設(shè)置色彩濾鏡 | 2.12.0 |
| | 合法值 | 說明 | | standard | 標(biāo)準(zhǔn) | | pink | 粉嫩 | | nostalgia | 懷舊 | | blues | 藍(lán)調(diào) | | romantic | 浪漫 | | cool | 清涼 | | fresher | 清新 | | solor | 日系 | | aestheticism | 唯美 | | whitening | 美白 | | cerisered | 櫻紅 |
|
| picture-in-picture-mode | string/Array | | 否 | 設(shè)置小窗模式: push, pop,空字符串或通過數(shù)組形式設(shè)置多種模式(如: ["push", "pop"]) | 2.25.0 |
| | 合法值 | 說明 | | [] | 取消小窗 | | push | 路由 push 時(shí)觸發(fā)小窗 | | pop | 路由 pop 時(shí)觸發(fā)小窗 |
|
| voice-changer-type | number | 0 | 否 | 0:關(guān)閉變聲;1:熊孩子;2:蘿莉;3:大叔;4:重金屬;6:外國人;7:困獸;8:死肥仔;9:強(qiáng)電流;10:重機(jī)械;11:空靈 | 2.31.0 |
| custom-effect | boolean | false | 否 | 是否啟動(dòng)自定義特效,設(shè)定后不能更改 | 2.29.1 |
| skin-whiteness | number | 0 | 否 | 自定義特效美白效果,取值 0~1。需要開啟 custom-effect | 2.29.1 |
| skin-smoothness | number | 0 | 否 | 自定義特效磨皮效果,取值 0~1。需要開啟 custom-effect | 2.29.1 |
| face-thinness | number | 0 | 否 | 自定義特效瘦臉效果,取值 0~1。需要開啟 custom-effect | 2.29.1 |
| eye-bigness | number | 0 | 否 | 自定義特效大眼效果,取值 0~1。需要開啟 custom-effect | 2.29.1 |
| fps | number | 15 | 否 | 幀率,有效值為 1~30 | 2.31.0 |
| bindstatechange | eventhandle | | 否 | 狀態(tài)變化事件,detail = {code} | 1.7.0 |
| bindnetstatus | eventhandle | | 否 | 網(wǎng)絡(luò)狀態(tài)通知,detail = {info} | 1.9.0 |
| binderror | eventhandle | | 否 | 渲染錯(cuò)誤事件,detail = {errMsg, errCode} | 1.7.4 |
| bindbgmstart | eventhandle | | 否 | 背景音開始播放時(shí)觸發(fā) | 2.4.0 |
| bindbgmprogress | eventhandle | | 否 | 背景音進(jìn)度變化時(shí)觸發(fā),detail = {progress, duration} | 2.4.0 |
| bindbgmcomplete | eventhandle | | 否 | 背景音播放完成時(shí)觸發(fā) | 2.4.0 |
| bindaudiovolumenotify | eventhandle | | 否 | 返回麥克風(fēng)采集的音量大小 | 2.12.0 |
| bindenterpictureinpicture | eventhandler | | 否 | 進(jìn)入小窗 | 2.25.0 |
| bindleavepictureinpicture | eventhandler | | 否 | 退出小窗 | 2.25.0 |
Bug & Tip
tip:開發(fā)者工具上暫不支持。 tip:live-pusher 默認(rèn)寬度為100%、無默認(rèn)高度,請(qǐng)通過wxss設(shè)置寬高。 tip:waiting-image 屬性在 2.3.0 起完整支持網(wǎng)絡(luò)路徑、臨時(shí)文件和包內(nèi)路徑。 tip:請(qǐng)注意原生組件使用限制。 tip: 相關(guān)介紹和原理可參考此文章
錯(cuò)誤碼(errCode)
| 代碼 | 說明 |
| 10001 | 用戶禁止使用攝像頭 |
| 10002 | 用戶禁止使用錄音 |
| 10003 | 背景音資源(BGM)加載失敗 |
| 10004 | 等待畫面資源(waiting-image)加載失敗 |
狀態(tài)碼(code)
| 代碼 | 說明 |
| 1001 | 推流:已經(jīng)連接推流服務(wù)器 |
| 1002 | 推流:已經(jīng)與服務(wù)器握手完畢,開始推流 |
| 1003 | 推流:打開攝像頭成功 |
| 1004 | 推流:錄屏啟動(dòng)成功 |
| 1005 | 推流:推流動(dòng)態(tài)調(diào)整分辨率 |
| 1006 | 推流:推流動(dòng)態(tài)調(diào)整碼率 |
| 1007 | 推流:首幀畫面采集完成 |
| 1008 | 推流:編碼器啟動(dòng) |
| 1018 | 推流:進(jìn)房成功(ROOM協(xié)議特有) |
| 1019 | 推流:退房成功(ROOM協(xié)議特有有) |
| 1020 | 推流:遠(yuǎn)端主播列表變化(ROOM協(xié)議特有) |
| 1021 | 推流:網(wǎng)絡(luò)變更時(shí)重進(jìn)房,WiFi 切換到4G 會(huì)觸發(fā)斷線重連(ROOM協(xié)議特有) |
| 1022 | 推流:進(jìn)入房間失敗(ROOM協(xié)議特有) |
| 1031 | 推流:遠(yuǎn)端主播進(jìn)房通知(ROOM協(xié)議特有) |
| 1032 | 推流:遠(yuǎn)端主播退房通知(ROOM協(xié)議特有) |
| 1033 | 推流:遠(yuǎn)端主播視頻狀態(tài)位變化(ROOM協(xié)議特有) |
| 1034 | 推流:遠(yuǎn)端主播音頻狀態(tài)位變化(ROOM協(xié)議特有) |
| 1101 | 推流:網(wǎng)絡(luò)狀況不佳:上行帶寬太小,上傳數(shù)據(jù)受阻 |
| 1102 | 推流:網(wǎng)絡(luò)斷連, 已啟動(dòng)自動(dòng)重連 |
| 1103 | 推流:硬編碼啟動(dòng)失敗, 采用軟編碼 |
| 1104 | 推流:視頻編碼失敗, 內(nèi)部會(huì)重啟編碼器 |
| 3001 | 推流:RTMP DNS解析失敗 |
| 3002 | 推流:RTMP服務(wù)器連接失敗 |
| 3003 | 推流:RTMP服務(wù)器握手失敗 |
| 3004 | 推流:RTMP服務(wù)器主動(dòng)斷開,請(qǐng)檢查推流地址的合法性或防盜鏈有效期 |
| 3005 | 推流:RTMP 讀/寫失敗 |
| 4998 | Mic狀態(tài)切換的時(shí)候,enable-mic觸發(fā)(iOS特有) |
| 4999 | mute狀態(tài)切換的時(shí)候,muted 觸發(fā)(iOS特有) |
| 5001 | 系統(tǒng)電話打斷或者微信音視頻電話打斷 |
| 10001 | 用戶禁止使用攝像頭 |
| 10002 | 用戶禁止使用錄音 |
| 10003 | 背景音資源(BGM)加載失敗 |
| 10004 | 等待畫面資源(waiting-image)加載失敗 |
| -1301 | 推流:打開攝像頭失敗 |
| -1302 | 推流:打開麥克風(fēng)失敗 |
| -1303 | 推流:視頻編碼失敗 |
| -1304 | 推流:音頻編碼失敗 |
| -1305 | 推流:不支持的視頻分辨率 |
| -1306 | 推流:不支持的音頻采樣率 |
| -1307 | 推流:網(wǎng)絡(luò)斷連,且經(jīng)多次重連搶救無效,更多重試請(qǐng)自行重啟推流 |
| -1308 | 推流:開始錄屏失敗,可能是被用戶拒絕 |
| -1309 | 推流:錄屏失敗,不支持的Android系統(tǒng)版本,需要5.0以上的系統(tǒng) |
| -1310 | 推流:錄屏被其他應(yīng)用打斷了 |
| -1311 | 推流:Android Mic打開成功,但是錄不到音頻數(shù)據(jù) |
| -1312 | 推流:錄屏動(dòng)態(tài)切橫豎屏失敗 |
| 0 | 無錯(cuò)誤 |
網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)(info)
| 鍵名 | 說明 |
| videoBitrate | 當(dāng)前視頻編/碼器輸出的比特率,單位 kbps |
| audioBitrate | 當(dāng)前音頻編/碼器輸出的比特率,單位 kbps |
| videoFPS | 當(dāng)前視頻幀率 |
| videoGOP | 當(dāng)前視頻 GOP,也就是每兩個(gè)關(guān)鍵幀(I幀)間隔時(shí)長,單位 s |
| netSpeed | 當(dāng)前的發(fā)送/接收速度 |
| netJitter | 網(wǎng)絡(luò)抖動(dòng)情況,抖動(dòng)越大,網(wǎng)絡(luò)越不穩(wěn)定 |
| netQualityLevel | 網(wǎng)絡(luò)質(zhì)量:0:未定義 1:最好 2:好 3:一般 4:差 5:很差 6:不可用 |
| videoWidth | 視頻畫面的寬度 |
| videoHeight | 視頻畫面的高度 |
| videoCache | 主播端堆積的視頻幀數(shù) |
| audioCache | 主播端堆積的音頻幀數(shù) |
示例代碼
在開發(fā)者工具中預(yù)覽效果