Я пытаюсь реализовать приложение, которое отправляет живое видео с дрона на мой собственный сервер rtmp. Когда я использую LiveStreamManager из DJI Mobile SDK, он выдает код ошибки -3, и поток не запускается. Как я могу использовать этот API?
Мое приложение успешно регистрируется, я могу настраивать миссии и получать телеметрию с дрона. Но когда я пытаюсь использовать LiveStreamManeger, он не работает, несмотря ни на что. Даже за счет реализации точно так, как это реализовано в Образец кода не работает. В документации по API DJI, похоже, также не хватает нескольких методов.
Вот моя реализация
private void setupLiveStream() {
DJISDKManager.getInstance().getLiveStreamManager().registerListener(listener);
initListener();
DJISDKManager.getInstance().getLiveStreamManager().setAudioStreamingEnabled(false);
DJISDKManager.getInstance().getLiveStreamManager().setVideoSource(LiveStreamManager.LiveStreamVideoSource.Primary);
liveURL = "rtmp://mycustomrtmp.com/drone/live_testDJI";
}
private void initListener() {
listener = new LiveStreamManager.OnLiveChangeListener() {
@Override
public void onStatusChanged(int i) {
setResultToToast("status changed : " + i);
}
};
}
private void StartStreaming(){
if (!isLiveStreamManagerOn()) {
return;
}
if (DJISDKManager.getInstance().getLiveStreamManager().isStreaming()) {
setResultToToast("already started the Stream!");
return;
}
new Thread() {
@Override
public void run() {
DJISDKManager.getInstance().getLiveStreamManager().setLiveUrl(liveURL);// + vehicleID);
int result = DJISDKManager.getInstance().getLiveStreamManager().startStream();
DJISDKManager.getInstance().getLiveStreamManager().setStartTime();
setResultToToast("LiveStream Start: " + result +
"\n isVideoStreamSpeedConfigurable:" + DJISDKManager.getInstance().getLiveStreamManager().isVideoStreamSpeedConfigurable() +
"\n isLiveAudioEnabled:" + DJISDKManager.getInstance().getLiveStreamManager().isLiveAudioEnabled());
}
}.start();
}
Я всегда получаю код возврата -3. Когда я использую образец кода, я могу заставить его работать. Единственное отличие состоит в том, что я вызываю функцию isVideoStreamSpeedConfigurable (), она возвращает true в моем коде и false в образце кода. Но я не видел, где можно поставить эту штуку на false. Как мне реализовать LiveStreamingManager?