Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...
Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...
Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
4.4 – Il client RPCClient<br />
<strong>Sviluppo</strong> <strong>di</strong> <strong>una</strong> <strong>piattaforma</strong> <strong>per</strong> <strong>lo</strong> <strong>streaming</strong> multime<strong>di</strong>ale in ambiente Android<br />
Questa Activity è il fulcro <strong>di</strong> tutta l'applicazione. Esso ha il compito <strong>di</strong> gestire<br />
<strong>lo</strong> <strong>streaming</strong> attraverso l'interfaccia su cui si è deciso <strong>di</strong> o<strong>per</strong>are; inoltre al fine <strong>di</strong><br />
rendere il progetto funzionante anche in assenza <strong>di</strong> HandoffClient, è stato<br />
pre<strong>di</strong>sposto <strong>per</strong> farne le veci, incorporando la procedura <strong>di</strong> avvio del<strong>lo</strong> <strong>streaming</strong>.<br />
All'atto della creazione recu<strong>per</strong>a gli intent passati dall'attività <strong>di</strong> interfaccia<br />
mainActivity e avvia <strong>una</strong> procedura <strong>di</strong> sincronizzazione col server al<strong>lo</strong> scopo <strong>di</strong><br />
settare la comunicazione RTP tra i due end-point.<br />
Il settaggio avviene me<strong>di</strong>ante uno scambio <strong>di</strong> messaggi attraverso due socket TCP:<br />
quella del server, conosciuta a priori dall'utente e inserita nella mainActivity, e quella<br />
del client, creata <strong>di</strong>namicamente e “registrata” dal server me<strong>di</strong>ante l'invocazione dei<br />
meto<strong>di</strong> adatti <strong>per</strong> la conoscenza dei parametri fondamentali. Oggetto del messaggio è<br />
la risorsa richiesta dall'utente finale.<br />
private void sincronize(String ip, //In<strong>di</strong>rizzo server<br />
int port, //porto d'ascolto del server<br />
String data) // risorsa richiesta<br />
throws UnknownHostException, IOException {<br />
}<br />
Log.e("RTPClient *80*", "sincronizzo client/server");<br />
Socket sysok = new Socket(InetAddress.getByName(ip), port);<br />
Log.e("TEST RTPClient Riga 505","Richiesta contenuto multime<strong>di</strong>ale:"<br />
+ data);<br />
BufferedReader bf = new BufferedReader(new<br />
InputStreamReader(sysok.getInputStream()));<br />
BufferedWriter bw = new BufferedWriter(new<br />
OutputStreamWriter(sysok.getOutputStream()));<br />
String msg = "SET#" + data;<br />
bw.write(msg + "\n", 0, msg.length() + 1);<br />
bw.flush();<br />
if (bf.readLine().equals("OK"))<br />
Log.w("TEST RTPClient Riga 504", "Server settato(warm-up)");<br />
else<br />
Log.e("TEST RTPClient Riga 504", "Server error(warm-up)");<br />
sysok.c<strong>lo</strong>se();<br />
Log.e("TEST RTPClient Riga 504", "SocketHandshake chiusa");<br />
67