Android Одноранговая передача видео с использованием socket.io - PullRequest
1 голос
/ 14 марта 2020

Я пытаюсь реализовать одноранговую передачу видео. Итак, что я сделал

FileInputStream input = new FileInputStream(new File(UPLOAD_FILE_PATH));
byte[] fileArray = new byte[4095];
int byteSend;
while((byteSend = input.read(fileArray)) != -1) {
            //System.out.println(String.valueOf(fileArray));
            StringBuffer content = new StringBuffer();
            content.append(new String(fileArray));
            JSONObject obj = new JSONObject();
            obj.put("id",i++);
            obj.put("FileArrray",content);
            obj.put("byteSend",byteSend);
            mSocket.emit("mp4", obj);
            byteSendTracker = byteSendTracker+byteSend;
            System.out.println("send"+Arrays.toString(fileArray));
           // output.write(fileArray,0,byteSend);
            Thread.sleep(10);
           }
   output.flush(); 
   input.close(); 

Итак, что я сделал, это отправил этот FileArrray в виде строкового буфера на узел socket.io и из socket.io на другой подключенный клиент

socket.on("mp4",function(data){
   console.log(data.id);
    socket.broadcast.emit("getFile",data);
});

, затем на приемники сторона, я просто пишу файл, как показано ниже:

JSONObject obj = new JSONObject(String.valueOf(args[0]));
output.write(obj.getString("FileArrray").getBytes(),0,Integer.parseInt(obj.getString("byteSend")));

я пытался отправить 240 КБ видео mp4, когда он получил загруженный файл поврежден. Может ли кто-нибудь указать мне правильное направление, чтобы сделать это.

...