Autore Topic: riproduzione suono cliccando su un bottone  (Letto 3564 volte)

ing.android

  • Visitatore
riproduzione suono cliccando su un bottone
« il: 07 Ottobre 2011, 19:34:07 CEST »
0
Ho un bottone @+id/playall che deve riprodurmi un file audio (all.midi) salvato in res/raw:
Prima domanda: il formato midi va bene o devo convertire in wav/mp3??
Seconda domanda: cosa sbaglio?  >:( mi da 2 warning sulle 2 righe successive a // play sound e girando l'app sull'emulatore non mi riproduce alcun suono  :'(

P.S.: sto studiando dagli appunti di un certo Carlo Pelliccia e da un tutorial in inglese di youtube....ma siccome nessuno delle mie due fonti tratta l'esatto mio caso ho combinato sto casino...grazie a tutti.

Codice (Java): [Seleziona]
package com.blogspot.myfirstapplication;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class GuitarTunerActivity extends Activity {
    /** Called when the activity is first created. */
               
        @Override
       
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     
        // play sound
        Button bplayall = (Button) findViewById(R.id.playall);
        MediaPlayer mpButtonClick = MediaPlayer.create(this, R.raw.all);
        }
 
                       
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                        startActivity(new Intent("com.blogspot.myfirstapplication"));                   }
               
        }

Offline salvatore cino

  • Nuovo arrivato
  • *
  • Post: 47
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy s i9000
  • Play Store ID:
    wb apps
  • Sistema operativo:
    ubuntu 11.04
R: riproduzione suono cliccando su un bottone
« Risposta #1 il: 07 Ottobre 2011, 19:54:07 CEST »
0
Ma il metodo onclick a quale view è associato? e poi oltra a creare il mediaplayer, dovresti anche farlo partire con il metodo start() se non ricordo male.....

Inviato dal mio GT-I9000 usando Tapatalk

ing.android

  • Visitatore
Re:riproduzione suono cliccando su un bottone
« Risposta #2 il: 07 Ottobre 2011, 22:49:45 CEST »
0
Corretto ma mi da sempre l'errore per la riga Button dice:
the value of the local variable bplayall is not used
e grazie per l'aiuto

Codice (Java): [Seleziona]
package com.blogspot.myfirstapplication;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.widget.Button;

public class GuitarTunerActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
       
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        // play sound
        Button bplayall = (Button) CHE CODICE CI METTO QUI?? (R.id.playall);
        E QUI? PER FAR PARTIRE IL FILE AUDIO CON UN CLICK?
        MediaPlayer mpButtonClick = MediaPlayer.create(this, R.raw.all);
        mpButtonClick.start();
    }
}
« Ultima modifica: 07 Ottobre 2011, 23:57:54 CEST da ing.android »

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:riproduzione suono cliccando su un bottone
« Risposta #3 il: 08 Ottobre 2011, 07:49:45 CEST »
0
Non prenderla male, ma non credo tu possa andare avanti con la programmazione se non conosci alcuni aspetti fondamentali.
Il metodo findViewById(int id) era corretto, quindi :

Codice (Java): [Seleziona]
Button bplayall = (Button) findViewById(R.id.playall);
L'importante è capire cosa stai facendo, se copi del codice senza comprenderlo ben presto ti fermerai ad una altro scoglio...

Ora quello che tu vuoi fare e generare qualcosa alla pressione di un tasto. Il tasto è una View, posizionata sullo schermo.
Per fare in modo che alla pressione di tale View si generi qualcosa bisogna associare ad essa un "ascoltatore" , che catturando l'evento, generi il codice associato.
L'ascoltatore in questione si chiama OnClickListener e il metodo che si occupa dell'esecuzione del tuo codice si chiama onClick(View v)
Per associare tale listener si usa il metodo della classe View setOnClickListener

Quindi in modo generico :
Codice (Java): [Seleziona]
myView.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        // qui il tuo codice
    }
});

Quello proposto è il metodo "anonimo" di dichiarare un oggetto, perchè è senza riferimento.
Si potrebbe creare un proprio oggetto listener implementando l'OnClickListener, e associare questo alla View.
Oppure implementare l'OnClickListener direttamente sull'Activity e gestire con un solo metodo tutti gli elementi clickati.Ecco che in questo caso il riferimento di ritorno alla view, del metodo onClick ha uno scopo fondamentale.

Codice (Java): [Seleziona]
class MyActivity extends Activity implements OnClickListener{
    public void onClick(View v){
        // qui la gestione di quale view è stata clickata è fondamentale
    }
    myView1.setOnClickListener(this);
    myView2.setOnClickListener(this);
    ....
}

ing.android

  • Visitatore
Re:riproduzione suono cliccando su un bottone
« Risposta #4 il: 08 Ottobre 2011, 12:47:23 CEST »
0
In effetti hai ragione, per adesso mi fermo e ricomincio dalle basi!!
maledetti tutorial ti fanno andare avanti senza capire alcuni passaggi fondamentali.
per me potete chiudere il topic