Autore Topic: 3 audio in base al testo  (Letto 653 volte)

Offline Teo

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid E / Xoom2
  • Sistema operativo:
    Mac OS X 10.8
3 audio in base al testo
« il: 18 Novembre 2011, 10:11:35 CET »
0
Ciao, io nel mio progetto ho 3 file audio, molto piccoli, durano un secondo, e in base alle lettere presenti nel edittext, vorrei riprodurli in una certa sequenza, una cosa del tipo:
ABCD -> audio1, audio3, audio2, audio1

come potrei fare??
c'è un modo per mettere in coda i file nell'ordine che voglio e poterli far eseguire al mediaplayer?

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:3 audio in base al testo
« Risposta #1 il: 18 Novembre 2011, 17:15:12 CET »
0
Io ti consiglio di usare SoundPool | Android Developers

Offline Teo

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid E / Xoom2
  • Sistema operativo:
    Mac OS X 10.8
Re:3 audio in base al testo
« Risposta #2 il: 19 Novembre 2011, 11:42:35 CET »
0
Ho provato ad usare il sound pool, ho fatto qeusto codice, il Problema è che quando eseguo l'audio mi si sovrappongo i suoni, in pratica parte il secondo suono senza che sia terminato il primo, come posso fare??


Codice (Java): [Seleziona]
                if (loadedBreak && loadedDash && loadedDot) {
                        String testoSuoni = testoMorse.getText().toString();
                        int i = 0;
                        while(i < testoMorse.length()){
                                caratteriSuono.add(testoSuoni.substring(i, i+1));
                                i++;
                        }
                        for(String s : caratteriSuono){
                                if(s.equalsIgnoreCase("—")){
                                        soundPoolDash.play(soundIdDash, volume, volume, 1, 0, 1f);
                                }
                                if(s.equalsIgnoreCase("•")){
                                        soundPoolDot.play(soundIdDot, volume, volume, 1, 0, 1f);
                                }                      
                                if(s.equalsIgnoreCase("  ")){
                                        soundPoolBreak.play(soundIdBreak, volume, volume, 1, 0, 1f);
                                }
                        }
                }

Come avete capito, sto provando a fare un traduttore morse per imparare a gestire l'audio,..

Offline Teo

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid E / Xoom2
  • Sistema operativo:
    Mac OS X 10.8
Re:3 audio in base al testo
« Risposta #3 il: 21 Novembre 2011, 13:51:48 CET »
0
nessuno?  :'(

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:3 audio in base al testo
« Risposta #4 il: 22 Novembre 2011, 00:07:30 CET »
0
Il comportamento di SoundPool è corretto, cioè sovrappone i suoni...ed è usato apposta per questo :-P soprattutto nei giochi. Non avevo ben chiaro come lo avresti usato...Tornando al tuo problema, dato che SoundPool non ha un metodo/listener che ti avvisa quando il suono è stato eseguito, o provi a creare una classe che estende SoundPool integrando tali lacune, e/o a gestire il tuo caso specifico...o creai una coda di esecuzione limitando lo streaming ad 1 e intervallando i suoni da pause, sempre che la durata dei suoni sia determinata e breve...ma non è una soluzione molto pulita e non te la consiglio molto (a mali estremi...) oppure ritornare sui tuoi passi e gestire il tutto con MediaPlayer...oppure , se ti piacciono le sfide  :-P, potresti generare tu i toni necessari e mandarli in output in un unico streaming !
« Ultima modifica: 22 Novembre 2011, 00:19:12 CET da teskio »

Offline Teo

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid E / Xoom2
  • Sistema operativo:
    Mac OS X 10.8
Re:3 audio in base al testo
« Risposta #5 il: 22 Novembre 2011, 12:44:45 CET »
0
Io volevo proprio provare a mandare un unico streaming al player  :-) il problema è che non so come creare il file/streaming con tutti i suoni che devo riprodurre.. Ho cercato ma non ho trovato :-(  se hai suggerimenti :-P
Grazie grazie :-)

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:3 audio in base al testo
« Risposta #6 il: 22 Novembre 2011, 13:06:07 CET »
0
Prova a giocare un po' con AudioTrack | Android Developers
in rete trovi anche qualche tutorial ;-)