Получите видеопоток DJI Tello, используя Java - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь написать приложение java для управления дроном DJI Tello.

Я уже могу отправлять простые команды дрону, используя java. net .DatagramSocket в качестве клиента.
Tello SDK сообщает: imgur/screenshot
В нем говорится, что я должен использовать java. net .DatagramSocket в качестве сервера для получения видео поток. Это моя попытка получить видеопоток:

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class TelloCamera extends Thread {
    private boolean isStreamOn;
    private DatagramSocket serverSocket;
    private byte[] receiveData = new byte[1470];

    public TelloCamera() {
        isStreamOn = true;
    }

    public void run() {
        try {
            serverSocket = new DatagramSocket(11111);
        } catch (SocketException e) {
            e.printStackTrace();
            return;
        }

        while (isStreamOn) {
            receiveData = new byte[1470];
            try {
                DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
                serverSocket.receive(receivePacket);

                String z = new String(receivePacket.getData());
                System.out.println(z);

            } catch (IOException e) {
                e.printStackTrace();
            }
            isStreamOn = false;
        }
        serverSocket.close();
    }

    public boolean isStreamOn() {
        return isStreamOn;
    }

    public void setStreamOn(boolean streamOn) {
        isStreamOn = streamOn;
    }
}

Main:

package tellotest;

public class maintellotest {

    public static void main(String[] args) {

        TelloCommander tello = new TelloCommander();
        tello.sendCommand("command");
        tello.sendCommand("streamon");
        TelloCamera camera = new TelloCamera();
        camera.start();

    }
}

Кто-нибудь знает, почему я не получаю строку, напечатанную на консоли?

...