Autore Topic: Far leggere a player predefinito byte recuperati da socket stream  (Letto 680 volte)

Offline michnied

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy fame
  • Sistema operativo:
    windows xp/ Fedora
0
Ciao a tutti, sono nuovo di programmazione Android, avrei un problema.
Avrei bisogno di far leggere ad un player video predefinito del dispositivo , dei dati che ho recuperato da socket e messo in un array di byte locale!
Come posso fare affinchè il player effettui la lettura da questo array?
Inoltre dovrei tener traccia del numero di byte letti dal player in modo tale da "ricaricare" il mio array locale una volta che sono stati letti un tot di byte, la lettura del player "consuma" il mio buffer?
Grazie

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Far leggere a player predefinito byte recuperati da socket stream
« Risposta #1 il: 05 Ottobre 2013, 01:28:31 CEST »
0
La documentazione della classe di MediaPlayer:

MediaPlayer | Android Developers

non riporta nessun metodo setDataSource con la lettura dei dati grezzi in byte, al massimo puoi usare un oggetto che deriva dalla classe FileDescriptor. Francamente ignoro il motivo di leggere direttamente un socket, MediaPlayer è in grado di comunicare con diversi protocolli di trasporto direttamente.
adb logcat | tee /tmp/logcat | grep TAG

Offline michnied

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy fame
  • Sistema operativo:
    windows xp/ Fedora
Re:Far leggere a player predefinito byte recuperati da socket stream
« Risposta #2 il: 05 Ottobre 2013, 11:21:11 CEST »
0
... mi serve perchè sto facendo uno studio sul power consuming durante lo streaming  video e avrei bisogno di modificare alcuni parametri dei vari buffer!
Qualcuno mi sa dire allora, in caso di lettura streaming, in che modo (o dove) vengono bufferizzati i byte?Dove va a leggere il lettore predefinito? Ha un proprio buffer sul quale posso provare a intervenire?
Grazie mille nuovamente per l'interessamento.

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Far leggere a player predefinito byte recuperati da socket stream
« Risposta #3 il: 05 Ottobre 2013, 11:44:40 CEST »
0
La classe MediaPlayer ha un osservatore per sapere lo stato di buffering.

MediaPlayer.OnBufferingUpdateListener | Android Developers

fornisce poche informazioni, per conoscere i dettagli di implementazione bisogna esaninare i sorgenti di Android:

http://androidxref.com/source/xref/frameworks/base/media/java/android/media/MediaPlayer.java
http://androidxref.com/source/xref/frameworks/wilhelm/tests/native-media/jni/native-media-jni.c

la classe è molto complessa e utilizza una libreria nativa per accedere alle funzioni a basso livello del hardware. Dipende dalla versione di Android, può interfacciarsi alla libreria OpenMAX se il SoC ha le accelerazioni hardware.


adb logcat | tee /tmp/logcat | grep TAG

Offline michnied

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy fame
  • Sistema operativo:
    windows xp/ Fedora
Re:Far leggere a player predefinito byte recuperati da socket stream
« Risposta #4 il: 05 Ottobre 2013, 19:13:47 CEST »
0
Esaminando i sorgenti ho trovato quello che potrebbe fare al caso mio, ti farò sapere se riuscirò a risolvere.
Grazie dell'aiuto.