web-dev-qa-db-ja.com

スタンドアロンモバイルアプリのWebRTC

WebRTCはブラウザ用に設計されていることを知っていますが、モバイルアプリケーションでWebRTCライブラリを直接使用することは可能ですか?

ありがとう!

23
Taras

5月14日の時点で こちら はAndroid WebRTCを使用したプロジェクトです。

AndroidプロジェクトをObjective-C iOSで、iOSでもWebRTCが動作するようになりましたが、iPhone 4および4sで問題が発生しています。 iPhone 5および5sで動作します。

問題はパフォーマンスだと思います。 webrtcライブラリを使用してビデオ通話を行うと、iPhone 5のCPUの約140%が必要になりますが、これは多くのリソースであり、iPhone 4sでは処理できないと思います。


編集済み

ビデオ接続に苦労した後(常に10秒後に切断)、ついにiPhone 4sでWebRTCが動作するようになりました。あなたがしなければならないことは、ローカルvideoSourceキャプチャオブジェクトを作成するときに正しい制約を設定することだけです:

NSString *_width = @"320";
NSString *_height = @"180";
NSString *_maxFrameRate = @"10";

RTCMediaConstraints *videoConstraints = [[RTCMediaConstraints alloc]   
initWithMandatoryConstraints:@[[[RTCPair alloc] initWithKey:@"maxHeight" value:_height],
[[RTCPair alloc] initWithKey:@"maxWidth" value:_width],
[[RTCPair alloc] initWithKey:@"maxFrameRate" value:_maxFrameRate]] optionalConstraints:@[[[RTCPair alloc] 
initWithKey:@"googCpuOveruseDetection" value:@"true"],
[[RTCPair alloc] initWithKey:@"googCpuLimitedResolution" value:@"true"]]];


RTCVideoSource *videoSource = [factory videoSourceWithCapturer:capturer constraints:videoConstraints];
RTCMediaStream *lms = [factory mediaStreamWithLabel:@"ARDAMS"];
[lms addVideoTrack:[factory videoTrackWithID:@"ARDAMSv0" source:videoSource]];

これは非常に小さなビデオを送信しますが、動作することに注意してください!

21
Moisés Olmedo

ネイティブアプリでWebRTCを使用できますが、少し手間がかかります。 WebRTC Native app anatomy

