Closed daihase closed 6 years ago
詳細な検証と報告をありがとうございます。先に対処方法を書きますと、 MediaStream.videoEnabled
と VideoView.start()
, stop()
を組み合わせてください。以下一例です。
// 映像の送受信と描画を停止する
publisher.mainStream?.videoEnabled = false
publisherVideoView.stop()
// 映像の送受信と描画を再開する
publisher.mainStream?.videoEnabled = true
publisherVideoView.start()
2.2.0 で追加した VideoView.start()
と stop()
は UI 上の描画の on/off を行う API で、映像の送受信を制御する MediaStream.videoEnabled
プロパティと役割が異なります。 VideoView.stop()
を実行すると映像の描画は停止されますが、 MediaStream
による映像の送受信は停止されません。ただし、 MediaStream
で映像の送受信を停止すると、 VideoView
による映像の描画も停止する仕様です。
ですが、 MediaStream.videoEnabled
を false
から true
に戻したときに VideoView
による描画が再開されないのはバグです(次期リリースで修正します)。映像の送受信は再開されていますので、再開後に VideoView.start()
を実行していただければ問題ないと思います。
これらの変更点の詳細な説明についてドキュメント化していませんでしたので、近いうちに追記します。
@szktty ご確認有難うございます。 上記にご記載いただいた組み合わせ方法、こちら参考に対応してみたいと思います。
いつも迅速なご対応有難うございます、それでは引き続き宜しくお願い致します。
先日sora-ios-sdkをSwift4.2対応済みである
2.2.0
へアップデートし、諸々既存アプリのテストを行なっていた際に気づいたのですが、以前のバージョンまでは映像配信のON/OFFは以下のようにvideoEnabled
にtrue/falseをセットすることで制御しておりました。もちろんこれで以前のバージョンを組み込んでいた既存アプリで問題なく映像配信を制御出来たのですが、
2.2.0
にあげると、こちらfalseにするとVideoView
の上に1つ黒いUIView
が覆い被さり、再びtrueで配信ONとしても黒いUIView
が消えない状態となっておりました。私の方でソースを色々見て原因を探っていたところ、こちらでそれらしき追加実装を確認しまして... SDK内でローカル変数としてViewを生成しaddSubviewしているので、一旦自身のアプリからvideoEnabled = trueとし、強引にこの
黒いUIView
をremoveFromSuperviewして見たのですが、VideoView
の映像は停止したままでした。その代わりに
2.2.0
で新たに追加実装されたstop
とstart
メソッドを使ってみると、これまでの映像配信ON/OFFと同様の挙動をしたように見受けられました。こちら長くなってしまい恐縮ですが、これまでの
2.2.0
以下のバージョンで正しく?動いていた映像配信ON/OFFを行うにはどの方法が適切か、ご教示いただけると幸いです。■確認環境
Xcode10.0 Swift4.2 sora-ios-sdk 2.2.0 iOS11.2.6