shiguredo / sora-ios-sdk

WebRTC SFU Sora iOS SDK
https://sora-ios-sdk.shiguredo.jp/
Apache License 2.0
42 stars 8 forks source link

ios-WebRTC接続時にマイク機能を使わない場合 #32

Closed tsuba-h closed 4 years ago

tsuba-h commented 4 years ago

現在webRTC接続時にマイクのアクセスを求めるパーミッションが出てくるのですが、最初からマイク機能を使う必要がない場合に(subscribeのみ)、パーミッションを表示させない、また元からマイク機能を使用しない設定をするのは可能でしょうか? 可能でしたら、ご教授頂けると幸いです。 どうぞよろしくお願いします。

xcode 11.1 swift 4 sora-ios-sdk 2.6.0 ios 13.2.2

szktty commented 4 years ago

@tsuba-h 残念ながら現時点では難しいです。申し訳ありません。

マイクの操作は libwebrtc の管理下にありますが、マイクを無効にする機能は実装されていません。そのため、音声を無効にして Sora に接続する場合でもマイクは初期化されてしまいます。ご了承下さい。

tsuba-h commented 4 years ago

@szktty 了解しました。 ご対応ありがとうございます。

tsuba-h commented 4 years ago

再度質問させていただきます。 現在soraを入れているアプリを申請しているのですが、Appleにマイクを使わないのにマイク承諾要求のパーミッションを出すなとリジェクトされます。 今後、このような場合のためにマイクを無効にするなどの機能を追加されることはありますでしょうか? また何か対応策はありますでしょうか?

szktty commented 4 years ago

@tsuba-h こちらとしてもどうにかしたい課題ですので、 libwebrtc の詳細も含めて改めて調査します。今すぐに対応策を提示できずに申し訳ありません。目処が立ちましたら追ってご連絡致しますので、ご迷惑をおかけしますが少しお待ち頂けると助かります。よろしくお願いします。

voluntas commented 4 years ago

@tsuba-h libwebrtc の issues にも問題が上がっており、 こちらにあったパッチ参考に試行錯誤中です。

https://bugs.chromium.org/p/webrtc/issues/detail?id=5873

おまたせしており申し訳ありません、優先度を上げて対応中です。

YoshidaArsaga commented 4 years ago

@szktty @voluntas お世話になっております。 上記の件でAppleに異議申し立ても出しましたが、結局審査通りませんでした。 そこで頂いた回答を載せておきます。

マイク承諾要求は、AVAudioSessionCategoryRecordまたはAVAudioSessionCategoryPlayAndRecordオーディオカテゴリのいずれかを使用して生成されます。アプリでオーディオを録音する予定がない場合は、アプリのニーズに合うAVAudioSessionセッションカテゴリを選択するか、アプリを修正してオーディオ録音機能を追加してください。

既に対応頂いているとは存じますが、サービスの更新が滞っている状態で、売り上げにも影響が出ている状況なので至急対応していただきたいです。よろしくお願い致します。

voluntas commented 4 years ago

@YoshidaArsaga 弊社ではこちらの問題、総力を上げて対応中です。ただ SDK の範囲から外れ、Google が公開している libwebrtc 側の「かなり深いところ」に問題があるため、調査に時間がかかっております。

進捗があり次第、こちらに書かせていただきます。ご迷惑をおかけして申し訳ありません。

voluntas commented 4 years ago

@tsuba-h @YoshidaArsaga 現状 libwebrtc 自体を修正することで暫定的に「受信専用」という形での対応はできました。

libwebrtc を修正し、マイクを掴まなくなった受信専用の WebRTC.framework を提供し、そちらを置き換えて利用していただく形でまずは対応いただければと考えております。

受信専用の WebRTC.framwork に関してはバイナリにて、週明けに提供を予定しております。

暫定対応後は、受信専用の対応をする必要なく、iOS SDK をそのまま利用することで受信のみを指定した際、マイクを掴まない仕組みを実現できるように進めていく予定です。

YoshidaArsaga commented 4 years ago

@voluntas ありがとうございます。 直接置き換えという事で色々詰まるところあるかもしれませんが、よろしくお願い致します。

voluntas commented 4 years ago

@tsuba-h @YoshidaArsaga 暫定対応の準備ができましたので、以下ご確認ください。バイナリをダウンロードして、置き換えるという形になります。不明点がありましたら、コメントいただければと思います。

問題への対策

マイクのパーミッションを要求しない WebRTC.framework バイナリを用意しました。

注意点

導入手順

YoshidaArsaga commented 4 years ago

@voluntas ご対応ありがとうございました。 おかげさまで無事に審査通過する事が出来ました。 暫定対応という事でしたので引き続きSoraのアップデートの方もお待ちしております。 よろしくお願い致します。

tsuba-h commented 4 years ago

催促するようで申し訳ありませんが、現在の暫定の対応のままだと複数人開発の際に不便な部分がありますので、pod install で対応できるような正式な対応をしていただけ無いでしょうか? お手数おかけしますが、よろしくお願い致します。

voluntas commented 4 years ago

@tsuba-h ご迷惑をおかけして申し訳ありません。現在正式対応 libwebrtc 側へのパッチ開発が一段落しており、こちらのパッチを当てた libwebrtc を利用する iOS SDK を来週中 (2/24 の週) にはリリース予定です。

おまたせして申し訳ありません。もうしばらくお待ちいただければと思います。

szktty commented 4 years ago

@tsuba-h 本問題に正式に対応したバージョン 2020.3 をリリースしました。お待たせして申し訳ありません。

アップグレードにあたり、アプリケーション側のコードの修正は不要です。 libwebrtc に手を加えているため、もし不安定や強制終了などの問題が出ましたらまたお知らせください。よろしくお願いします。

tsuba-h commented 4 years ago

@szktty お手数おかけしましたが、ご対応ありがとうございました。 また何かありましたらよろしくお願いいたします。