Autore Topic: Random audio - testo  (Letto 1001 volte)

Offline Nalim

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Random audio - testo
« il: 14 Maggio 2012, 21:19:58 CEST »
0
Ciao a tutti
ho creato un bottone il quale cliccandolo è possibile ascoltare un file audio.
La scelta del file audio è random.

La mia domanda è:

Vorrei collegare ad ogni file audio ascoltato un popup di notifica con un messaggio.
Ogni file audio deve essere collegato ad un messaggio univoco per quel file audio.

Potreste darmi una mano?

Grazie

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Random audio - testo
« Risposta #1 il: 14 Maggio 2012, 22:06:22 CEST »
0
Potresti creare un array di stringhe contenente i messaggi e poi fai cosi:

Codice (Java): [Seleziona]
String[] messaggi = new String[10]; //riempi l'array con i messaggi
Random rnd  = new Random();
Toast.makeText(getApplicationContext(), messaggi[rnd.nextInt(messaggi.length)], Toast.LENGTH_SHORT).show();
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline Nalim

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:Random audio - testo
« Risposta #2 il: 15 Maggio 2012, 16:46:25 CEST »
0
Ma in questo modo l'audio A sarà sempre collegato al testo 1?

A me serve che :

AUDIO A --> testo 1
AUDIO B --> testo 2
AUDIO C --> testo 3


Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Random audio - testo
« Risposta #3 il: 15 Maggio 2012, 17:51:20 CEST »
0
Ma in questo modo l'audio A sarà sempre collegato al testo 1?

A me serve che :

AUDIO A --> testo 1
AUDIO B --> testo 2
AUDIO C --> testo 3

Avevo capito male io XD

Se hai un array di suoni, puoi creare un corrispondente array di stringhe... ancora meglio sarebbe creare una nuova classe che ha come attributi
il suono e il messaggio!  :-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline Nalim

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:Random audio - testo
« Risposta #4 il: 15 Maggio 2012, 19:08:45 CEST »
0
Ciao the baffo, ti ringrazio come prima cosa dell'aiuto che mi stai dando allora ti faccio l'esempio del mio codice:
Codice (Java): [Seleziona]
private MediaPlayer sound;
               
        private final int NUM_SOUND_FILES = 4;         
        private int mfile[] = new int[NUM_SOUND_FILES];
    private Random rnd = new Random();
       
                mfile[0] = R.raw.prova1;  
                mfile[1] = R.raw.prova2;  
                mfile[2] = R.raw.prova3;
                mfile[3] = R.raw.prova4;
               
               
                ImageButton mouthbutton = (ImageButton)findViewById(R.id.bottone5);
                mouthbutton.setOnClickListener(new OnClickListener() {
                   public void onClick(View v) {
                      sound = MediaPlayer.create(activity.this, mfile[rnd.nextInt(NUM_SOUND_FILES)]);
                      sound.seekTo(0);
                      sound.start();                                
                }});


appena clicco il tasto specifico lui mi fa ascoltare l'audio scegliendolo in maniera random dai file che ho indicato (prova1 ... prova4) però mi deve far uscire un toast riferito ai vari file audio che ho indicato in precedenza nel "mfile" perchè ogni mfile ha un suo significato.
Spero di essermi spiegato bene.
Grazie x l'aiuto che mi saprete dare

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Random audio - testo
« Risposta #5 il: 16 Maggio 2012, 10:12:15 CEST »
0
inseme a mFile crei un vettore mMessages cosi:

Codice (Java): [Seleziona]
private String mMess[] = new String[NUM_SOUND_FILES];
Codice (Java): [Seleziona]
//quando crei i suoni crei anche i messaggi

mfile[0] = R.raw.prova1;  
mMess[0] = "ciao";  

mfile[1] = R.raw.prova2;
mMess[1] = "ehi";  
 
mfile[2] = R.raw.prova3;
mMess[2] = "davvero?";  

mfile[3] = R.raw.prova4;
mMess[3] = "si!";  

e poi nel click dell'imageButton crei il toast facendo così!

