Amazon Kinesis Video StreamsでWebRTCを急いでプロダクトに組み込むメモ

2021-01-29

なにこれ

タイトルの通りAmazon Kinesis Video Streamsを使ってWebRTCで通話できるようにするメモ

デモを試したとかはいっぱい引っかかるけど、どうやって組み込んだ?はそんなに情報多くないですね。。。 備忘のため残します。

Androidをメインに書きます。

書かないこと

以下は書きません。強い人がいくらでも解説しているので。

  • Amazon Kinesis Video Streamsってなに?
  • WebRTCってなに?

どうやって導入するの?

SDKが公開されているので各プラットホームに合わせたSDKを読んで、実装していきます。

他にもC言語で書かれているものもありました。私は上記3つのみ読んだり使ったりしました。

このSDKはパッケージ追加してちょこっと呼び出すみたいなものではないです。
必要な箇所を理解してコードを書いていきます。 以上。

…その必要な箇所を理解してコード書くのが時間食うんですよね。

どうやって導入するの?【超ショートカット版】

ここからはAndroidのみの話です。

SDKにあるデモアプリを起動するときにはcognitoで認証してなんやかんやするのですが、そういうやつ全部すっ飛ばして導入しましょう。

基本的にSDKの この階層demoapp以外 を全部使います。

ここから簡単5ステップ!!

  1. プロダクトコードにSDKのdemoapp以外のコードを全部移植する
  2. cognitoで認証している箇所を必要に応じて変更する。 このメソッド を私は変えました
  3. ビルド通らない箇所はbuild.gradleにライブラリ追加したり、demoappを参考にresource追加してビルド通るようにする
  4. お試し用のActivityを準備する
  5. AndroidManifest.xmlの設定を忘れない

これで終わりです。
余裕持って8時間あればとりあえずは動きます。

プロダクト内部で動く状態になると、体験の細部を検討したりdataChannelでこんなことできない?とか考えられたりします。
SDKありがたいですね!

動かしながら設計変更したり、Kotlinに置き換えて行ったりがやりやすいかなと思います。

おわりに

通話機能を新しく導入する場合、ユーザ体験の設計も手探りになると思うので、まず動く状況を作って試しながら詳細を詰めていくのが良いと思います。
ユーザ体験を検討しながら、どうやって動いているんや?を調べることもできますし、大抵Picture in pictureも一緒に導入されているので関連の他の技術調査にも時間使えたりします。
大きめな体験追加になるので、とりあえず動く状態にしていきました。