WebRTC未为视频创建IceCandidates

问题描述 投票:0回答:1

[在一个Android应用上,我正在尝试建立webRTC连接。

当我是被叫方时,我从套接字连接中收到了足够数量的IceCandidate用于视频和音频。创建我的IceCandidate时,它们的数量要少得多。大约创建了6个,它们全部用于音频。

从日志消息中,我看到连接成功,并且音频正在双向传输,我也设法将视频发送给呼叫者,但是我无法接收呼叫者的视频流。我想这与无法创建足够的IceCandidate发送到套接字连接有关。有什么想法吗?

java android kotlin webrtc webrtc-android
1个回答
0
投票

也许不是很理想,但是以下解决了我的问题。

首先,可以减少IceCandidate的数量。在我这一边创建IceCandidate的过程中,sdpMid字段仍然不包含视频值-我从套接字连接-接收sdpMidIceCandidate键的视频和音频值。

我要做的就是用以下方法设置连接后再次触摸我的视图。

我浏览了这些herehere

private void updateVideoViews(final boolean remoteVisible) {
    activity.runOnUiThread(() -> {
        ViewGroup.LayoutParams params = localVideoView.getLayoutParams();
        ViewGroup.LayoutParams params2 = remoteVideoView.getLayoutParams();
        if (remoteVisible) {
            params.height = dpToPx(100);
            params.width = dpToPx(100);

            params2.height = dpToPx(100);
            params2.width = dpToPx(100);
        } else {
            params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
            params2 = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        }
        localVideoView.setLayoutParams(params);
        remoteVideoView.setLayoutParams(params2);
    });
}

public int dpToPx(int dp) {
    DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
    return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
}
© www.soinside.com 2019 - 2024. All rights reserved.