画像を見ると、下部に赤い長方形があります。これがWebRTCのネイティブC++ライブラリです。オーディオおよびビデオ用のWebRTCクラスとWebRTCオブジェクトもWebRTCプロジェクトの一部として見つけることができます。追加する必要があるのは、アプリが呼び出し(VOIPインターフェイス)、シグナリングスタック、および= NAT traversal Utilities(Core Protocol- For SIPこれはPJSIPやPJNATHのようなものである可能性があります。ビデオとオーディオのチャンネル、およびそれらを停止するタイミングなど。

参照: http://bloggeek.me/porting-webrtc-mobile/

12
Arik Halperin

私たち(免責条項:私はそこで働いています)は、これを行うための一連のライブラリを、@-Frozen Mountainで IceLink に構築しました。 iOS、Android、.NETなどの完全なWebRTC実装.

5
jvenema

Android Firefoxは実際にWebRTCをサポートしていますが、WebRTC製品を構築するための完全なスタックを提供している企業がたくさんあります。 WebRTCだけで、他のもの(アドレス指定など)を自分で構築した後、おそらく自分でいくつかのラッパーを構築する必要があります(免責事項は私が働いています)。

[http://sinch.com]
[http://twilio.com]
[http://tokbox.com]
[http://nexmo.com]
[http://plivo.com] (I think)

他にもいくつかありますが、これらは主なものです

私たちは皆、さまざまな利点と弱点を持っています。興味があればメールを送ってください。

5
cjensen

2014年3月現在、 here はそれを行う方法です。

あなたがネイティブクライアントを持つことに興味があるなら、それはそうなるでしょう。モバイルブラウザを使用してもかまわない場合は、現在、次のものがサポートされています。

  • Google Chrome 28(29以降はデフォルトで有効)
  • Mozilla Firefox 24
  • Opera Mobile 12

ソース

3
Clint Eastwood

SightCallには、Android用のWebRTC互換SDKがあり、AndroidネイティブアプリをブラウザーでWebRTCに接続できます。SDKを入手できます here

3
Christophe

OpenTokなどのサードパーティAPIを使用して、モバイルアプリケーションでWebRTCを操作することが可能です(iOSのみ、2014年1月現在Android) http:// tokbox .com/opentok/webrtc/downloads/index.html およびAddlive(iOSおよびAndroid) http://www.addlive.com/platform-overview/

3
Thelle

現在、WebRTCはAndroid/iOSでネイティブに正式に利用可能です。

http://www.webrtc.org/native-code/Android

http://www.webrtc.org/native-code/ios

内部ではありますが、C++ APIのJava/Objective Cラッパーにすぎません。

JavaScriptを使用せずに引き続き使用できます。

Java wrapper API: https://code.google.com/p/webrtc/source/browse/trunk/talk/#talk%2Fapp%2Fwebrtc%2Fjava%2Fsrc %2Forg%2Fwebrtc

Objective CラッパーAPI: https://code.google.com/p/webrtc/source/browse/trunk/talk/#talk%2Fapp%2Fwebrtc%2Fobjc%2Fpublic%253Fstate%253Dclosed

3
Schleir

あなたが見たいと思うかもしれない1つのリソースはこの記事です: あなたの人生の10時間を無駄にすることなくwebrtcとiosを始める方法

私が抱えている問題の1つは、すべてのWebRTC/Libjingleライブラリファイル。現時点では、サンプルアプリを実行することはできますが、「Hello World」の例があればいいのにと思います。

2
Martin Duparc

「モバイルアプリケーションでWebRTCライブラリを直接使用する」とはどういう意味かわかりません。しかし、私はすでにやったことがあります。 JNI + NDKを使用してWebRTC NS/AEC/AECM/AGC/VADモジュールをビルドし、Androidで共有ライブラリを使用します。または、AndroidとiOSの両方でWebRTC VoEとViE全体を構築できます。

2
BillHoo

まだ、FirefoxのnightlyとChromeの両方のデスクトップバージョンでのみサポートされています。 http://www.webrtc.org を参照してください

編集:申し訳ありませんが、モバイルブラウザを求めていたと思います。ネイティブアプリの場合、明確なno :(

しかし、モバイルブラウザのサポートがいくつかあるようです http://www.morbo.org/2013/04/webrtc-support-on-Android.html

1
destan

私のチームはこの分野でかなりの仕事をしてきました。 Cordovaプラグインを探している場合は、 PhoneRTC と呼ばれるオープンソースプロジェクトで遊んでいます。 iOSで実行していますが、少し信頼性が低く、ビデオウィンドウのアスペクト比はほとんどのデバイスで不自然に見えるように修正されていますが、動作します。

また、libjingleを使用してAndroidデモを作成しました。LibjingleはWebRTCプロジェクトとコードベースの一部になりました。 This リンクはおそらく古くなっていますが、当時私たちのために働いた指示。

0
bpulito

Android> = Lをターゲットにしている場合、WebRTCをサポートする(クローム)webviewをアプリに埋め込むことにより、ネイティブwebRTCアプリを簡単に構築できます。

chrome webview を参照してください

0
Tim Panton

Enablex APIでwebRTCを使用してみてください。enablexフレームワークを介してwebRTCと接続する非常にシンプルで簡単な方法iOSのサンプルビデオ通話アプリの場合- https://github.com/EnableX/Sample-iOS-App-1to1- RTC サンプルビデオ通話アプリの場合Android- https://github.com/EnableX/Sample-Android-App-1to1-RTC

0
jay

IOSの場合は、これをCocoaPods Podfileに追加するだけです

pod "libjingle_peerconnection"


# Add this to the bottom so it won't have issues with active architecture
post_install do |installer_representation|
    installer_representation.project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ONLY_ACTIVE_Arch'] = 'NO'
            config.build_settings['VALID_ARCHS'] = ['armv7', 'i386']
        end
    end
end

this をチェックして、使用可能なリビジョンを確認してください。リビジョン6802.Xは、実際のWebRTCコードベースから this に反映されます。

AndroidはまもなくMaven Centralに追加されますが、これが発生したら編集します。

手動でWebRTCをビルドする場合は、両方のプラットフォームのステップバイステップガイドも含まれているgithub.com/pristineio/webrtc-build-scriptsを確認してください。

0
thebehera

答えるのはかなり遅れました。しかし、私はiOSプロジェクトにWebRTCを簡単に追加するためのフレームワークを作成しました。ライブラリからWebRTCフレームワークを構築する必要はありません。このフレームワークは、webRTCをアプリに簡単に追加するためのラッパーとともに、組み込みのフレームワークを提供します。 https://github.com/Ankit-Aggarwal/SwiftyWebRTC

0
Ankit

今のところ、2つのオプションがあります。

  • デバイス用にlibWebRTCをビルドします。 iOSでAndroid NDKとネイティブCコードを使用する方法を知っている必要があります。それは簡単ではありませんが、完全に実行可能です
  • あなたのためにこれをした他の人の仕事を使ってください。例えば。すでにAddLive(私はそこで働いています)またはOpenTokについても言及しました。
0
stoiczek