2010-01-13 3 views
41

Sono confuso su come VideoView può essere utilizzato per riprodurre video: da un file locale, come download progressivo e streaming.Utilizzo di VideoView per lo streaming o il download progressivo del video

This example lavoro per me (su 1.5 e 2.0 almeno) scaricando il file e riproducendolo localmente.

Ma è necessario scaricare il video prima della riproduzione: è possibile riprodurre il video come download progressivo, o in streaming, semplicemente utilizzando setVideoPath o setVideoURI, come in VideoViewDemo negli esempi API?

Il codice VideoViewDemo suggerisce l'utilizzo di setVideoURI per lo streaming, ma non sono chiaro quale tipo di URL dovrei utilizzare. Qualcuno ha un URL di esempio per un video che può essere trasmesso all'emulatore Android utilizzando il codice VideoViewDemo?

È possibile utilizzare il download progressivo con VideoViewDemo? Viene visualizzato un messaggio "mi dispiace, questo video non può essere riprodotto" utilizzando setVideoPath con URL che funzionano correttamente con l'esempio del blog collegato sopra. (Si tratta di un problema nell'emulatore? Ho provato 1.5 e 2.0)

Ho trovato molti esempi e documentazione online ma, finora, nulla che risponda veramente a questa domanda.

+0

C'è un buon tutorial [qui] (http://innovator.samsungmobile.com/cms/cnts/knowledge.detail.view.do?platformId=1&cntsId=9540), che guida passo dopo passo ed elenca note problemi e limitazioni –

+0

@MosheKravchik - il collegamento non funziona più. Qualsiasi aggiornamento? – JohnnyLambada

+0

@Sam Dutton: sei in grado di riprodurre video in modo progressivo (download e riproduzione paralleli)? Per verificare se lo streaming progressivo funziona con il video, sto scaricando metà dei video e riproducendo metà video scaricato, ma questo approccio dice che lo stesso errore del tuo ** non può riprodurre questo video **. Quindi, come facciamo a trasmettere video in progressivamente ad Android senza usare VideoView ** setVideoURI ** o ** setVideoPath **? –

risposta

19

è possibile riprodurre video come download progressivo o in streaming, semplicemente utilizzando setVideoPath o setVideoURI, come in VideoViewDemo in campioni API?

Dovrebbe. Funziona sicuramente con MediaPlayer e VideoView è solo un wrapper di circa ~ 200 righe intorno a MediaPlayer e uno SurfaceView.

Il codice VideoViewDemo suggerisce di utilizzare setVideoURI per lo streaming, ma io non sono chiaro che tipo di URL dovrei essere utilizzando.

http:// e rtsp:// può funzionare, se il video è stato codificato correttamente.

Se qualcuno ha un URL di esempio per un video che può essere trasmesso al emulatore Android utilizzando il codice VideoViewDemo?

This video funziona con MediaPlayer, ad eccezione di Nexus One.

EDIT: In realtà, quel collegamento funziona con il Nexus One pure.

+0

Nella pagina seguente è possibile utilizzare diversi file mp4 come URI di test per lo streaming di video Android: http://people.sc.fsu.edu/~jburkardt/data/mp4/mp4.html –

+1

puoi darmi qualche URL per giocare download progressivo.Nel tuo link non riesco a trovare l'url – Sameer

+0

Ho codificato il file per essere progressivamente riproducibile da un URL. Controlla la mia risposta su http://stackoverflow.com/questions/2592816/auto-launch-the-video-player-in-android-from-the-browser-like-an-iphone-does/2593846#2593846 – hnviet

2

Funziona per casi semplici, ma solo quando non è necessario effettuare preparazioni personalizzate per le richieste di ottenere un flusso.

Questo tutorial mostra un esempio di emulazione di manuale di streaming per un audio ma può essere un po 'refactoring per riprodurre video:

http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/

(assicurarsi di utilizzare FileDescriptor durante l'impostazione dataSource, l'API è stato cambiato leggermente da quei tempi).

+1

ho seguito quel blog e funziona solo per i file audio. Non funziona per i file video, per controllare se lo streaming progressivo funziona o meno ho scritto un programma di esempio in cui scaricherà solo metà video e inizierò a riprodurre file video a metà download, questo dà un messaggio di errore che dice ** non può riprodurre questo video **. –

+1

Lo stesso qui. Obsoleto credo. –

+0

Link a blog.pocketjourney.com scaduto – mmaitlen

-4

VideoView possibile trasmettere soltanto i video 3gp, ma vi consiglio questo codice per lo streaming video

public void onCreate(Bundle savedInstanceState){ 
setContentView(R.layout.main); 
String videourl = "http://something.com/blah.mp4"; 
Uri uri = Uri.parse(videourl); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
intent.setDataAndType(uri, "video/mp4"); 
startActivity(intent); 
} 

Or Click here to watch Android Video Streaming Tutorial.

+0

VideoView può supportare molti più formati - http://developer.android.com/guide/appendix/media-formats.html –