Ciao, sto cercando di realizzare lo streaming di una webcam remota.
Il server gira sul PC a cui è connessa la webcam ed è scritto in Visual C# (anche il client per Windows).
L'applicazione per Android è realizzata con Android Studio. Il mio problema è nella gestione della InputStream per ricevere l'immagine (in formato bytes) dal server.
Posto il codice.
codice:
package com.example.skynet.streamremotewebcam;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class MainActivity extends AppCompatActivity {
// Variabili globali
Socket client = null;
String indIP = "";
int porta = 0;
String msg = "";
byte[] messaggio;
byte[] risposta;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText editText = (EditText) findViewById(R.id.editText);
Button btn = (Button) findViewById(R.id.button);
final ImageView image = (ImageView) findViewById(R.id.Image);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
while (true) {
indIP = editText.getText().toString();
porta = 11000;
msg = "1";
messaggio = msg.getBytes();
new Thread(new Runnable() {
@Override
public void run() {
try {
client = new Socket(indIP, porta);
OutputStream out = client.getOutputStream();
out.write(messaggio);
InputStream in = client.getInputStream();
int risp = in.read(risposta);
Bitmap bmp = BitmapFactory.decodeByteArray(risposta, 0, risposta.length);
image.setImageBitmap(bmp);
} catch (Exception ex) {
Toast.makeText(MainActivity.this, "Si è verificato un errore ", Toast.LENGTH_LONG).show();
}
}
}).start();
}
}
});
}
}
Quando lancio l'applicazione e premo sul tasto di connessione, il server riceve la richiesta ed invia l'immagine, ma l'applicazione Android si chiude senza dare errore. Potete aiutarmi? Grazie!