Autore Topic: Riprodurre mp4 con VideoView dalla cartella raw  (Letto 1548 volte)

Offline rickyds

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • riccardodesilva
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus S
  • Sistema operativo:
    Ubuntu 11.10, Windows 8
Riprodurre mp4 con VideoView dalla cartella raw
« il: 20 Marzo 2013, 14:55:33 CET »
0
Ciao a tutti,
come da titolo avrei bisogno di riprodurre in una VideoView un filmato mp4 che ho messo nelle risorse dell'applicazione  all'interno della cartella "res/raw".
Il video con cui sto facendo delle prove è visionabile e scaricabile attraverso questo link: http://www.tools4movies.com/dvd_catalyst_profile_samples/Harold%20Kumar%203%20Christmas%20bionic%20hq.mp4

In linea teorica non dovrebbe essere un compito difficile e rovistando tra forum e stackoverflow ho sempre trovato consigliato questo approccio:
Codice: [Seleziona]
VideoView videoView = (VideoView) this.findViewById(R.id.videoView);
MediaController controller = new MediaController(this);
controller.setAnchorView(videoView);
String filename = "android.resource://" + getPackageName() + "/" + R.raw.filmato;
videoView.setMediaController(controller);
videoView.setVideoURI(Uri.parse(filename));
videoView.start();
Dove R.raw.filmato si riferisce chiaramente al video che ho rinominato "filmato.mp4" e che ho messo in "res/raw".

Il risultato di questa operazione però è una bella finestra d'avviso riportante la scritta: "Spiacenti. Impossibile riprodurre il video".

Inizialmente ho pensato che potesse esserci un problema di codec o formato del video, ma quando al posto di:
Codice: [Seleziona]
String filename = "android.resource://" + getPackageName() + "/" + R.raw.filmato;ho inserito il link diretto al file sul web
Codice: [Seleziona]
String filename = "http://www.tools4movies.com/dvd_catalyst_profile_samples/Harold%20Kumar%203%20Christmas%20bionic%20hq.mp4"il video è comparso ed è stato riprodotto perfettamente, il che mi da pensare che non ci siano problemi con il file ma sul modo in cui tento di andare a pescare il video in locale.

Sapreste individuare un errore in quello che ho fatto? Come faccio a riprodurre un video che ho inserito nella cartella "res/raw"?
Se può servire la minSdkVersione che ho impostato nel Manifest è la 15 e il terminale su cui sto facendo il test è un Tablet Mediacom con Android 4.0.3 installato.

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Riprodurre mp4 con VideoView dalla cartella raw
« Risposta #1 il: 20 Marzo 2013, 17:10:57 CET »
0
Codice (Java): [Seleziona]
VideoView videoRock = (VideoView) this.findViewById(R.id.videoView);
Uri uri=Uri.parse("android.resource://"+ getPackageName() + "/" + R.raw.video);
                    videoRock.setVideoURI(uri);
                        videoRock.setMediaController(null);
                        videoRock.start();

prova così. In questo caso non hai il mediacontroller ma nel caso funziona poi ce lo mettiamo dopo..

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:Riprodurre mp4 con VideoView dalla cartella raw
« Risposta #2 il: 20 Marzo 2013, 17:35:59 CET »
0
Prova a usare "setVideoPath(filename)" al posto di "setVideoURI(Uri.parse(filename))".
adb logcat | tee /tmp/logcat | grep TAG

Offline rickyds

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • riccardodesilva
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus S
  • Sistema operativo:
    Ubuntu 11.10, Windows 8
Re:Riprodurre mp4 con VideoView dalla cartella raw
« Risposta #3 il: 21 Marzo 2013, 10:49:49 CET »
0
Codice (Java): [Seleziona]
VideoView videoRock = (VideoView) this.findViewById(R.id.videoView);
Uri uri=Uri.parse("android.resource://"+ getPackageName() + "/" + R.raw.video);
                    videoRock.setVideoURI(uri);
                        videoRock.setMediaController(null);
                        videoRock.start();

prova così. In questo caso non hai il mediacontroller ma nel caso funziona poi ce lo mettiamo dopo..
Prova a usare "setVideoPath(filename)" al posto di "setVideoURI(Uri.parse(filename))".
Grazie iceweasel e elfo83, ho provato entrambe le vostre proposte ma l'esito è lo stesso.
Non so nemmeno come fare ad avere nel logcat un report più dettagliato dell'errore perchè al momento si limita a darmi TAG: MediaPlayer TEXT: Error(100,0).
Qualcuno si è mai imbattuto in una situazione simile?

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Riprodurre mp4 con VideoView dalla cartella raw
« Risposta #4 il: 21 Marzo 2013, 16:57:27 CET »
0
Se stai provando il tuo video sull'emulatore apri AVD manager e nelle proprietà hardware prova ad aggiungere "Audio playback support | yes"

Offline rickyds

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • riccardodesilva
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus S
  • Sistema operativo:
    Ubuntu 11.10, Windows 8
Re:Riprodurre mp4 con VideoView dalla cartella raw
« Risposta #5 il: 21 Marzo 2013, 17:42:14 CET »
0
Purtroppo sto testando l'app direttamente su un Mediacom 910i tramite ADB!

Offline VicMay

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • vittorio.maggio97
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Re:Riprodurre mp4 con VideoView dalla cartella raw
« Risposta #6 il: 02 Aprile 2013, 11:00:29 CEST »
0
Ciao rickyds, volevo chiederti se hai risolto il problema perchè anche a me da lo stesso errore (anche il mio è un file mp4)

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Riprodurre mp4 con VideoView dalla cartella raw
« Risposta #7 il: 02 Aprile 2013, 11:25:10 CEST »
0
Potrebbe essere un problema di encoding del video.
Android Supported Media Formats | Android Developers
« Ultima modifica: 02 Aprile 2013, 11:27:05 CEST da Qlimax »

Offline VicMay

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • vittorio.maggio97
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Re:Riprodurre mp4 con VideoView dalla cartella raw
« Risposta #8 il: 02 Aprile 2013, 11:44:01 CEST »
0
Potrebbe essere un problema di encoding del video.
Android Supported Media Formats | Android Developers

Grazie mille era proprio quello il problema, per convertire il video consiglio FormatFactory, basta selezionare Tutti verso dispositivi mobile --> Android --> Scegliere la risoluzione alla quale si vuole convertire il video
« Ultima modifica: 02 Aprile 2013, 11:51:31 CEST da VicMay »

Offline rickyds

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • riccardodesilva
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus S
  • Sistema operativo:
    Ubuntu 11.10, Windows 8
Re:Riprodurre mp4 con VideoView dalla cartella raw
« Risposta #9 il: 06 Aprile 2013, 18:40:38 CEST »
0
Ciao rickyds, volevo chiederti se hai risolto il problema perchè anche a me da lo stesso errore (anche il mio è un file mp4)
Ciao a tutti. Dopo diversi tentativi sono arrivato alla stessa conclusione di Qlimax e VicMay.
Trattasi esclusivamente di problema di encoding, e lo stesso video riconvertito con FormatFactory funziona.
L'approccio utilizzato per riprodurre il video nella videoView è quindi corretto (tra l'altro la stessa app, testata su un Galaxy Tab 2, funzionava perfettamente).

Grazie della partecipazione

Ciao

R