lib-jitsi-meet API を使用して、Jitsi 用の React Native モバイル アプリをゼロから作成しようとしています。AWS サーバーに自己ホスト型の jitsi-meet があり、クイック インストール ガイドに従いました。この投稿では、URL はhttps://jitsimeet.example.com
.
React Native アプリでは、 をtest1
使用して会議に参加できJitsiMeetJS.initJitsiConference
ます。参加すると、ユーザーは のブラウザーで「Fellow Jitster」として表示されますがjitsimeet.example.com/test1
、(React Native モバイル アプリから) 会議に追加するトラック (ビデオ/オーディオ) は表示されず、ブラウザーには「」と表示されます。参加者はカメラを停止しました」および「参加者はミュートされています」。
問題がバックエンドのインストールに関連しているかどうかを確認するために、React Native アプリでmeet.jit.si
&を試しました。beta.meet.jit.si
しかし、これらも機能していませんでした。
また、ブラウザと jitsi-meet モバイル アプリで同じ会議jitsimeet.example.com/test1
を試しましたが、どちらも問題なく正常に動作しています。
また、 jitsi-meetリポジトリをローカルにセットアップしました。Android エミュレーターで React Native 部分を実行すると、正常に動作しています (カンファレンスへの参加とオーディオ/ビデオ トラックのレンダリングの両方)。
上記の観察から、問題は React Native アプリの実装に起因しているようです。
会議を開始するコンポーネントのコードは、ここにあります。ここにリポジトリへのリンクがあります。npm i
実行するには、とを実行するだけですnpx react-native run-android
。jitsi-meetリポジトリにあるように、react-native コードでポリフィルを使用しています。
サーバー上の jicofo のログでは、ユーザーが Web または jitsi-meet モバイル アプリを介して参加すると、次のようになることがわかりました。
org.jitsi.jicofo.ParticipantChannelAllocator.log() Sending session-initiate to: test1@conference.jitsimeet.example.com/2502e6ad
org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Got session-accept from: test1@conference.jitsimeet.example.com/2502e6ad
org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Received session-accept from test1@conference.jitsimeet.example.com/2502e6ad with accepted sources:Sources{ video: [ssrc=467278592 ssrc=2301072636 ssrc=839807103 ssrc=3616291734 ssrc=2331517151 ssrc=3181098946 ] audio: [ssrc=2795704819 ] }@2129717334
React Native アプリ経由で参加すると、次の情報しか得られません。
org.jitsi.jicofo.ParticipantChannelAllocator.log() Sending session-initiate to: test1@conference.jitsimeet.example.com/946022e6
関連する可能性のある詳細情報
クライアント側では、イベントが発生した後にトラックを追加していますCONFERENCE_JOINED
。次に、次のログを取得しています。
[JitsiConference.js] _doReplaceTrack - no JVB JingleSession
[JitsiConference.js] _doReplaceTrack - no P2P JingleSession
上記のように、react ネイティブ アプリから会議に参加できCONFERENCE_JOINED
、 、USER_JOINED
、USER_LEFT
イベントを取得しています。
イベントは、TRACK_ADDED
ローカル トラックを追加した直後にもローカルで発火しています。ただし、他のリモート クライアント (Web ブラウザーまたは jitsi-meet モバイル アプリ) で発生するビデオ/デスクトップ共有/オーディオの変更に対しては起動しません。
どうすればこれを修正できますか?