Autore Topic: Riprodurre video attraverso Intent  (Letto 1060 volte)

Offline VicMay

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • vittorio.maggio97
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Riprodurre video attraverso Intent
« il: 02 Aprile 2013, 16:24:47 CEST »
0
Salve ragazzi, da qualche settimana ho iniziatoa programmare in android fino ad ora per riprodurre qualche video alla pressione del pulsante ho creato un' altra activity con all' interno un VideoView, però questo è scomodo e brutto da vedere allora ho pensato di richiamare il video attraverso un Intent ecco il codice:
Codice (Java): [Seleziona]
protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                 
                Button btnHome=(Button)findViewById(R.id.button1);
                btnHome.setOnClickListener(new OnClickListener(){  
                        @Override  
                        public void onClick(View arg0) {  
                                Intent tostart = new Intent(Intent.ACTION_VIEW);
                                tostart.setDataAndType(Uri.parse("/1app4democracy/res/raw/video.mp4"), "video/*");
                                startActivity(tostart);
               
                        }  
                        });  
Però quando vado a premere il button1 l' applicazione si blocca è da ore che rileggo e lo modifico ma non riesco a farlo funzionare
« Ultima modifica: 02 Aprile 2013, 17:21:44 CEST da VicMay »

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:Riprodurre video attraverso Intent
« Risposta #1 il: 03 Aprile 2013, 09:56:36 CEST »
0
Credo che sia sbagliato l'uri che passi all'intent:

Dovresti ottenere così l'uri:

Codice: [Seleziona]
Uri video = Uri.parse("android.resource://packagename/raw/video.mp4");
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline VicMay

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • vittorio.maggio97
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Re:Riprodurre video attraverso Intent
« Risposta #2 il: 03 Aprile 2013, 13:51:17 CEST »
0
Credo che sia sbagliato l'uri che passi all'intent:

Dovresti ottenere così l'uri:

Codice: [Seleziona]
Uri video = Uri.parse("android.resource://packagename/raw/video.mp4");

Scusa, non ho capito devo sostituire
Codice (Java): [Seleziona]
(Uri.parse("/1app4democracy/res/raw/video.mp4"), "video/*")
con
Codice: [Seleziona]
Uri video = Uri.parse("android.resource://packagename/raw/video.mp4"); 
??

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:Riprodurre video attraverso Intent
« Risposta #3 il: 03 Aprile 2013, 15:14:40 CEST »
0
Scusa, non ho capito devo sostituire
Codice (Java): [Seleziona]
(Uri.parse("/1app4democracy/res/raw/video.mp4"), "video/*")
con
Codice: [Seleziona]
Uri video = Uri.parse("android.resource://packagename/raw/video.mp4"); 
??

Allora,  sostituendo a packagename, il nome del package della tua app, tramite questa istruzione ottieni l'uri del video:
Codice: [Seleziona]
Uri videoUri = Uri.parse("android.resource://packagename/raw/video.mp4");
Dopo di che:

Codice: [Seleziona]
Intent tostart = new Intent(Intent.ACTION_VIEW);
tostart.setDataAndType(videoUri , "video/*");
startActivity(tostart);
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline VicMay

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • vittorio.maggio97
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Re:Riprodurre video attraverso Intent
« Risposta #4 il: 03 Aprile 2013, 17:11:43 CEST »
0
Citazione
Allora,  sostituendo a packagename, il nome del package della tua app, tramite questa istruzione ottieni l'uri del video:
Codice: [Seleziona]
Uri videoUri = Uri.parse("android.resource://packagename/raw/video.mp4");
Dopo di che:

Codice: [Seleziona]
Intent tostart = new Intent(Intent.ACTION_VIEW);
tostart.setDataAndType(videoUri , "video/*");
startActivity(tostart);
Ok allora avevo fatto bene, però l' applicazione si blocca ugualmente

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:Riprodurre video attraverso Intent
« Risposta #5 il: 03 Aprile 2013, 17:30:11 CEST »
0
Il problema potrebbe essere il fatto che si tratta di una risorsa interna del package.

Mi spiego meglio: dalla tua app è fattibile ottenere il video e farlo riprodurre. Però le altre app (chiamate tramite intent) non vi possono accedere.

Potresti quindi salvarla in una cartella nella memoria interna o nella SD prima di avviarla tramite intent, e passare il percorso in cui hai posizionato il video.
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline VicMay

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • vittorio.maggio97
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Re:Riprodurre video attraverso Intent
« Risposta #6 il: 03 Aprile 2013, 17:38:20 CEST »
0
ah ok capito ma c'è qualche modo per far partire il video senza averlo già sul cellulare in modo che quando l' applicazione sarà sul play store gli utenti che la scaricano possano vedere il video?

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:Riprodurre video attraverso Intent
« Risposta #7 il: 03 Aprile 2013, 19:49:24 CEST »
0
Devi hostarlo da qualche parte. O su un tuo server o su qualche spazio pubblico (ad esempio su un servizio Cloud come Dropbox che fornisce un link diretto ai file pubblici).

Dopo di che, avvii la comunicazione dall'app e inizi il download.
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline VicMay

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • vittorio.maggio97
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Re:Riprodurre video attraverso Intent
« Risposta #8 il: 03 Aprile 2013, 22:26:45 CEST »
0
Ok Grazie quindi non c' è nessun modo per far partire il video se si è offline? A parte quello di creare una nuova activity e inserirci una videoView
« Ultima modifica: 03 Aprile 2013, 22:28:56 CEST da VicMay »

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:Riprodurre video attraverso Intent
« Risposta #9 il: 04 Aprile 2013, 09:45:05 CEST »
0
Come ho detto prima, è sufficiente che tieni il video nella tua cartella di risorse raw, e prima di aprirlo lo salvi in una directory locale. Le volte successive controllerai se già esiste, in caso negativo, ricopierai di nuovo il file.

Così facendo ti è possibile aprirlo anche tramite Intent
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline VicMay

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • vittorio.maggio97
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Re:Riprodurre video attraverso Intent
« Risposta #10 il: 04 Aprile 2013, 14:37:30 CEST »
0
Come ho detto prima, è sufficiente che tieni il video nella tua cartella di risorse raw, e prima di aprirlo lo salvi in una directory locale. Le volte successive controllerai se già esiste, in caso negativo, ricopierai di nuovo il file.

Così facendo ti è possibile aprirlo anche tramite Intent
Ok mi potresti fornire una lucidazione su come salvare il video in una directory locale, grazie per l' aiuto ma come ho già detto è solo da qualche settimana che inizio a programmare in android

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:Riprodurre video attraverso Intent
« Risposta #11 il: 04 Aprile 2013, 14:47:01 CEST »
0
Il metodo esatto non lo so nemmeno io. Andando a logica devi seguire questi passi:

1) Ottenere l'uri del file. Il codice te l'ho postato prima.
2) Creare un oggetto File a partire da quell'uri
Codice: [Seleziona]
File file = new File(uri);3) Salvarlo dove preferisci. Ti consiglio questa guida http://developer.android.com/training/basics/data-storage/files.html


Un click sul pulsante "Thanks" è sempre gradito :-)

Offline VicMay

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • vittorio.maggio97
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Re:Riprodurre video attraverso Intent
« Risposta #12 il: 04 Aprile 2013, 19:37:11 CEST »
0
Ok grazie appena lo provo ti faccio sapere  :-)