2018年01月04日

PARTY SOUND GRIDS | 制作後記 (3) | マイク使用パーミッション

披露宴の二次会とかにピッタリ♪

じゃ、今回は iOS デバイスでのマイク使用に必要な、パーミッションについて!


前回までのコードで、Editor 上ではとてもいい感じで動いてたんで、デバイスに持ってきて動作させたんですが、録音を開始した瞬間、デバイスがハードクラッシュしましたよ。ハハハハハッ

ま、Unity あるあるですよね。
でも、原因は Unity にある訳じゃなくて、当然自分のコードなんですが、2箇所問題がありました。(でもハードクラッシュはどうかと思いますが...)

一つ目は、前にもちょっと書いた サンプリングレートの問題。デバイス上では、サンプリングレートの制限が無くて、
Microphone.GetDeviceCaps() 

が、min も max も 0 で帰ってくるんですよね。なんで、適当な数値を渡してやって、この問題はクリア!

で、二つ目が、今回の本題のマイク使用のパーミッションです。
ここ、特に大きく宣伝されてるわけではないんですが、Unity で全て処理できる様になってるみたいなんですよねー

お世話になるのは、おなじみの Application class で、リファレンスや、コミュニティのやりとりを見てると、もともとWeb Player だけの対応だったみたいなんですが、今はどうやら iOS デバイスも対応している様なので、試しに下みたいな感じで読んでみました。

Mic_Authorization_Check.png

Line 699 で、マイク使用許可済みかどうかチェックして、許可がなければ、Line 710 で許可をもらうコルーチンを始動!
で、コルーチン側も、Unity の Aplication class から簡単にこれだけ。

Mic_Authorization_Request.png
Line 984 の
    yieldreturnApplication.RequestUserAuthorization(UserAuthorization.Microphone);  
で、許可をもらうポップアップを表示してるだけ。

後もう一つ!
Xcode での設定です。リサーチをしてみると、どうやらこれがハードクラッシュの原因なのかな?

Xcode の info.plist に、マイクの使用を明示してやんないとダメみたいですね。
なんで、Xcode で info.plist を開いて、この Privacy 設定を追加しましょう!

XCode_privacy_setting.png

これでデバイスで実行すると、
Mic_Authorization_Popup.png

こんな感じで、許可を求めるポップアップが出る様になりました。

ちなみに Editor 上では、常に許可を持った状態になるみたいです。

これを実装して以降は、録音開始してもアプリがクラッシュしなくなりました。
やっぱりこれらが原因だったみたいです♪

ではまた〜

簡単な、操作説明ビデオですよ


Version 1.0.1 絶賛公開中!!
弾幕系よけ x よけゲーム

Version 1.2.0 絶賛公開中!!
iOS デバイスの人は、上のアイコンからダウンロードしてみてね!!
基本無料。ゲーム内課金有り(無料で十分遊べます)

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾


初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 

posted by やまけん at 15:05| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする