国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity內接入WebRTC視頻流

這篇具有很好參考價值的文章主要介紹了Unity內接入WebRTC視頻流。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、說明

	目前Unity內基于谷歌的WebRTC通訊存在一定技術壁壘,所以選擇與前端HTML結合解決需求。由前端提供JS與HTML,HTML內由前端編寫了可以適配并且可以正常播放WebRTC視頻流;然后在Unity內導入插件“WebViewForWindow”,該插件可以在Unity內通過API加載HTML網頁到UI面板或者三維場景,并且可以對網頁內容進行點擊等操作。從而解決了WebRTC視頻流的功能難點。

二、流程

1.在Unity工程內導入“WebViewForWindow”插件,得到如圖文件夾。
Unity內接入WebRTC視頻流
2.將該路徑下的預制體拖到場景內的Canvas下
Unity內接入WebRTC視頻流
3.如果填入Url,直接Unity運行可直接加載網頁(但是不適配我們本次功能需求,只做介紹)
Unity內接入WebRTC視頻流
4.我們需要通過http接口請求返回WebRTC流(如果是其他方式拿到WebRTC視頻流流程一樣),并且將該流寫入HTML文件內對應的url位置。所以我們要先去布置HTML和JS文件在工程內的位置和應用。我們此次把JS文件以及HTML文件放在了StreamingAssets文件夾下。方便讀取以及后續(xù)適配打包發(fā)布exe版本不需要考慮JS、HTML文件位置和路徑。
Unity內接入WebRTC視頻流
5.在Unity內編寫可以讀寫HTML的功能。根據需求讀寫HTML內的WebRTC流的位置即可。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.IO;
public class WriteHtml : MonoBehaviour
{
    private List<string> htmlContent = new List<string>();//用于讀寫html的容器
    private string path = Application.streamingAssetsPath + "/test.html";//前端網頁位置
    private int webrtcIndex = 23;//網頁內webrtc所在行的下標

    private string newWebRtc;//傳入的新的webrtc地址

    public static WriteHtml _instance;
    private void Awake()
    {
        _instance = this;
    }

    // Start is called before the first frame update
    void Start()
    {
        //測試
        ReadHtmlTxt("填入webrtc視頻流地址")
    }
    /// <summary>
    /// 讀取html
    /// </summary>
    /// <param name="_newWebRtc">webrtc視頻流地址</param>
    public void ReadHtmlTxt(string _newWebRtc) 
    {
        newWebRtc = "var url = '" + _newWebRtc+ "';";
        htmlContent = new List<string>();
        try
        {
            // 創(chuàng)建一個 StreamReader 的實例來讀取文件 
            // using 語句也能關閉 StreamReader
            using (StreamReader sr = new StreamReader(path))
            {
                string line;

                // 從文件讀取并顯示行,直到文件的末尾 
                while ((line = sr.ReadLine()) != null)
                {
                    //Console.WriteLine(line);
                    Debug.Log(line);
                    htmlContent.Add(line);
                }
            }
        }
        catch (Exception e)
        {
            // 向用戶顯示出錯消息
            //Console.WriteLine("The file could not be read:");
            //Console.WriteLine(e.Message);
            Debug.Log(e.Message);
            Debug.Log("The file could not be read:");
        }
        WriteHtmlTxt();
    }
    /// <summary>
    /// 寫入html
    /// </summary>
    public void WriteHtmlTxt() 
    {
        using (StreamWriter sw = new StreamWriter(path))
        {

            for (int i = 0; i < htmlContent.Count; i++)
            {
                if (i == webrtcIndex) 
                {
                    sw.WriteLine(newWebRtc);
                    continue;
                }
                sw.WriteLine(htmlContent[i]);
            }
        }
    }
}

html相關內容

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>webrtc 視頻播放</title>
</head>
<style>
.videoStyle{
width:100%;
height:100%;
position:fixed;
left:0;
top:0;
bottom:0;
right:0
}
</style>
<body>
    <video id="video_webrtc" controls class='videoStyle'></video>
	<script type="text/javascript" src="./jswebrtc.min.js"></script>
	<script type="text/javascript">
		var video = document.getElementById('video_webrtc');
		var url = '填入webrtc視頻流地址';
		var option={ 
			video: video, 
			autoplay: true 
		}
		var player = new JSWebrtc.Player(url,option);
	</script>
