我有从Android到台式机的ApprtcDemo无法正常工作,我已经跟踪了所有StackOVerflow链接和Google讨论链接,但都没有使它正常工作,每个人都声称本地设置适用于他们,但执行相同的建议却行不通。因此,请在这里您可以找到完整的源代码,其他人也一样,我也一样。但是,即使在Android设备应用程序启动时,我也只能看到自我观看,它可以连接到Google Apps Engine,但从不连接到用于音频/视频会话的房间。您能否提出建议并提出建议,以便我们可以在此处就此问题做出可靠的答复?我花了3个月的时间,但我无法使它正常工作。 步骤1:前往 https://code.google.com/p/test-apprtc-demo/source/browse/ 步骤2:文件夹apprtc = javascript,python,webrtc,google app引擎 完整的android代码文件夹包含android的所有源代码 应用程序 步骤3:请检查我修改的那些文件 一种) https://code.google.com/p/test-apprtc-demo/source/browse/android/assets/channel.html 在这里,我已经将javascript嵌入到其他人对此感到困惑的地方 https://code.google.com/p/test-apprtc-demo/source/browse/apprtc/index.html 在这里,我使用硬编码的转台服务器详细信息更改了pcConfig变量 b) https://code.google.com/p/test-apprtc-demo/source/browse/android/src/org/appspot/apprtc/AppRTCClient.java 在这里,我修改了私有PeerConnection.IceServer requestTurnServer(String url)私有 LinkedList iceServersFromPCConfigJSON( 字符串pcConfig) C) https://code.google.com/p/test-apprtc-demo/source/browse/android/src/org/appspot/apprtc/AppRTCDemoActivity.java 在这里我修改了 roomInput.setText(“ http://notappspot.com.placeit.toyour.localhost/?r=”); d) https://code.google.com/p/test-apprtc-demo/source/browse/android/src/org/appspot/apprtc/GAEChannelClient.java 在这里我没有做任何修改webView.loadUrl(“ file:///android_asset/channel.html”); // 该文件 步骤4:现在Apprtcdemo已构建/发布并在我的Android中运行 电话,同时我在WebRTC服务器中与 Google Chrome最新版本 第5步:当Android和Google Chrome浏览器尝试连接时,没有任何反应 Google chrome显示“正在等待某人加入...。” 在Android上,我有一个绿屏,我自己的相机视图位于顶部 右上角。请有人请指教。这样我才能进行此互连,我为此损失了3个月的时间。编辑:步骤1:启动本地服务器以发出信号,以允许Mobile和Google Chrome握手:$ python dev_appserver.py --host 0.0.0.0 --port 9999 /var/tmp/webrtc-read-only/samples/js/apprtcWARNING 2014-05-30 08:07:49,416 api_server.py:378] Could not initialize images API; you are likely missing the Python "PIL" module.WARNING 2014-05-30 08:07:49,420 simple_search_stub.py:1072] Could not read search indexes from /var/folders/h3/jgrrj7fd35vf0v77xjbhryph0000gn/T/appengine.apprtc.sun/search_indexesINFO 2014-05-30 08:07:49,424 api_server.py:171] Starting API server at: http://localhost:52919INFO 2014-05-30 08:07:49,427 dispatcher.py:182] Starting module "default" running at: http://0.0.0.0:9999INFO 2014-05-30 08:07:49,434 admin_server.py:117] Starting admin server at: http://localhost:8000步骤2:启动PC Google Chrome连接服务器>>INFO 2014-05-30 08:09:34,059 apprtc.py:147] Applying media constraints: {'video': True, 'audio': True}INFO 2014-05-30 08:09:34,070 apprtc.py:473] User 24910306 added to room 12344INFO 2014-05-30 08:09:34,070 apprtc.py:474] Room 12344 has state [24910306-False]INFO 2014-05-30 08:09:34,075 module.py:639] default: "GET /?r=12344 HTTP/1.1" 200 1646INFO 2014-05-30 08:09:34,123 module.py:639] default: "GET /js/adapter.js HTTP/1.1" 304 -INFO 2014-05-30 08:09:34,123 module.py:639] default: "GET /css/main.css HTTP/1.1" 304 -INFO 2014-05-30 08:09:34,124 module.py:639] default: "GET /js/main.js HTTP/1.1" 304 -INFO 2014-05-30 08:09:34,289 apprtc.py:268] User 24910306 connected to room 12344INFO 2014-05-30 08:09:34,290 apprtc.py:269] Room 12344 has state [24910306-True]INFO 2014-05-30 08:09:34,366 module.py:639] default: "POST /_ah/channel/connected/ HTTP/1.1" 200 -INFO 2014-05-30 08:09:34,379 module.py:639] default: "GET /favicon.ico HTTP/1.1" 404 154当时Google Chrome浏览器的日志:This appears to be ChromeInitializing; room=12344.Opening channel.Requested access to local media with mediaConstraints: '{"video":true,"audio":true}'Channel opened.User has granted access to local media.步骤3:开启Android应用程式>>INFO 2014-05-30 08:11:54,693 apprtc.py:147] Applying media constraints: {'video': True, 'audio': True}INFO 2014-05-30 08:11:54,693 apprtc.py:473] User 28334488 added to room 12344INFO 2014-05-30 08:11:54,693 apprtc.py:474] Room 12344 has state [24910306-True, 28334488-False]INFO 2014-05-30 08:11:54,698 module.py:639] default: "GET /?r=12344 HTTP/1.1" 200 1652步骤4:什么都没有发生现在什么都没有发生.....,请查看手机和台式机的屏幕截图,两者都没有做任何事情,就像它在等待什么...。 最佳答案 经过大量讨论,尝试,错误和记录,我们得出了以下答案来解决问题:不要从内部资产文件夹加载channel.html。然后该网址不再匹配。 (它正在尝试向'file://'+'/_ah/channel/jsapi'而不是'http://server_adress:port'+'/_ah/channel/jsapi'处的服务器发送消息)修复后,双斜杠出现了问题。 appRTCSignalingParameters.gaeBaseHref在末尾包含一个斜杠,但是appRTCSignalingParameters.postMessageUrl在开始处做了一个斜杠,因此程序尝试将其发布到server_adress:port//message,这是不正确的。只需从appRTCSignalingParameters.postMessageUrl中删除/即可解决此问题。旧答案:感谢您的记录。现在我们知道出了什么问题。 if不会触发,因为signalingReady == 0。之所以为零是因为我在第49行发现了一些东西:// Caller is always ready to create peerConnection.signalingReady = initiator;我不知道为什么会这样,它会做什么。同样,实现它的唯一方法发生在函数cc中的第311行。该函数没有日志,console.trace也没有显示来自onChannelMessage的任何内容,因为在第312行,它应该调用onChannelMessage。因此暂时避免它不会起作用,因为没有完成信号发送。因此,我认为解决该问题的方法是在某处将启动器设置为1。例如,您可以在创建新房间的函数中执行此操作,因此脚本直接知道您是发起者,而不加入任何人。希望这能解决您的问题,并请让我及时了解其他结果和问题。(由于这是该站点的演示,因此我也建议您尝试并理解如何建立RTC连接,并从头开始编写所有内容。这将使您的知识更好,调试也将更加容易,因为它是您自己理解的代码)。关于java - WebRTC-带本地服务器的ApprtcDemo不适用于PC浏览器原生的Android,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23949237/ 10-13 02:11