Спасибо за просмотр вопроса и извините за мой engli sh XD
(используйте Android Studio с JAVA) Как я могу воспроизвести потоковое видео из байтового массива в VideoView или MediaPlayer, у меня есть получен байтовый массив из сокета ZeroMQ, а содержимое байтового массива равно Frame (размер w: 640 h: кодировка 360 base64)
код потока протокола ZeroMQ
public class ZeromQMessageTask extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... strings) {
DataOutputStream dataOutputStream = null;
try{
ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket socket = context.socket(ZMQ.SUB);
socket.subscribe(ZMQ.SUBSCRIPTION_ALL);
socket.connect("tcp://192.168.0.21:8080");
socket.setReceiveTimeOut(5000);
int count = 0;
while (count < 10000){
byte[] datas = socket.recv(0);
count ++;
}
Log.e("socket closed: " , ""+count);
socket.close();
context.term();
}catch (Exception e){
Log.e("socket error: " , e.getLocalizedMessage());
Log.e("socket error: " , e.toString());
}
return "test";
}
}
код сервера (для справки) ps .maybe python код?
context = zmq.Context()
footage_socket = context.socket(zmq.PUB)
footage_socket.bind('tcp://*:{}'.format(PORT))
while True:
try:
for frame in frames:
encoded, buffer = cv2.imencode('.jpg', frame)
jpg_astext = base64.b64encode(buffer)
footage_socket.send(jpg_as_text)
except Exception as e: ...