簡體   English   中英

SpriteKit和SceneKit是否允許在游戲過程中訪問iOS麥克風輸入?

[英]Does SpriteKit and SceneKit allow access to iOS microphone input during game play?

我正在制作一個簡單的Sprite Kit游戲,需要從麥克風輸入音頻來執行語音命令。 我已經創建了一個簡單的游戲,並且已經創建了一個單獨的應用程序,如果您說出一個單詞,它就會檢測到並使用cmu-sphinx / pocketsphinx( http://cmusphinx.sourceforge.net/ )在屏幕上顯示。

我之所以使用Novocaine( https://github.com/alexbw/novocaine ),是因為我已經多次使用該庫,並且在過去的其他項目中也取得了巨大的成功,但是每當我在游戲中啟動Novocaine對象時,應用程序崩潰,但有異常。

因此,我認為自從我使用包裝器庫以來,它肯定已經不再支持某些不推薦使用的功能,因此我進行了更多研究。 我遇到了蘋果的演示應用程序AurioTouch( https://developer.apple.com/library/ios/samplecode/aurioTouch/Introduction/Intro.html )。 在試用了該示例應用程序之后,我可以縮小獲得原始輸入值所需的類,主要是AudioController類。 因此,我導入了AudioController類及其必需的組件,並能夠構建它。 幸運的是,該示例具有適當的異常處理,因此我能夠看到失敗的地方。 異常是由以下行引起的:

AudioUnitInitialize(_rioUnit)

我開始懷疑嘗試在SpriteKit / SceneKit環境中訪問麥克風會導致此問題。 我還在全新的SpriteKit和SceneKit項目中嘗試了上述相同的步驟,但沒有解決問題。 因此,我想知道您是否有可能在SpriteKit / SceneKit項目中提供實時麥克風輸入。

iOS設置應用程序中的“隱私:麥克風”下有一個設置,您必須在該設置中打開應用程序使用設備麥克風的權限。 AVAudioSession requestRecordPermission API可以幫助檢查此權限設置。

還應該設置和激活一些AVAudioSession類別以使用麥克風。 SpriteKit和SceneKit的使用不會干擾這些設置。

蘋果在iOS 10中擴展了隱私控制的范圍。 您必須在Info.plist中聲明對任何私有數據的訪問權限。

轉到Info.Plist文件,並根據需要添加隱私密鑰。

麥克風:密鑰:隱私-麥克風使用說明
值:$(PRODUCT_NAME)允許麥克風用於為語音命令提供音頻輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM