uniapp簡易直播

来源:https://www.cnblogs.com/harry7988/archive/2020/02/16/12315456.html
-Advertisement-
Play Games

實驗準備 1. 在伺服器部署 作為我們直播推流和拉流的伺服器(如果服務商選擇七牛,也是直接給地址推流)。為了加快部署,我在這一步使用Docker。 2. 記下推流地址(我本地搭建的: ) 3. 新建Uniapp項目 4. 點擊項目下方的 文件,點擊APP常用其他設置 去除V3編譯器 (Hbuilde ...


實驗準備

  1. 在伺服器部署nginx-rtmp作為我們直播推流和拉流的伺服器(如果服務商選擇七牛,也是直接給地址推流)。為了加快部署,我在這一步使用Docker。
docker pull tiangolo/nginx-rtmp
docker run -d -p 1935:1935 --name nginx-rtmp tiangolo/nginx-rtmp
  1. 記下推流地址(我本地搭建的:192.168.1.178:1935
  2. 新建Uniapp項目
  3. 點擊項目下方的manifest.json文件,點擊APP常用其他設置去除V3編譯器(Hbuilder 2.5.9 alpha V3模式會報uni.createLivePusherContext的錯)

Part 1 直播推流

index.nvue(uni.createLivePusherContext在APP端僅支持Nvue)

<template>
    <view>
        <live-pusher id="livePusher" :url="url" mode="FHD"></live-pusher>
        <button @click="startLive">開始推流(開始直播)</button>
        <button @click="stopLive">結束推流</button>
    </view>
</template>

<script>
export default {
    data() {
        return {
            url: 'rtmp://192.168.1.178:1935/live/exp',
            enableCamera: false,
            context: null
        };
    },
    onReady() {
        this.context = uni.createLivePusherContext('livePusher', this);
    },
    methods: {
        EnableCamera() {
            this.enableCamera = true;
        },
        startLive() {
            this.context.start({
                success: a => {
                    console.log('livePusher.start:' + JSON.stringify(a));
                }
            });
        },
        stopLive() {
            this.context.stop({
                success: a => {
                    console.log(JSON.stringify(a));
                }
            });
        }
    }
};
</script>

Part 2 直播拉流(播放)

App的實時音視頻播放,不是使用 live-player,而是直接使用 video 組件。 (來源:官網文檔

<template>
    <view>
        <video src="rtmp://192.168.1.178:1935/live/exp" style="width: 100vw;height: 400rpx;" :autoplay="true" controls></video>
    </view>
</template>

<script>
    export default {}
</script>

效果

若Gif無法播放右鍵新標簽打卡

1w46fO.md.gif

備註

  • 解釋一下推流/拉流地址結構:rtmp://<ServerIp>:<Port>/live/<LiveKeyWords>

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這是高級開發者面試時經常被問的問題。實際我們在平時的開發中,經常會遇到的,在用SQLyog等工具創建表時,就有一個引擎項要你去選。如下圖: Mysql的存儲引擎有這麼多種,實際我們在平時用的最多的莫過於InnoDB和MyISAM了。 所有如果面試官問道mysql有哪些存儲引擎,你只需要告訴這兩個常用 ...
  • 大數據技術體系的知識量是比較大的,而且涉及到的內容也具有一定的難度,對於初學者的知識結構還是有一定要求的。通常來說,要想學習大數據技術,需要具有一定的數學和電腦基礎,如果具有一定的統計學基礎會更好一些。 ...
  • 問題概述 "新冠期間"遠程辦公,需要重新搭建一套ClouderaManager(CM)開發環境,一位測試同事發現HBase的RegionServer無法啟動,在CM界面上啟動總是失敗,觀察一下日誌,也沒有什麼明顯的報錯。我就專門看了一下。 排查思路 1. 因為有opentsdb在讀寫Hbase Re ...
  • 創建 test 測試表 CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `c1` varchar(10) DEFAULT NULL, `c2` varchar(10) DEFAULT NULL, `c3` varchar(10) ...
  • 1、何為explain執行計劃? 使用explain關鍵字可以模擬優化器執行SQL語句,從而知道MySQL是如何使用索引來處理你的SQL查詢語句以及連接表,可以分析查詢語句或是結構的性能瓶頸,幫助我們選擇更好的索引和寫出更優化的查詢語句。(說白了,就是優化SQL的工具) 2、如何使用explain? ...
  • 解決的需求 有些時候不能在NDK環境編譯,或者使用NDK編譯會頗費周折,然後又想使用Android系統自帶的Log類方法,那麼我們就可以使用 dlopen 來實現我們的目的。比如在OpenCV中添加Android的Log列印。 關於dlopen 1. dlopen和dlclose對處理的lib進行引 ...
  • 小程式註冊 微信小程式開發之前,必須先有小程式賬號,下麵是註冊步驟: 1、打開網頁 微信公眾平臺https://mp.weixin.qq.com/,點擊立即註冊按鈕 2、註冊類型 選擇小程式開發 3、小程式註冊 填寫自己的註冊信息 註意這裡每個郵箱僅能申請一個小程式 4、郵箱激活 5、信息登記 我自 ...
  • 一、 形變中心點介紹 <style> ul li { width: 100px; height: 100px; list-style: none; float:left; margin:0 auto; /*transform-origin:200px 0px;*/ transform-origin: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...