微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebRTC Android,无法得到我应该做的事情?

我正在与WebRTC合作制作一个可在两部Android手机之间工作的基本视频通话应用程序,我已经搜索了大约10天以上,我已经了解了有关Android方面的一切,但我真的无法在网络上获取它侧面,信号,转向和STUN.不幸的是,我不是一个网络人(至少现在不是),我对如何处理服务器设置非常困惑.我甚至不知道何时使用什么和为什么.让故事更短,我需要的是:

我需要一个路线图来继续进行服务器设置.
先感谢您.

更新:
后端已经实现,它似乎正在工作因为我没有任何问题接收语音,我也收到包含视频和音频的MediaStream,但没有显示视频.

private void gotRemoteStream(MediaStream stream) {
    //we have remote video stream. add to the renderer.
    Log.d("KingArmstring", "gotRemoteStream: 1 stream == null" + String.valueOf(stream == null));
    Log.d("KingArmstring", "the value of the received stream: " + String.valueOf(stream));
    final VideoTrack videoTrack = stream.videoTracks.get(0);
    Log.d("TAG", "gotRemoteStream: we get here");
    runOnUiThread(() -> {
        try {
            Log.d("TAG", "we get here");
            remoteRenderer = new VideoRenderer(new VideoRenderer.Callbacks() {
                @Override
                public void renderFrame(VideoRenderer.I420Frame i420Frame) {
                    Log.d("TAG", "renderFrame: we get here");
                }
            });
            remoteVideoView.setVisibility(View.VISIBLE);
            videoTrack.addRenderer(remoteRenderer);
        } catch (Exception e) {
            e.printstacktrace();
        }
    });

}

解决方法:

我在Android和网络上玩过webRTC.在这些项目的帮助下,我能够创建自己的项目:

> https://github.com/pchab/ProjectRTC
> https://github.com/pchab/AndroidRTC

我建议运行这些项目.成功完成后,您可以尝试更改代码以满足您的需求.现在我将解释有关TURN和STUN的一些细节.

> STUN – 这是一种了解你真正的ip的方法.如果您使用带有wifi的手机,那么您将拥有如下信息:192.168.1.14.这是内部ip.你真正的ip是别的东西.你需要像google这样的服务器来告诉你你真正的ip是什么.尝试在谷歌搜索中输入什么是我的IP,你会发现它与你在ifconfig中看到的不同.
> TURN – 这是语音/视频数据流的中继.由于某些原因,一些蜂窝载波切断语音/视频数据会发生什么,你可以做的就是使用TURN,你将数据发送到TURN并将其传输到另一侧.
>信令 – 这是一方呼叫另一方的方式.假设你有两个想要通信的人,他们需要一种在呼叫开始前发送通信数据的方法. webRTC没有给你一个机制.它给你一个json,你需要一个人把它发送给第二个人.我提供的链接使用socket.io,但还有其他实现,如FCM.旅行的数据是第一个人,他想要使用的密码,以及类似的东西.第二个人需要发送接受响应并开始语音通话.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