Codice (Java): [Seleziona]
int num = rnd.nextInt(NUM_SOUND_FILES);
sound = MediaPlayer.create(activity.this, mfile[num]);
Toast.makeText(getApplicationContext(), mMess[num], Toast.LENGTH_SHORT).show();
sound.seekTo(0);
sound.start();  
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline Nalim

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:Random audio - testo
« Risposta #6 il: 16 Maggio 2012, 21:05:11 CEST »
0
ciao thebaffo grazie 1000 adesso funziona, un'ultima cosa vedendo sempre il codice su citato come mai se io premo più di una volta il tasto per la riproduzione l'audio si accavalla uno sopra l'altro? io vorrei che se uno preme il tatso si sente una determinata cosa mentre questa viene riprodotta se io ripremo il tasto si deve stoppare la precedente e si deve avviare quella nuova. come posso fare? poi ho notato che se premo ripetutamente il tasto per la riproduzione l'app va in crash o meglio si blocca tutto (nn si sente più l'audio) e devo uscire dall'app e poi riaprirla x far tornare ad ascoltare l'audio. ciao e grazie per il tuo aiuto

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Random audio - testo
« Risposta #7 il: 16 Maggio 2012, 21:28:09 CEST »
0
Per risolvere "l'accavallamento" potresti fare cosi, all'inizio dell'evento on click:

Codice (Java): [Seleziona]
mouthbutton.setOnClickListener(new OnClickListener() {
                   public void onClick(View v) {
  if(sound.isPlaying()) sound.release(); //se sta già suonando, fai il release del mediaPlayer
  // il resto del codice
}});

e per fare una cosa più pulita, la riproduzione del suono la farei dentro un AsyncTask
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline Nalim

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:Random audio - testo
« Risposta #8 il: 17 Maggio 2012, 16:34:20 CEST »
0
ciao, ho provato a fare come da te consigliato ma appena clicco il pulsante l'app crasha e si chiude il codice che ho inserito è questo:
Codice (Java): [Seleziona]
mouthbutton.setOnClickListener(new OnClickListener() {
                   public void onClick(View v) {
                           if (sound.isPlaying()) sound.release();    
                           int num = rnd.nextInt(NUM_SOUND_FILES);
                           sound = MediaPlayer.create(activity.this, mfile[num]);
                           Toast.makeText(getApplicationContext(), mMess[num], Toast.LENGTH_LONG).show();
                           sound.seekTo(0);
                           sound.start();  
                                                   
                }});

altre idee?

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Random audio - testo
« Risposta #9 il: 17 Maggio 2012, 17:07:06 CEST »
0
Che errore ti dà? comunque prova così:

Codice (Java): [Seleziona]
if (sound != null && sound.isPlaying()) sound.release();
//il resto...
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline Nalim

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:Random audio - testo
« Risposta #10 il: 17 Maggio 2012, 20:23:36 CEST »
0
ciao ti ringrazio come sempre per la tua disponibilità adesso funziona il tutto. ho notato però che cliccando sempre più di una volta sul tasto l'audio nn si accavalla più ma si ripete in continuazione il toast. mi spiego meglio compare il toast dell'audio che è partito poi cliccando ripetutamente il tasto l'audio nn si sente ma si susseguono vari toast dei vari audio che in teoria si dovevano sentire.
Un'ultima curiosità quando mi crashava prima l'app mi usciva il logcat in eclipse ma mi escono delle voci tipo error -19 ecc singolarmente su una semplice stringa ripetuta più volte quello è l'errore che dovrei postare in teoria oppure c'è un file che (nn ho ancora trovato) dove eclipse mi salva i vari log di errore e che quindi si possa capire meglio il tipo di errore? Grazie 1000 di nuovo x la tua disponibilità

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Random audio - testo
« Risposta #11 il: 17 Maggio 2012, 21:15:54 CEST »
+1
Il fatto che non senti l'audio premendo ripetutamente penso sia dovuto al fatto che non li dai il tempo di partire alla traccia audio!  ;-)
e per quanto riguarda i toast, se ne crei due di fila, il secondo appare solo quando il primo sparisce... semmai cambia la parte del toast così:

Codice (Java): [Seleziona]
Toast.makeText(getApplicationContext(), mMess[num], Toast.LENGTH_SHORT).show();
per il logcat, se te lo chiedono, mostra la pare che indica il tipo di errore e quella che indica il punto "fallato" nella tua applicazione  :-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline Nalim

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:Random audio - testo
« Risposta #12 il: 17 Maggio 2012, 22:33:32 CEST »
0
ok grazie mille davvero per il tuo aiuto a buon rendere.

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:Random audio - testo
« Risposta #13 il: 18 Maggio 2012, 10:10:59 CEST »
0
Tranquillo!  ;-) semmai metti il topic risolto, così aiuti gli amministratori e gli altri utenti che potrebbero avere un problema simile al tuo!  ;-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch