Domanda

Sto scrivendo un lettore video di base in Flash CS5 e Actionscript 3. Per questo lettore di base, allego il mio NetStream alla mia NetConnection, quindi chiamare il metodo .play () del flusso per iniziare il caricamento. Anche se voglio i metadati e per il flusso di iniziare il buffering, non voglio per iniziare a giocare subito, così ho subito chiamare il metodo .pause () del flusso. Purtroppo, quando mi fermo subito, evento onMetaData del cliente di mio flusso non è sempre chiamato, quindi non necessariamente ottenere il tempo di riproduzione totale del video caricato.

Per risolvere il problema, ho messo la chiamata al metodo "pausa" dentro l'ascoltatore onMetaData, ma a volte il mio video avrò giocato un po 'prima di riceverlo di metadati, e continuerà pertanto a giocare fino a quando lo fa.

C'è un buon modo per fermare il mio flusso da gioco, e ancora ottenere la mia metadati video?

È stato utile?

Soluzione

Bene, ecco un modo poco accurato di pensare in modo diverso ... Non attaccare l'oggetto video al oggetto flusso subito. Avviare il flusso di gioco pur mostrando una "Please Wait" visiva senza essere visualizzato l'oggetto del video. Nel vostro ascoltatore onMetaData, vedere se è stato memorizzato un periodo precedentemente. In caso contrario, assumere questa è la prima chiamata a onMetaData, conservare la durata, la riproduzione pausa, di cercare il flusso a 0, quindi fissare l'oggetto del video.

L'utente vedrà una "Please Wait" solo per un secondo, poi apparirà il video, in pausa e pronto per essere giocato con i suoi tempi di durata come previsto. L'utente sarà completamente all'oscuro che il flusso ha giocato in avanti un po 'mentre erano in attesa.

Altri suggerimenti

Si dovrebbe chiamare pausa quando l'evento NetStatusEvent.STATUS NetStream.Play.Start viene licenziato.

Aggiornamento:

Per i flussi molto brevi (ad esempio buffer> duration) NetStream.Play.Start rischia di essere licenziato poco prima della richiamata onMetaData.

Prima di mettere in pausa il NetStream.Play.Start, è stato fornito di controllo se metadati, se non non fermarsi dritto, ma onMetaData vi aspettano per pausa (solo impostare un flag, per esempio pauseOnMetaData = true).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top