WebRTC
はブラウザ用に設計されていることを知っていますが、モバイルアプリケーションでWebRTCライブラリを直接使用することは可能ですか?
ありがとう!
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]];
これは非常に小さなビデオを送信しますが、動作することに注意してください!
ネイティブアプリでWebRTCを使用できますが、少し手間がかかります。
画像を見ると、下部に赤い長方形があります。これがWebRTCのネイティブC++ライブラリです。オーディオおよびビデオ用のWebRTCクラスとWebRTCオブジェクトもWebRTCプロジェクトの一部として見つけることができます。追加する必要があるのは、アプリが呼び出し(VOIPインターフェイス)、シグナリングスタック、および= NAT traversal Utilities(Core Protocol- For SIPこれはPJSIPやPJNATHのようなものである可能性があります。ビデオとオーディオのチャンネル、およびそれらを停止するタイミングなど。
私たち(免責条項:私はそこで働いています)は、これを行うための一連のライブラリを、@-Frozen Mountainで IceLink に構築しました。 iOS、Android、.NETなどの完全なWebRTC実装.
Android Firefoxは実際にWebRTCをサポートしていますが、WebRTC製品を構築するための完全なスタックを提供している企業がたくさんあります。 WebRTCだけで、他のもの(アドレス指定など)を自分で構築した後、おそらく自分でいくつかのラッパーを構築する必要があります(免責事項は私が働いています)。
[http://sinch.com]
[http://twilio.com]
[http://tokbox.com]
[http://nexmo.com]
[http://plivo.com] (I think)
他にもいくつかありますが、これらは主なものです
私たちは皆、さまざまな利点と弱点を持っています。興味があればメールを送ってください。
SightCallには、Android用のWebRTC互換SDKがあり、AndroidネイティブアプリをブラウザーでWebRTCに接続できます。SDKを入手できます here
OpenTokなどのサードパーティAPIを使用して、モバイルアプリケーションでWebRTCを操作することが可能です(iOSのみ、2014年1月現在Android) http:// tokbox .com/opentok/webrtc/downloads/index.html およびAddlive(iOSおよびAndroid) http://www.addlive.com/platform-overview/
現在、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
あなたが見たいと思うかもしれない1つのリソースはこの記事です: あなたの人生の10時間を無駄にすることなくwebrtcとiosを始める方法
私が抱えている問題の1つは、すべてのWebRTC/Libjingle
ライブラリファイル。現時点では、サンプルアプリを実行することはできますが、「Hello World」の例があればいいのにと思います。
「モバイルアプリケーションでWebRTCライブラリを直接使用する」とはどういう意味かわかりません。しかし、私はすでにやったことがあります。 JNI + NDKを使用してWebRTC NS/AEC/AECM/AGC/VADモジュールをビルドし、Androidで共有ライブラリを使用します。または、AndroidとiOSの両方でWebRTC VoEとViE全体を構築できます。
まだ、FirefoxのnightlyとChromeの両方のデスクトップバージョンでのみサポートされています。 http://www.webrtc.org を参照してください
編集:申し訳ありませんが、モバイルブラウザを求めていたと思います。ネイティブアプリの場合、明確なno :(
しかし、モバイルブラウザのサポートがいくつかあるようです http://www.morbo.org/2013/04/webrtc-support-on-Android.html
Android> = Lをターゲットにしている場合、WebRTCをサポートする(クローム)webviewをアプリに埋め込むことにより、ネイティブwebRTCアプリを簡単に構築できます。
chrome webview を参照してください
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
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を確認してください。
答えるのはかなり遅れました。しかし、私はiOSプロジェクトにWebRTCを簡単に追加するためのフレームワークを作成しました。ライブラリからWebRTCフレームワークを構築する必要はありません。このフレームワークは、webRTCをアプリに簡単に追加するためのラッパーとともに、組み込みのフレームワークを提供します。 https://github.com/Ankit-Aggarwal/SwiftyWebRTC
今のところ、2つのオプションがあります。