gpt4 book ai didi

android - WebRTC Android,无法得到我应该做什么?

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:44 43 4
gpt4 key购买 nike

我正在使用 WebRTC 制作一个可在两部 Android 手机之间运行的基本视频通话应用程序,我已经搜索了大约 10 多天,我已经了解了有关 Android 方面的所有内容,但我真的无法理解在 web 端,信号,TURN 和 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。在这些项目的帮助下,我能够制作自己的项目:

我的建议是运行这些项目。成功后,您可以尝试更改代码以满足您的需求。下面我将解释一些关于 TURN 和 STUN 的细节。

  1. STUN - 这是一种了解您的真实 IP 的方法。如果您使用带有 wifi 的手机,将会发生的情况是您将拥有如下 ip:192.168.1.14。这是内部ip。您的真实 IP 是另一回事。你需要像谷歌这样的服务器来告诉你什么是你的真实 IP。尝试在谷歌搜索中输入 what is my ip,你会发现它与你在 ifconfig 中看到的不同。
  2. TURN - 这是语音/视频数据流的中继。发生的情况是某些蜂窝运营商出于某种原因切断了语音/视频数据,您可以使用 TURN 来克服这个问题,您将数据发送到 TURN,然后将其传输到另一端。
  3. 信令 - 这是一方调用另一方的方式。假设您有 2 个想要通信的人,他们需要一种在通话开始之前发送通信数据的方法。 webRTC 没有给你一个机制。它给你一个 json,你需要一个人将它发送给第二个人。我提供的链接使用 socket.io,但还有其他实现,如 FCM。传输的数据是第一个人的 ip、他想使用的 codac 等等。第二个人需要发送接受响应,语音通话开始。

关于android - WebRTC Android,无法得到我应该做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50548839/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com