整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          web端開發(fā)增強(qiáng)現(xiàn)實(shí)應(yīng)用

          前端開發(fā)中,工程師常常這樣調(diào)侃“一入前端深似海”。確實(shí),前端的應(yīng)用面十分廣,知識(shí)點(diǎn)比較零碎,學(xué)習(xí)范圍也比較大,當(dāng)然,實(shí)現(xiàn)的功能也更加全面。所以對(duì)于當(dāng)下十分火熱的AR,運(yùn)用前端技術(shù)也可以輕松的實(shí)現(xiàn)。web 平臺(tái)在AR,SLAM或跟蹤的技術(shù)應(yīng)用上將會(huì)越來越普及。

          今天我們來講解如何運(yùn)用JSARToolKit庫與WebRTC 的getUserMedia API,開發(fā)web 端的AR 應(yīng)用。

          ps:

          1.部分整理翻譯于:https://www.html5rocks.com/zh/tutorials/webgl/jsartoolkit_webrtc/

          2.大家也可以參考下之前的Web AR 開發(fā)指南:教程鏈接

          預(yù)覽效果:

          所需識(shí)別圖:

          實(shí)現(xiàn)思路:

          1.設(shè)置JSARToolKit

          2.使用getUserMedia訪問網(wǎng)絡(luò)攝像頭

          3.檢測(cè)標(biāo)記

          4.矩陣映射

          關(guān)于JSARToolKit

          JSARToolkit是一個(gè)從FLARToolkit(Flash)轉(zhuǎn)換的JavaScript庫,結(jié)合Html5 與 canvas 來實(shí)現(xiàn)網(wǎng)頁端的AR 效果。

          項(xiàng)目地址:https://github.com/kig/JSARToolKit

          對(duì)于JSARToolKit,比較重要的是navigator.getUserMedia() 方法,它用于訪問攝像頭,傳遞一個(gè)可以使用html5 <video>標(biāo)簽顯示的視頻流.但是JSARToolKit需要單個(gè)幀來檢測(cè)標(biāo)記。所以首先在畫布上逐幀繪制視頻幀,并使得ToolKitcanvas.changed = true。JSARToolKit通過使用光柵化來查找每個(gè)幀并搜索標(biāo)記然后計(jì)算標(biāo)記位置。得到的矩陣位置然后繪制模型即可(JSARToolKit是對(duì)canvas元素進(jìn)行操作,當(dāng)你將畫布傳遞給JSARToolKit進(jìn)行分析時(shí),JSARToolKit將返回在圖像中找到的AR標(biāo)記列表和相應(yīng)的轉(zhuǎn)換矩陣。要在標(biāo)記之上繪制一個(gè)3D對(duì)象,需要將位置信息傳遞給任何的一個(gè)3D引擎即可進(jìn)行繪制操作)。

          我們對(duì)JSARToolKit進(jìn)行設(shè)置,第一步是創(chuàng)建canvas對(duì)象,攝像機(jī)參數(shù)對(duì)象和檢測(cè)對(duì)象。

          varraster=newNyARRgbRaster_Canvas2D(canvas);

          //設(shè)置攝像機(jī)參數(shù)

          var param=newFLARParam(320,240);

          //FLARMultiIdMarkerDetector是用于標(biāo)記檢測(cè)的實(shí)際引擎

          var detector=newFLARMultiIdMarkerDetector(param,120);

          //在持續(xù)模式下,可以跟蹤多個(gè)幀的標(biāo)記。

          detector.setContinueMode(true);

          param.copyCameraMatrix(display.camera.perspectiveMatrix,10,10000);

          使用getUserMedia訪問網(wǎng)絡(luò)攝像頭

          接下來,創(chuàng)建一個(gè)通過WebRTC API獲取網(wǎng)絡(luò)攝像頭視頻的視頻元素。對(duì)于預(yù)錄制的視頻,只需將視頻的源屬性設(shè)置為視頻URL。

          |

          檢測(cè)標(biāo)記

          一旦我們檢測(cè)器運(yùn)行ok,我們就可以開始給它進(jìn)行圖像檢測(cè)AR矩陣。首先將圖像繪制到畫布上,然后運(yùn)行檢測(cè)器。檢測(cè)器將返回在圖像中找到的標(biāo)記數(shù)。

          //將準(zhǔn)備好的視頻繪制到canvas上,縮放到320x240。

          canvas.getContext(&apos;2d&apos;).drawImage(video,0,0,320,240);

          //底層canvas已更改。

          canvas.changed=true;

          varmarkerCount=detector.detectMarkerLite(raster,threshold);

          最后一步是迭代檢測(cè)到的標(biāo)記并獲得它們的轉(zhuǎn)換矩陣。

          矩陣映射

          將JSARToolKit矩陣復(fù)制到glMatrix矩陣.(PS:要將庫與另一個(gè)庫(如Three.js)一起使用,還需要編寫一個(gè)將ARToolKit矩陣轉(zhuǎn)換為庫的矩陣格式的函數(shù)。還需要引入FLARParam.copyCameraMatrix方法。copyCameraMatrix方法將FLARParam透視矩陣寫入glMatrix樣式矩陣。)

          如若使用X3DMO也可以這樣來操作,大同小異。首先創(chuàng)建X3DOM上下文將一個(gè)3DOM標(biāo)簽添加到index.html中,創(chuàng)建一個(gè)場(chǎng)景,并添加一個(gè)帶有id的空的。然后在要顯示的模型中添加一個(gè)節(jié)點(diǎn)。

          然后在JSARToolKit初始化中進(jìn)行一些小的更改以便獲得權(quán)限。修改X3DOM viewfrustum中指定的剪切平面和當(dāng)前的透視矩陣。X3DOM運(yùn)行時(shí)API提供代理對(duì)象讀取和修改運(yùn)行時(shí)參數(shù)。運(yùn)行時(shí)連接到每個(gè)X3D元素,比如如下的矩陣示例:

          然后 處理矩陣:

          最后,我們就可以繪制模型了,將其放在矩陣中,并將其設(shè)置為MatrixTransform節(jié)點(diǎn)的屬性值。

          然后你就會(huì)實(shí)現(xiàn)類似這樣的效果:

          以上兩種方法大同小異,大家可以比較著使用,接下來給大家分享一些web AR 的開發(fā)資源:

          1.JS-ARUCO(ARUCO是基于OpenCV的增強(qiáng)現(xiàn)實(shí)應(yīng)用程序的輕便庫,現(xiàn)在已被移植到純JavaScript):http://code.google.com/p/js-aruco/

          2.HTML5-AR:https://github.com/dontcallmedom/html5-augmented-reality

          該演示結(jié)合了地理位置,攝像機(jī)訪問,提供一個(gè)擴(kuò)展現(xiàn)實(shí)的Web應(yīng)用程序,覆蓋了實(shí)時(shí)視頻流上的幾個(gè)興趣點(diǎn)。

          3.WebRTC Head Tracking:https://dev.opera.com/articles/head-tracking-with-webrtc/

          使用WebRTC,Media Capture和Streams在JavaScript中創(chuàng)建頭部跟蹤。

          4.HTML5 Face Detection:http://wesbos.com/html5-video-face-detection-canvas-javascript/

          使用HTML5,Canvas和Javascript在你的臉上放置“Groucho Marx”風(fēng)格的眼鏡,鼻子和胡子。

          AR醬原創(chuàng),轉(zhuǎn)載務(wù)必注明

          微信號(hào)AR醬(ARchan_TT)

          AR醬官網(wǎng):www.arjiang.com

          前不久抽空對(duì)目前比較火的視頻直播,做了下研究與探索,了解其整體實(shí)現(xiàn)流程,以及探討移動(dòng)端HTML5直播可行性方案。

          發(fā)現(xiàn)目前 WEB 上主流的視頻直播方案有 HLS 和 RTMP,移動(dòng) WEB 端目前以 HLS 為主(HLS存在延遲性問題,也可以借助 video.js 采用RTMP),PC端則以 RTMP 為主實(shí)時(shí)性較好,接下來將圍繞這兩種視頻流協(xié)議來展開H5直播主題分享。

          一、視頻流協(xié)議HLS與RTMP

          1. HTTP Live Streaming

          HTTP Live Streaming(簡稱 HLS)是一個(gè)基于 HTTP 的視頻流協(xié)議,由 Apple 公司實(shí)現(xiàn),Mac OS 上的 QuickTime、Safari 以及 iOS 上的 Safari 都能很好的支持 HLS,高版本 Android 也增加了對(duì) HLS 的支持。一些常見的客戶端如:MPlayerX、VLC 也都支持 HLS 協(xié)議。

          HLS 協(xié)議基于 HTTP,而一個(gè)提供 HLS 的服務(wù)器需要做兩件事:

          編碼:以 H.263 格式對(duì)圖像進(jìn)行編碼,以 MP3 或者 HE-AAC 對(duì)聲音進(jìn)行編碼,最終打包到 MPEG-2 TS(Transport Stream)容器之中;分割:把編碼好的 TS 文件等長切分成后綴為 ts 的小文件,并生成一個(gè) .m3u8 的純文本索引文件;瀏覽器使用的是 m3u8 文件。m3u8 跟音頻列表格式 m3u 很像,可以簡單的認(rèn)為 m3u8 就是包含多個(gè) ts 文件的播放列表。播放器按順序逐個(gè)播放,全部放完再請(qǐng)求一下 m3u8 文件,獲得包含最新 ts 文件的播放列表繼續(xù)播,周而復(fù)始。整個(gè)直播過程就是依靠一個(gè)不斷更新的 m3u8 和一堆小的 ts 文件組成,m3u8 必須動(dòng)態(tài)更新,ts 可以走 CDN。一個(gè)典型的 m3u8 文件格式如下:

          #EXTM3U
          #EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=200000
          gear1/prog_index.m3u8
          #EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=311111
          gear2/prog_index.m3u8
          #EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=484444
          gear3/prog_index.m3u8
          #EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=737777
          gear4/prog_index.m3u8

          可以看到 HLS 協(xié)議本質(zhì)還是一個(gè)個(gè)的 HTTP 請(qǐng)求 / 響應(yīng),所以適應(yīng)性很好,不會(huì)受到防火墻影響。但它也有一個(gè)致命的弱點(diǎn):延遲現(xiàn)象非常明顯。如果每個(gè) ts 按照 5 秒來切分,一個(gè) m3u8 放 6 個(gè) ts 索引,那么至少就會(huì)帶來 30 秒的延遲。如果減少每個(gè) ts 的長度,減少 m3u8 中的索引數(shù),延時(shí)確實(shí)會(huì)減少,但會(huì)帶來更頻繁的緩沖,對(duì)服務(wù)端的請(qǐng)求壓力也會(huì)成倍增加。所以只能根據(jù)實(shí)際情況找到一個(gè)折中的點(diǎn)。

          對(duì)于支持 HLS 的瀏覽器來說,直接這樣寫就能播放了:

          <video src=”./bipbopall.m3u8″ height=”300″ width=”400″  preload=”auto” autoplay=”autoplay” loop=”loop” webkit-playsinline=”true”></video>

          注意:HLS 在 PC 端僅支持safari瀏覽器,類似chrome瀏覽器使用HTML5 video

          標(biāo)簽無法播放 m3u8 格式,可直接采用網(wǎng)上一些比較成熟的方案,如:sewise-player、MediaElement、videojs-contrib-hls、jwplayer。

          程序猿的生活:web前端全棧資料粉絲福利(面試題、視頻、資料筆記,進(jìn)階路線)zhuanlan.zhihu.com/p/136454207

          2. Real Time Messaging Protocol

          Real Time Messaging Protocol(簡稱 RTMP)是 Macromedia 開發(fā)的一套視頻直播協(xié)議,現(xiàn)在屬于 Adobe。這套方案需要搭建專門的 RTMP 流媒體服務(wù)如 Adobe Media Server,并且在瀏覽器中只能使用 Flash 實(shí)現(xiàn)播放器。它的實(shí)時(shí)性非常好,延遲很小,但無法支持移動(dòng)端 WEB 播放是它的硬傷。

          雖然無法在iOS的H5頁面播放,但是對(duì)于iOS原生應(yīng)用是可以自己寫解碼去解析的, RTMP 延遲低、實(shí)時(shí)性較好。瀏覽器端,HTML5 video

          標(biāo)簽無法播放 RTMP 協(xié)議的視頻,可以通過 video.js 來實(shí)現(xiàn)。

          <link href=“http://vjs.zencdn.net/5.8.8/video-js.css” rel=“stylesheet”>
          <video id=“example_video_1″ class=“video-js vjs-default-skin” controls preload=“auto” width=“640” height=“264” loop=“l(fā)oop” webkit-playsinline>
          <source src=“rtmp://10.14.221.17:1935/rtmplive/home” type=‘rtmp/flv’>
          </video>
          <script src=“http://vjs.zencdn.net/5.8.8/video.js”></script>
          <script>
          videojs.options.flash.swf = ‘video.swf’;
          videojs(‘example_video_1′).ready(function() {
          this.play();
          });
          </script>


          3. 視頻流協(xié)議HLS與RTMP對(duì)比


          二、直播形式

          目前直播展示形式,通常以YY直播、映客直播這種頁面居多,可以看到其結(jié)構(gòu)可以分成三層:

          ① 背景視頻層

          ② 關(guān)注、評(píng)論模塊

          ③ 點(diǎn)贊動(dòng)畫

          而現(xiàn)行H5類似直播頁面,實(shí)現(xiàn)技術(shù)難點(diǎn)不大,其可以通過實(shí)現(xiàn)方式分為:

          ① 底部視頻背景使用video視頻標(biāo)簽實(shí)現(xiàn)播放

          ② 關(guān)注、評(píng)論模塊利用 WebScoket 來實(shí)時(shí)發(fā)送和接收新的消息通過DOM 和 CSS3 實(shí)現(xiàn)

          ③ 點(diǎn)贊利用 CSS3 動(dòng)畫

          了解完直播形式之后,接下來整體了解直播流程。

          相關(guān)學(xué)習(xí)資料推薦,點(diǎn)擊下方鏈接免費(fèi)報(bào)名,先碼住不迷路~】

          音視頻免費(fèi)學(xué)習(xí)地址:FFmpeg/WebRTC/RTMP/NDK/Android音視頻流媒體高級(jí)開發(fā)

          【免費(fèi)分享】音視頻學(xué)習(xí)資料包、大廠面試題、技術(shù)視頻和學(xué)習(xí)路線圖,資料包括(C/C++,Linux,F(xiàn)Fmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以點(diǎn)擊788280672加群免費(fèi)領(lǐng)取~

          三、直播整體流程

          直播整體流程大致可分為:

          視頻采集端:可以是電腦上的音視頻輸入設(shè)備、或手機(jī)端的攝像頭、或麥克風(fēng),目前以移動(dòng)端手機(jī)視頻為主。

          直播流視頻服務(wù)端:一臺(tái)Nginx服務(wù)器,采集視頻錄制端傳輸?shù)囊曨l流(H264/ACC編碼),由服務(wù)器端進(jìn)行解析編碼,推送RTMP/HLS格式視頻流至視頻播放端。

          視頻播放端:可以是電腦上的播放器(QuickTime Player、VLC),手機(jī)端的native播放器,還有就是 H5 的video標(biāo)簽等,目前還是以手機(jī)端的native播放器為主。

          (web前端學(xué)習(xí)交流群:328058344 禁止閑聊,非喜勿進(jìn)!)

          四、H5 錄制視頻

          對(duì)于H5視頻錄制,可以使用強(qiáng)大的 webRTC (Web Real-Time Communication)是一個(gè)支持網(wǎng)頁瀏覽器進(jìn)行實(shí)時(shí)語音對(duì)話或視頻對(duì)話的技術(shù),缺點(diǎn)是只在 PC 的 Chrome 上支持較好,移動(dòng)端支持不太理想。

          使用 webRTC 錄制視頻基本流程

          ① 調(diào)用 window.navigator.webkitGetUserMedia()

          獲取用戶的PC攝像頭視頻數(shù)據(jù)。

          ② 將獲取到視頻流數(shù)據(jù)轉(zhuǎn)換成 window.webkitRTCPeerConnection

          (一種視頻流數(shù)據(jù)格式)。

          ③ 利用 WebScoket

          將視頻流數(shù)據(jù)傳輸?shù)椒?wù)端。

          注意:

          雖然Google一直在推WebRTC,目前已有不少成型的產(chǎn)品出現(xiàn),但是大部分移動(dòng)端的瀏覽器還不支持 webRTC(最新iOS 10.0也不支持),所以真正的視頻錄制還是要靠客戶端(iOS,Android)來實(shí)現(xiàn),效果會(huì)好一些。


          WebRTC支持度

          WebRTC支持度

          iOS原生應(yīng)用調(diào)用攝像頭錄制視頻流程

          ① 音視頻的采集,利用AVCaptureSession和AVCaptureDevice可以采集到原始的音視頻數(shù)據(jù)流。

          ② 對(duì)視頻進(jìn)行H264編碼,對(duì)音頻進(jìn)行AAC編碼,在iOS中分別有已經(jīng)封裝好的編碼庫(x264編碼、faac編碼、ffmpeg編碼)來實(shí)現(xiàn)對(duì)音視頻的編碼。

          ③ 對(duì)編碼后的音、視頻數(shù)據(jù)進(jìn)行組裝封包。

          ④ 建立RTMP連接并上推到服務(wù)端。


          五、搭建Nginx+Rtmp直播流服務(wù)

          安裝nginx、nginx-rtmp-module

          ① 先clone nginx項(xiàng)目到本地:

          brew tap homebrew/nginx

          ② 執(zhí)行安裝nginx-rtmp-module

          brew install nginx-full –with-rtmp-module

          2. nginx.conf配置文件,配置RTMP、HLS

          查找到nginx.conf配置文件(路徑/usr/local/etc/nginx/nginx.conf),配置RTMP、HLS。

          ① 在http節(jié)點(diǎn)之前添加 rtmp 的配置內(nèi)容:

          ② 在http中添加 hls 的配置

          3. 重啟nginx服務(wù)

          重啟nginx服務(wù),瀏覽器中輸入 http://localhost:8080,是否出現(xiàn)歡迎界面確定nginx重啟成功。

          nginx -s reload

          六、直播流轉(zhuǎn)換格式、編碼推流

          當(dāng)服務(wù)器端接收到采集視頻錄制端傳輸過來的視頻流時(shí),需要對(duì)其進(jìn)行解析編碼,推送RTMP/HLS格式視頻流至視頻播放端。通常使用的常見編碼庫方案,如x264編碼、faac編碼、ffmpeg編碼等。鑒于 FFmpeg 工具集合了多種音頻、視頻格式編碼,我們可以優(yōu)先選用FFmpeg進(jìn)行轉(zhuǎn)換格式、編碼推流。

          1.安裝 FFmpeg 工具

          brew install ffmpeg

          2.推流MP4文件

          視頻文件地址:/Users/gao/Desktop/video/test.mp4

          推流拉流地址:rtmp://localhost:1935/rtmplive/home,rtmp://localhost:1935/rtmplive/home

          //RTMP 協(xié)議流
          ffmpeg -re -i /Users/gao/Desktop/video/test.mp4 -vcodec libx264 -acodec aac -f flv rtmp://10.14.221.17:1935/rtmplive/home
          //HLS 協(xié)議流
          ffmpeg -re -i /Users/gao/Desktop/video/test.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -q 10 rtmp://10.14.221.17:1935/hls/test


          注意:

          當(dāng)我們進(jìn)行推流之后,可以安裝VLC、ffplay(支持rtmp協(xié)議的視頻播放器)本地拉流進(jìn)行演示

          3.FFmpeg推流命令

          ① 視頻文件進(jìn)行直播

          ffmpeg -re -i /Users/gao/Desktop/video/test.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -q 10 rtmp://192.168.1.101:1935/hls/test
          ffmpeg -re -i /Users/gao/Desktop/video/test.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -q 10 rtmp://10.14.221.17:1935/hls/test


          ② 推流攝像頭+桌面+麥克風(fēng)錄制進(jìn)行直播

          ffmpeg -f avfoundation -framerate 30 -i “1:0″ \-f avfoundation -framerate 30 -video_size 640x480 -i “0” \-c:v libx264 -preset ultrafast \-filter_complex ‘overlay=main_w-overlay_w-10:main_h-overlay_h-10′ -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://192.168.1.101:1935/hls/test


          更多命令,請(qǐng)參考:

          FFmpeg處理RTMP流媒體的命令大全

          FFmpeg常用推流命令

          七、H5 直播視頻播放

          移動(dòng)端iOS和 Android 都天然支持HLS協(xié)議,做好視頻采集端、視頻流推流服務(wù)之后,便可以直接在H5頁面配置 video 標(biāo)簽播放直播視頻。

          <video controls preload=“auto” autoplay=“autoplay” loop=“l(fā)oop” webkit-playsinline>
          <source src=“http://10.14.221.8/hls/test.m3u8″ type=“application/vnd.apple.mpegurl” />
          <p class=“warning”>Your browser does not support HTML5 video.</p>
          </video>

          八、總結(jié)

          本文從視頻采集上傳,服務(wù)器處理視頻推流,以及H5頁面播放直播視頻一整套流程,具體闡述了直播實(shí)現(xiàn)原理,實(shí)現(xiàn)過程中會(huì)遇到很多性能優(yōu)化問題。

          ① H5 HLS 限制必須是H264+AAC編碼。

          ② H5 HLS 播放卡頓問題,server 端可以做好分片策略,將 ts 文件放在 CDN 上,前端可盡量做到 DNS 緩存等。

          ③ H5 直播為了達(dá)到更好的實(shí)時(shí)互動(dòng),也可以采用RTMP協(xié)議,通過video.js 實(shí)現(xiàn)播放。

          原文 https://zhuanlan.zhihu.com/p/146323842

          書AR小程序開發(fā)方案可以按照以下步驟進(jìn)行:

          1. 確定目標(biāo)和需求:明確圖書AR小程序的用途、目標(biāo)用戶、主要功能等,例如增強(qiáng)現(xiàn)實(shí)技術(shù)展示圖書中的內(nèi)容、提供互動(dòng)式閱讀體驗(yàn)、幫助讀者更好地理解圖書等。
          2. 選擇技術(shù)和工具:選擇適合的開發(fā)技術(shù)和工具,例如JavaScript、HTML5、CSS3、ARKit等,考慮到圖書AR小程序的特點(diǎn),需要選擇支持增強(qiáng)現(xiàn)實(shí)技術(shù)的工具。
          3. 設(shè)計(jì)用戶界面:根據(jù)目標(biāo)用戶的需求和習(xí)慣,設(shè)計(jì)簡潔、易用、美觀的用戶界面,包括啟動(dòng)頁面、主頁面、AR展示頁面等。
          4. 開發(fā)AR展示功能:使用所選的技術(shù)和工具,開發(fā)AR展示功能,包括對(duì)圖書內(nèi)容的識(shí)別、增強(qiáng)現(xiàn)實(shí)場(chǎng)景的生成和管理、虛擬物品的呈現(xiàn)等。
          5. 實(shí)現(xiàn)用戶交互:設(shè)計(jì)并實(shí)現(xiàn)用戶交互模塊,包括手勢(shì)、語音、觸摸等交互方式,使用戶可以通過簡單的操作與AR場(chǎng)景進(jìn)行互動(dòng)。
          6. 集成圖書內(nèi)容:將圖書內(nèi)容集成到AR小程序中,可以通過OCR技術(shù)對(duì)圖書進(jìn)行掃描和識(shí)別,并將識(shí)別結(jié)果呈現(xiàn)給用戶。
          7. 測(cè)試與優(yōu)化:對(duì)開發(fā)完成的圖書AR小程序進(jìn)行測(cè)試,確保功能的正確性和穩(wěn)定性,并對(duì)用戶體驗(yàn)進(jìn)行優(yōu)化。
          8. 發(fā)布與推廣:將圖書AR小程序發(fā)布到相關(guān)平臺(tái),進(jìn)行推廣和使用。

          AR小程序開發(fā)費(fèi)用因開發(fā)方式、開發(fā)難度、開發(fā)團(tuán)隊(duì)等因素而異。

          一般來說,定制開發(fā)的費(fèi)用較高,因?yàn)樾枰度氪罅康娜肆蜁r(shí)間進(jìn)行需求分析、設(shè)計(jì)、開發(fā)、測(cè)試和上線等環(huán)節(jié)。根據(jù)不同的需求和功能,費(fèi)用可能在幾萬到十幾萬不等。

          如果選擇模板開發(fā)方式,費(fèi)用相對(duì)較低,因?yàn)榭梢灾苯犹子眯袠I(yè)模板進(jìn)行修改和優(yōu)化。但這種方式可能無法滿足所有特定需求,需要開發(fā)團(tuán)隊(duì)具備足夠的技能和經(jīng)驗(yàn)。

          另外,AR小程序的開發(fā)費(fèi)用還涉及到技術(shù)選擇、服務(wù)器租賃、團(tuán)隊(duì)工資等因素。例如,選擇使用Unity或ARKit等開發(fā)工具進(jìn)行開發(fā),需要支付相應(yīng)的軟件許可費(fèi)用;同時(shí),如果需要租賃服務(wù)器來支持AR小程序的運(yùn)行,還需要支付相應(yīng)的服務(wù)器租賃費(fèi)用。

          綜上所述,AR小程序開發(fā)費(fèi)用的具體數(shù)額需要根據(jù)實(shí)際情況進(jìn)行評(píng)估和決定。在選擇開發(fā)團(tuán)隊(duì)或服務(wù)商時(shí),建議綜合考慮其經(jīng)驗(yàn)、技能、服務(wù)質(zhì)量和預(yù)算等因素。

          以上是圖書AR小程序開發(fā)的基本方案,具體實(shí)施過程中可能需要根據(jù)項(xiàng)目需求和實(shí)際情況進(jìn)行調(diào)整和優(yōu)化。


          主站蜘蛛池模板: 交换国产精品视频一区| www一区二区三区| 色婷婷一区二区三区四区成人网| 国产精品一区二区综合| 精品国产AV无码一区二区三区| 亚洲丰满熟女一区二区v| 亚洲一区电影在线观看| 爆乳无码AV一区二区三区| 在线观看精品一区| chinese国产一区二区| 日本一区二区三区高清| 国产一区二区三区免费| 91久久精品午夜一区二区| 视频在线观看一区| 久久久一区二区三区| 天天视频一区二区三区| 精品一区二区三区在线观看| 果冻传媒一区二区天美传媒| 国产精品毛片一区二区三区| 日韩免费无码视频一区二区三区| 综合无码一区二区三区四区五区| 亚洲国产系列一区二区三区| 国产精品美女一区二区三区| 国产精品毛片一区二区| 国产精品亚洲午夜一区二区三区 | 亚洲一区免费视频| 天码av无码一区二区三区四区| 国产视频一区二区在线播放| 久久精品免费一区二区喷潮| 国产精品久久久久一区二区 | 亚洲一区动漫卡通在线播放| 九九久久99综合一区二区| 久久伊人精品一区二区三区| 精品国产一区二区麻豆| 中文字幕一区二区区免| 亚洲AV乱码一区二区三区林ゆな| 香蕉久久av一区二区三区| 色老头在线一区二区三区 | 精品亚洲综合在线第一区| 免费高清在线影片一区| 国精产品一区二区三区糖心|