</body>
</html>

6.然后要通過代碼,讓插件讀取StreamingAssets下的HTML文件即可。
具體代碼調用如下:
聲明變量public CanvasWebViewPrefab canvasWebViewPrefab;調用canvasWebViewPrefab.WebView.LoadUrl(“file://” +Application.streamingAssetsPath + “/test.html”);就可以顯示出來前端的網頁了。具體該預制體的窗口大小可以根據需求調整,插件會進行適配。
要注意的點就是 該預設上的腳本“CanvasWebViewPrefabs.cs”腳本內的Start方法會將進行初始化工作,所以LoadUrl方法要在初始化之后調用??梢酝ㄟ^if (canvasWebViewPrefab.WebView.IsInitialized) ;該API去判定初始化是否完成。WebView該接口字段為核心內容,其中的API都可以應對需求,如果今后需求有變,可參考該接口的字段和方法。

public CanvasWebViewPrefab canvasWebViewPrefa
canvasWebViewPrefa.WebView.LoadUrl("file://" + Application.streamingAssetsPath + "/test.html");

另外還要說的就是,LoadUrl方法可以讀取本地的HTML文件也可以讀取Http的連接。
如果對插件不熟悉,可以上網查看對應的API和示例場景的內容。

三、windows電腦關于綠幕問題的設置

WebViewForWindow插件的瀏覽器內核是谷歌chrome瀏覽器。
1.如果開啟硬件加速會出現這樣的綠幕情況,需要關閉瀏覽器內設置的硬件加速選項。
Unity內接入WebRTC視頻流
Unity內接入WebRTC視頻流
2.需要在winodw設置內圖形設置下設置GoogleChrome為高性能模式:
參考下方視頻添加谷歌瀏覽器到圖形性能首選項的列表,并且設置為高性能模式。
Unity內接入WebRTC視頻流
設置成功之后顏色會正常文章來源地址http://www.zghlxwxcb.cn/news/detail-427927.html

到了這里,關于Unity內接入WebRTC視頻流的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • VUE3 播放RTSP實時、回放(NVR錄像機)視頻流(使用WebRTC)

    VUE3 播放RTSP實時、回放(NVR錄像機)視頻流(使用WebRTC)

    1、下載webrtc-streamer,下載的最新window版本 Releases · mpromonet/webrtc-streamer · GitHub ?2、解壓下載包 ?3、webrtc-streamer.exe啟動服務 (注意:這里可以通過當前文件夾下用cmd命令webrtc-streamer.exe -o這樣占用cpu會很少,直接雙擊exe文件會占用cpu) cmd? webrtc-streamer.exe -o 啟動如下圖所示,

    2024年04月12日
    瀏覽(22)
  • 安防視頻管理平臺GB設備接入EasyCVR, 如何獲取RTMP與RTSP視頻流

    安防視頻管理平臺GB設備接入EasyCVR, 如何獲取RTMP與RTSP視頻流

    安防視頻監(jiān)控平臺EasyCVR可拓展性強、視頻能力靈活、部署輕快,可支持的主流標準協議有國標GB28181、RTSP/Onvif、RTMP等,以及支持廠家私有協議與SDK接入,包括海康Ehome、海大宇等設備的SDK等。平臺既具備傳統(tǒng)安防視頻監(jiān)控的能力,比如:視頻監(jiān)控直播、云端錄像、云存儲、錄

    2024年02月15日
    瀏覽(24)
  • vue2使用rtsp視頻流接入??低晹z像頭(純前端)

    vue2使用rtsp視頻流接入??低晹z像頭(純前端)

    海康威視官方的RTSP最新取流格式如下: rtsp://用戶名:密碼@IP:554/Streaming/Channels/101 用戶名和密碼 IP就是登陸攝像頭時候的IP(筆者這里IP是192.168.1.210) 所以筆者的rtsp流地址就是 rtsp://用戶名:密碼@192.168.1.210:554/Streaming/Channels/101 1.1關閉 螢石云的接入 1.2 調整視頻編碼為H.264 在此下載

    2024年04月26日
    瀏覽(25)
  • Qt推流程序(視頻文件/視頻流/攝像頭/桌面轉成流媒體rtmp+hls+webrtc)可在網頁和播放器遠程觀看

    Qt推流程序(視頻文件/視頻流/攝像頭/桌面轉成流媒體rtmp+hls+webrtc)可在網頁和播放器遠程觀看

    推流直播就是把采集階段封包好的內容傳輸到服務器的過程。其實就是將現場的視頻信號從手機端,電腦端,攝影機端打包傳到服務器的過程?!巴屏鳌睂W絡要求比較高,如果網絡不穩(wěn)定,直播效果就會很差,觀眾觀看直播時就會發(fā)生卡頓等現象,觀看體驗比較糟糕。主流

    2024年02月04日
    瀏覽(94)
  • 【Uni-app 引入海康h5player并接入ws視頻流】

    【Uni-app 引入??礹5player并接入ws視頻流】

    內容簡介 采用uni-app中的renderjs 引入??礖5 SDK 后端接入??稻C合安防平臺的開放API獲取預覽流 ??礖5 SDK 下載地址 接入原因 因在移動端接入不管是hls flv rtsp rtmp流的播放穩(wěn)定性和速度均很慢,特采用ws直連流來播放,效率很穩(wěn)定性均顯著提高。因采用前者流可以直接使用原生

    2024年02月11日
    瀏覽(15)
  • Unity3d C#快速打開螢石云監(jiān)控視頻流(ezopen)支持WebGL平臺,替代UMP播放視頻流的方案(含源碼)

    Unity3d C#快速打開螢石云監(jiān)控視頻流(ezopen)支持WebGL平臺,替代UMP播放視頻流的方案(含源碼)

    Universal Media Player算是視頻流播放功能常用的插件了,用到現在已經不知道躺了多少坑了,這個插件雖然是白嫖的,不過被甲方和領導吐槽的就是播放視頻流的速度特別慢,可能需要幾十秒來打開監(jiān)控畫面,等待的時間較久。還有當輸出WebGL的時候視頻無法播放,這個問題也一

    2024年02月14日
    瀏覽(87)
  • Unity WebGL 播放視頻流m3u8

    Unity WebGL 播放視頻流m3u8

    目錄 介紹 步驟 1.導入AVProVideo插件,創(chuàng)建場景,創(chuàng)建空物體添加MediaPlayer組件設置m3u8視頻地址以及WebGL平臺設置 ?2.在Canvas下創(chuàng)建Avpro Video,為MediaPlayer賦值 ?3.可以現在編輯器模式下測試視頻地址是否可以播放,然后打包 ?4.打包完成后,將文件hls.min.js復制到Build文件夾下: 5

    2023年04月10日
    瀏覽(34)
  • 【音視頻】基于NGINX如何播放rtmp視頻流

    【音視頻】基于NGINX如何播放rtmp視頻流

    現階段直播越來越流行,直播技術發(fā)展也越來越快。Webrtc、rtmp、rtsp是比較火熱的技術,而且應用也比較廣泛。本文通過實踐來展開介紹關于rtmp如何播放。 本文重點介紹基于NGINX如何播放rtmp視頻流 可以參考上一篇博文:【音視頻】基于webrtc協議瀏覽器播放rtsp https://blog.csdn.n

    2024年01月19日
    瀏覽(31)
  • 【精選】基于OpenCV的實時視頻流車牌識別(源碼&教程)

    【精選】基于OpenCV的實時視頻流車牌識別(源碼&教程)

    近年來,智能交通系統(tǒng)(ITS)在我國應用日益廣泛。作為ITS重要組成部分的自動車牌識別系統(tǒng)在交通流量檢測、交通誘導控制、違章車輛監(jiān)控等方面有著廣泛的應用,是確保道路安全暢通的重要手段,也為統(tǒng)計有關資料,為管理者決策提供有效數字依據的重要途徑。由于一般的識別系

    2024年01月23日
    瀏覽(94)
  • Unity3d 獲取場景中攝像頭視頻流,實現直播效果(無需代碼)

    Unity3d 獲取場景中攝像頭視頻流,實現直播效果(無需代碼)

    下面是具體操作流程: ? 1. 搭建服務器,選用github 一個開源的 node.js服務器。 下載地址GitHub - iizukanao/node-rtsp-rtmp-server: RTSP/RTMP/HTTP hybrid server,點擊克隆,選擇ZIP下載。? 2. 下載node.js( 官網鏈接 Node.js) ? 選擇下載最新版本,并根據提示一步步安裝即可。 3.搭建服務器。 找到

    2023年04月08日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包