Удаленное видео Agora.io пустое. работает только звук. Все на месте работает - PullRequest
0 голосов
/ 27 мая 2020

потратили последние 15 часов, пытаясь найти способ исправить это, но, к сожалению, не нашли его, любая помощь будет оценена.

Extra info: local video n audio works, even remote audio. But not remote video.


Stracktrace:

спойлер !!. трассировка стека очень большая !!!!


05/27 22:56:36: Launching 'REmote_ctrl.app.Slave' on Wingtech 2014818.
$ adb shell am start -n "com.satyamedh.slave/com.satyamedh.slave.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 6721 on device 'wingtech-2014818-192.168.1.21:5555'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.

отдых в https://pastebin.com/GvB64q5t

спросите меня любой код, и я отредактирую тело.

изменить: одно из двух действий:

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;

import io.agora.rtc.Constants;
import io.agora.rtc.IRtcEngineEventHandler;
import io.agora.rtc.RtcEngine;
import io.agora.rtc.video.VideoCanvas;
import io.agora.rtc.video.VideoEncoderConfiguration;

........ отдых в https://pastebin.com/UDf2inMJ

1 Ответ

1 голос
/ 28 мая 2020

Когда вы вносите изменения в пользовательский интерфейс, вы должны обязательно делать это в потоке пользовательского интерфейса. В вашем случае вы вызываете метод setupRemoteVideo(). Убедитесь, что вы делаете это внутри потока пользовательского интерфейса. Вот как это сделать:

@Override 
public void onFirstRemoteVideoDecoded(final int uid, int width, int height, int elapsed) { 
    runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
            setupRemoteVideo(uid);
        }
    }); 
}

Вы также можете взглянуть на этот пример приложения для справки: https://github.com/AgoraIO/Basic-Video-Call/blob/5a1433db49010f07e08b52f8f7913381c727b3a5/One-to-One-Video/Agora-Android-Tutorial-1to1/app/src/main/java/io/agora/tutorials1v1vcall/VideoChatViewActivity.java#L98

...