Ciclo di vita dell'oggetto MediaPlayer

Dal momento in cui crei l'istanza MediaPlayer al momento in cui la richiami (riutilizzi o rimuovi), questa istanza completa una serie di transizioni tra stati.

Alcune operazioni sono consentite solo quando il lettore si trova in uno stato particolare. Ad esempio, la chiamata a play in IDLE non è consentita. Puoi chiamare questo stato solo dopo che il lettore ha raggiunto lo stato PREPARED .

Per lavorare con gli stati:

  • È possibile recuperare lo stato corrente dell'oggetto MediaPlayer con MediaPlayer.getStatus.

    PlayerState getStatus() throws IllegalStateException;
    
  • L’elenco degli stati è definito in MediaPlayer.PlayerState.

Diagramma di transizione dello stato per il ciclo di vita di un'istanza MediaPlayer:

La tabella seguente fornisce ulteriori dettagli:

MediaPlayer.PlayerState Si verifica quando
INATTIVO

L'applicazione ha richiesto un nuovo lettore multimediale chiamando DefaultMediaPlayer.create . Il lettore appena creato è in attesa di specificare un elemento del lettore multimediale. Questo è lo stato iniziale del lettore multimediale.

INIZIALIZZAZIONE

L'applicazione ha chiamato MediaPlayer.replaceCurrentItem e il lettore multimediale è in fase di caricamento.

INIZIALIZZATO

TVSDK: impostazione dell'elemento del lettore multimediale completata.

PREPARAZIONE

L'applicazione ha chiamato MediaPlayer.PrepareToPlay . Il lettore multimediale sta caricando l'elemento del lettore multimediale e le risorse associate.

Suggerimento: Potrebbe verificarsi un buffering del supporto principale.

TVSDK sta preparando il flusso multimediale e sta tentando di eseguire la risoluzione degli annunci e l'inserimento di annunci (se abilitato).

Suggerimento: Per impostare l'ora di inizio su un valore diverso da zero, chiama PrepareToPlay(startTime) con l'ora in millisecondi.

PREPARATO

Il contenuto è preparato e gli annunci sono stati inseriti nella timeline oppure la procedura dell’annuncio non è riuscita. È possibile iniziare il buffering o la riproduzione.

GIOCO

L'applicazione ha chiamato play , quindi TVSDK sta tentando di riprodurre il video. Potrebbe verificarsi un buffering prima che il video venga effettivamente riprodotto.

IN PAUSA

Quando l'applicazione riproduce e mette in pausa il contenuto multimediale, il lettore multimediale passa da questo stato a PLAYING.

SOSPESO

L'applicazione si è allontanata dalla riproduzione, ha spento il dispositivo o ha spento le applicazioni durante la riproduzione o la pausa del lettore. Il lettore multimediale è stato sospeso e le risorse sono state rilasciate. Per continuare, ripristinare il lettore multimediale.

COMPLETO

Il lettore ha raggiunto la fine del flusso e la riproduzione si è arrestata.

RILASCIATO

L'applicazione ha rilasciato il lettore multimediale, che rilascia anche le risorse associate. Non puoi più utilizzare questa istanza

ERRORE

Errore durante il processo. Un errore potrebbe influire anche sulle operazioni che l'applicazione può eseguire in seguito.

SUGGERIMENTO

È possibile utilizzare lo stato per fornire un feedback sul processo (ad esempio, un’icona che ruota in attesa della modifica dello stato successivo) o per effettuare il passaggio successivo durante la riproduzione del file multimediale, ad esempio per attendere lo stato appropriato prima di chiamare il metodo successivo.

Ad esempio:

@Override
public void onStateChanged(MediaPlayer.PlayerState state,
                           MediaPlayerNotification notification) {
   switch (state) {
      // It is recommended that you call prepareToPlay() after receiving
      // the INITIALIZED state.
      case INITIALIZED:
         _mediaPlayer.prepareToPlay();
         break;
      case PREPARING:
         showBufferingSpinner();
         break;
      case PREPARED:
         hideBufferingSpinner();
      .....
    }
}

In questa pagina