日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity学习笔记-uniwebview4-网页与unity通信

發布時間:2023/12/9 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity学习笔记-uniwebview4-网页与unity通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

uniwebview4-網頁與unity通信

  • 監控用戶在觀看網頁的視頻
    • 具體的實現
  • 監聽用戶是否在聽音頻
  • 其他

想要實現的功能是監控用戶是否在播放視頻和音頻

監控用戶在觀看網頁的視頻

在通過uniebview組件load和show網頁的時候
在這個組件上添加addjavascript
這個方法是用來在網頁的視頻標簽上添加按鍵監聽事件,通過監控網頁的播放鍵和暫停鍵獲得視頻的播放情況
然后在unity的uniwebview組件上繼續添加一個OnMessageReceived委托,通過這個來監聽網頁發送過來的消息
通過上面兩個方法即可實現監聽用戶是否在觀看網頁視頻的功能

具體的實現

addjavascript

(這里有一個注意事項)
不在addjavascript前添加onpagefinished的話,偶爾會報錯,顯示找不到網頁視頻標簽的異常,個人猜測是unity添加js到網頁的時間和uniwebview自己的生命周期之間存在前后順序,在加載完成網頁之后,確保了網頁的代碼啥的已經加載完了,再再unity上添加額外的腳本比較保險和合理
添加的js腳本也貼上吧,這個我也是從網上找的(本人前端并不熟練)
這里有一個提高調試效率的技巧,就是先在任意一款能寫前端代碼的idea(本人使用的是vscode)上寫一個簡單的網頁(里面只要有視頻標簽即可,然后在視頻標簽的路徑上填上任意一個視頻服務器地址),然后運行一下,再在控制臺上輸入我們需要在addjavascript上添加的代碼
然后去測試按鍵是否有監控到
因為我發現unity的addjavascript方法和在前端控制臺手動輸入腳本的步驟很類似,于是就這樣做了,這樣確實快了很多
主要是uniwebview這個組件在windows測試不了,每次都要打包apk會很消耗時間
js腳本下

var element = document.getElementsByTagName("video");var elevideo = element.item(0);elevideo.addEventListener('pause', function () { //暫停開始執行的函數console.log("pause");});elevideo.addEventListener('play', function () { //暫停開始執行的函數console.log("play");});

需要在事件發生后發送消息給unity的話還需要在監聽事件上添加一句
location.href = “uniwebview://action?videostate=0”;

我是在暫停的時候發送videostate=1
播放的時候發送videosttate=0
通過這個字段去做暫停和播放之后的處理的

OnMessageReceived

通過這個委托的message對象獲得從網頁上發送的字段內容進行后續的處理
因為我們的功能是播放時顯示時間的增減,暫停時停止時間變化
所以對應的處理就是是否讓記錄的時間變化

監聽用戶是否在聽音頻

這個使用的方法和上面的不太一樣,因為我們播放的時候使用的不是網頁,而是直接把音頻的數據拉下來,然后在本地的audiosource組件上實時播放
那么這里的監聽方法就要有所變化
我的方法是在獲得了音頻數據的同時,是可以獲得音頻的時長的,通過添加一個新的協程去記錄播放的時間,當播放完畢之后說明這個音頻播放完畢,則認為用戶沒有在聽了,點擊返回的話也認為用戶沒有在聽音頻
因為時間關系,所以沒有做音頻的播放暫停功能,所以這里的邏輯就變成了只要監聽用戶是否在播放音頻的界面,以及是否在音頻的時間內即可
這里有一個注意事項
這里實現功能的途中我使用了兩個協程,在不需要的時候一定要關掉對應的協程,否則會讓程序變得很亂

其他

因為目前還沒有專門寫服務器的同事,所以我們現在都是將數據記錄在本地的方法

總結

以上是生活随笔為你收集整理的Unity学习笔记-uniwebview4-网页与unity通信的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。