Safari 11とWebRTC:ビデオ通話の落とし穴

それで起こった。 Appleは、iPhone 10の発表からちょうど30分が経過したiPhone 8に加えて、デスクトップおよびモバイルブラウザのSafariを更新しました。 他の改善点としては、WebRTCの実装があります(Chromiumから部分的に借用されたと噂されています。「プランB」もこれを示唆しています)。 これは開発者にとって何を意味しますか? デスクトップとiPhoneの両方でブラウザを使用して呼び出すことができます。 音声とビデオ。 ブラウザーで更新された開発者ツールについて既に書いたので、今度はこのリリースでどのように機能するかを共有したいと思います。 Voximplant SDKは既に更新されており、SafariがMicrosoft Edgeを呼び出す方法を確認しました。



ビデオ自体は再生されません



Appleは、独自のサポートを追加する前に、他のブラウザの経験を慎重に研究しました。 サポートに加えて、多くのサイトが大好きな不要なバナー、広告、その他の悪いものからユーザーを保護するために設計された多くの制限が追加されました。 ブラウザのiOSバージョンに関するこれらの制限の1つ:WebRTCが通常ローカルカメラおよび/または通話の2番目の端からビデオストリームを出力するビデオ要素は、ユーザーが明示的に許可するまでビデオを再生しません。



「ユーザーからの明示的な許可」はどのようなものですか? これは、動画オブジェクトの「play」メソッドを呼び出す必要があるonclickハンドラー内のインタラクティブな要素である必要があります。 コード内の別の場所からこのメソッドを呼び出したり、プログラムでボタンを押したりしても、ビデオの再生は開始されません。 何年も前、ブリザードのプログラマーもWorld of Warcraftでボットと戦ったことを覚えており、ユーザーアクションに応じてのみ呼び出せる「保護された」APIを作成しました。



<button onclick="document.querySelector('.video').play()"> </button>


Safariはh.264ビデオコーデックのみをサポートします



2つのデバイスが接続の確立に同意すると、デバイスは(あなたの助けを借りて)SDPテキストパケットを交換します。 特に、サポートされているコーデックが示されています。 h.264は、Chrome、Firefox、Edgeの最新バージョンをサポートしていますが、古いバージョンではサポートされていない場合があります。 さらに、ブラウザに加えて、ビデオ通話は他のSIP互換デバイス(電話、クライアントプログラム、モバイルアプリケーション)からも発信できます。 また、h.264がサポートされていない場合、ビデオ通信は行われません。



知っておくべきこと



ChromeとSafariは「Plan B」を使用して、SDPパッケージのメディアストリームを記述します。 また、Firefoxは統合プランです。 そのため、複数のメディアストリームがある場合(たとえば、品質の異なる複数のビデオストリームがある場合)、翻訳者として行動する必要があります。 Edgeについては何も言いません。



また、SafariはWebRTCの使用にいくつかの制限を課しています。HTTPSのみ、サイトと同じドメインからのiframeのみです。 そして、最初の要件が問題を引き起こさない場合、iframeの要件は組み込みウィジェットの使用を厳しく制限します。 一方、Appleも理解することができます-これらのウィジェットから、ほとんどの場合、強迫観念のビデオ広告が登場します。



All Articles