Autore Topic: Aprire canzone random dalla sd  (Letto 1133 volte)

Offline Imran3

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Aprire canzone random dalla sd
« il: 17 Settembre 2012, 16:13:29 CEST »
0
ciao a tutti
sto sviluppando una app in android e sono un pò in difficolta, vi spiego :
la mia app quando riceve un input dovrebbe aprire un file mp3 dalla sd, questo file mp3 deve essere selezionato dalla cartella sd/music in modo random, cioè non si sa a priori quale mp3 verrà riprodotto, il problema è che non ho idea di come implementare la funzione che mi scelga la canzone casualmente
potreste gentilmente aiutarmi
grazie in anticipo

Offline Imran3

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Re:Aprire canzone random dalla sd
« Risposta #1 il: 18 Settembre 2012, 18:15:39 CEST »
0
allora ho "risolto" una parte del problema, cioè
- ora riesco a accedere alla cartella sdcard/Music e creare un array dei file contenuti in esso e estrarne uno casualmente con un indice random, lo faccio con questa funzione :
Codice (Java): [Seleziona]
public File creaArray()
        {
                Random r=new Random();
                File percorso=new File("/sdcard/Music");
                File[] lista=percorso.listFiles();
                int indice=(r.nextInt(lista.length));
                Toast.makeText(Main.this, "Estratto :  "+lista[indice], Toast.LENGTH_SHORT).show();
                return lista[indice];
        }
Questa funzione mi ritorna il file che viene estratto casualmente, e finche penso sia giusto
Poi quando l'utente preme sul bottone "play" faccio quanto segue :
Codice (Java): [Seleziona]
public void play()
        {
                Toast.makeText(Main.this, "Avviato metodo play() ", Toast.LENGTH_SHORT).show();
                try
                {
                        File f=creaArray();
                        String path=f.getPath();
                        mpSong = new MediaPlayer();//istanzio Media Playes
                       mpSong.setDataSource(path);//setto il path per la canzone
                       mpSong.prepare();
                       mpSong.start();
                       Toast.makeText(Main.this, "Playing", Toast.LENGTH_SHORT).show();
                }catch(Exception e){e.printStackTrace();
                Toast.makeText(Main.this, "errore", Toast.LENGTH_SHORT).show();}
        }
il problema è che la canzone non viene riprodotta in alcun modo
potreste gentilmente darmi una mano
grazie

Offline supertommino

  • Utente junior
  • **
  • Post: 77
  • Respect: +12
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    supertommino
Re:Aprire canzone random dalla sd
« Risposta #2 il: 18 Settembre 2012, 20:08:14 CEST »
0
Alzato il volume?
 :-)

Offline Imran3

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
R: Aprire canzone random dalla sd
« Risposta #3 il: 18 Settembre 2012, 20:14:28 CEST »
0
Ovvio che si :)
Ho anche provato a usare il metodo MediaPlayer.create(...) , ho messo l mp3 nella cartella raw elemento funziona, la canzone parte
Io penso ci sia qualcosa di sbagliato quando carica la canzone(setDataSource(path)), secondo me sbaglio qualcosa nel path

Inviato dal mio LG-P880 con Tapatalk 2

Offline acrive82

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • luigicandita
    • Mostra profilo
  • Dispositivo Android:
    HTC Tattoo, Samsung Galaxy Tab 10.1v, Samsung Galaxy S2, LG Optmius L5
  • Sistema operativo:
    Windows 7
Re:Aprire canzone random dalla sd
« Risposta #4 il: 28 Settembre 2012, 15:34:21 CEST »
0
Sei sicuro che il percorso sia "/sdcard/Music" e non "/mnt/sdcard/Music"?
E poi.. ListFiles ti torna anche le directory. Controlla che sia effettivamente un file MP3.
« Ultima modifica: 28 Settembre 2012, 15:35:56 CEST da acrive82 »