2024.11.14
いまさらNode.jsを知ろう~環境構築も~
2016.12.26
プログラミング1日でできるWebRTCネイティブプログラミング
坂東です。
WebRTC使ったAndroidアプリはWebView実装で、ただ標準WebViewは不安定なのでChromiumなCROSSWALK-PROJECTを使用しています。
ただライブラリのサイズが40MBもあったり、Bluetoothの接続で落ちるなど音声周りが不安定で、ネイティブ実装に置き換えることにしました。
でもどうやったら分からないので「WebRTC ネイティブ」でググり・・・
最初にたどり着いたのは「自分でライブラリをビルドする」やり方。
WebRTC Android向けネイティブビルド手順
http://qiita.com/natsuki_summer/items/f959aa78634af9fbdf1d
デモアプリ(AppRTCDemo)のAPKを作って動かすところまではいけました。
ただこれをAndroidStudioに取り込めなかったり、ライブラリの「jar」ファイルが出力されなかったり。
ネットで拾える情報通りにいかなくて、最新の情報が英語だらけで読めないので挫折。
もう少しググってたらAndroidStudioで読めるAppRTCDemoを発見。
Android AppRTC Demo of WebRTC project
https://github.com/njovy/AppRTCDemo
ただシグナリングサーバーが独自のものっぽいんですよね。
元々PeerJSで構築してるから、サーバーはPeerServerを使いたい。
でもPeerServerが内部でどんな処理してるかなんて知らない・・・
と、iOS向けだけど良いサンプルを見つけました。
PeerJSのObjectiveC版 PeerObjectiveC書いてみた
http://qiita.com/hiroeorz@github/items/70fcd51d0d8acc87d5c7
これを移植しはじめつつ、「でもAndroidで同様のサンプル無いのおかしいよな」とも思い。
teratailに質問したところ「SkyWayのSDKを使えばいいよ」と回答頂いたのでした。
ネイティブWebRTCからPeer Server(peer.js)経由でブラウザとの接続方法
https://teratail.com/questions/59638
SkyWayというのはNTTなんちゃらが提供するWebRTCサービスです。
SDKとサーバーが無料のトライアル提供との事で仕事で使うのは避けてた。
https://nttcom.github.io/skyway/
で、このSDK入れてさっくり実装できました。
PeerOptionのhost(シグナリングサーバー)とturn&config(TURNサーバー)の設定を自前のものにすればSkyWayサービスの登録キーも要らない。
type=Peer.PeerTypeEnum.PEERJSにするとシグナリングがえらく遅くなったから、ここはSKYWAYのままが良いみたい。
わたしは紆余曲折で1週間ぐらいハマったれど、SkyWayを使えば1日でできていたはずでした。
自前でPeerServerとTURN用意するのも面倒だからSkyWayはやく有料化しないかな。
おわり。
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索