2012-06-29 8 views
6

I file m38u vengono trasmessi in streaming su un canale TV in diretta. Ho provato ad aprire questi file (dato che sono solo una lista di file con il tipo di supporto "MPEG/TS") e ne costruiscono una playlist. Ma le transizioni tra i video sono cattive, si interrompe per un secondo o due prima di iniziare il prossimo video.Guida su come trasmettere file m38u all'app Metro Style (WinRT)

Non mi interessa scrivere del codice lato server per risolvere questo problema, ma ho bisogno di una guida.

risposta

0

Io non so come si imposta il tuo playlist, ma credo che questo è come si esegue questa operazione:

  1. Hai un MediaElement
  2. Per sottoscrivere evento MediaElement.MediaEnded
  3. È analizzare il file m38u e impostare il flusso pugno dall'elenco su MediaElement.Source.
  4. Gestisci MediaElement.MediaEnded e ogni volta che imposti il ​​flusso successivo dall'elenco.

È vero? In caso affermativo, il problema è un passaggio 4. Ogni volta che si imposta una nuova origine, MediaElement richiede al flusso da server e buffer almeno qualcosa per avviare la visualizzazione del video. Immagino sia per questo che vedi transizioni di 3 secondi. Ecco come è necessario risolvere questo:

  1. Si ha lo stesso MediaElement.
  2. È necessario implementare sulla propria interfaccia IRandomAccessStream, che può scaricare un flusso in memoria (se non è veramente enorme) o su disco, o semplicemente un flusso di buffer con dimensioni del buffer specifiche.
  3. Analizza il file m38u, inizializza prima il tuo IRandomAccessStream e lo imposta come sorgente.
  4. Quando ad esempio il primo video viene eseguito al 90% del tempo, è necessario inizializzare il secondo stream dalla playlist, avviare il download con IRandomAccessStream.
  5. Quando MediaElement.MediaEnded sarà licenziato - avrete tamponata flusso, che è pronto per MediaElement, quindi è sufficiente impostare flusso dal punto 4.
+0

ho provato a farlo con i file locali, ha dato io stesso le prestazioni di transizione lente – Ateik

+0

file locali a volte può essere anche lento. Prova ad usare la memoria. Se questo non funziona, suppongo che dovrai combinarli sul server per l'utente. – outcoldman

Problemi correlati