iOS のマイクの権限について

iOS 版の libwebrtc は送受信に関わらずマイクの権限を要求します。 この挙動により、マイクの権限を必要としない、受信のみを行うアプリが App Store の審査でリジェクトされる可能性があります。 この問題を解決するため、 React Native WebRTC Kit では独自のパッチを適用し、マイクの有効/無効を制御できるようにしています。

マイクの有効/無効を制御する方法

WebRTC.setMicrophoneEnabled(false) を実行することでマイクを無効化できます。 引数を true に変更して実行することでマイクを有効化できますが、マイクはデフォルトで有効になっているため、動的に有効/無効を制御したいケースを除き、明示的に有効化する必要はありません。

例: マイクを無効化する

import {
  WebRTC,
} from 'react-native-webrtc-kit';

if (Platform.OS === 'ios') {
  WebRTC.setMicrophoneEnabled(false);
}

マイクの権限が要求されるタイミング

マイクの権限は WebRTC のコネクションが確立されたタイミングで要求されます。 このタイミングは libwebrtc と iOS の今後のアップデートで変更される可能性があります。