09.02.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!