關於Unity中microphone類使用的一些坑

2021-08-11 09:42:33 字數 869 閱讀 8655

最近要排查聊天系統語音功能無法用的bug;專案原始碼中用的是unity官方的microphone類,

先上官網api說明unity.microphone

官網給出了使用教程,好了,來結論:

一、如果是在pc上:

(1)microphone.devices 為空 :請檢查是否有外接麥克風裝置,這個可以在右下角音量按鈕出-->右鍵-->錄音裝置-->檢視是否有麥克風裝置或麥克風裝置是否正常工作。

(2)microphone.devices不為空,但是其名字為空串,舉個例子:

foreach (string device in microphone.devices)

上面**中拿到的device可能是"",也就是所謂的空串,這種情況是

應該unity自身的問題。我之前就有聽說過unity對中文不友好,然後又看了看microphone.devices的說明,它說這是乙個可用麥克風裝置名字陣列。注意!!名字!!當時在這裡卡了好久,後來發現是因為我的麥克風裝置名字是中文名,估計是對中文不友好所以返回空串,

解決辦法:麥克風裝置名改為英文名,重啟電腦即可。

不得不吐槽用名字區分麥克風裝置這種不合理的設計,明顯用id更合理和科學吧。

二、如果是手機上:

對應可能出現的情況我也懶得說了,直接給出一些解決辦法:

(1)保證你的工程開啟了audio。在unity中,依次edit/project settings/audio,將會看到 disable unity audio 這個選項,要保證這個不要被勾選。

(專案工程不知道哪個人把這個勾上,被這個問題搞了半天,最後還是從這裡找到解答:unity-community

關於unity中BindChannels的理解

官方文件 乙個博主的部落格 其實 bindchannels 命令主要幹的事情,就是可以重新對映繫結語義的資料來源和目標硬體。部落格裡所舉的例子 就是改變了texcoord 紋理座標 儲存資料的位置順序。因為unity中一般會把 lightmap 的 uv 存在第2個texcoord中,也就是texc...

關於unity中的SetActive

gameobject cube public button play1 void start void btn 用canvasgroup元件的有乙個問題,ui不可重疊,之前那麼做正好我的ui沒重疊,當然如果要改變ui的透明度的話做一些漸變效果的話canvasgroup元件還是可的。若父物體為fals...

unity中關於角度的函式

尤拉角和四元數一直不是太懂,所以最近補一補,先搞清楚應用方面吧 public void toangleaxis out float angle,out vector3 axis 其中引數angle為旋轉角 引數axis為軸向量。將物件現在的角度轉換成軸向與旋轉角。void angleaxis flo...