CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Pagina 2 di 2 primaprima 12
Visualizzazione dei risultati da 11 a 16 su 16
Discussione:

Impostare suono per Button

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #11
    Senior Droid L'avatar di freebong


    Registrato dal
    Apr 2011
    Messaggi
    379

    Ringraziamenti
    13
    Ringraziato 28 volte in 27 Posts
    Predefinito

    Quote Originariamente inviato da matteosci84
    Ragazzi ho un problemino ancora nell'utilizzo della funzione per generare un suon alla pressione di un pulsante..

    Funziona tutto correttamente attraverso il metodo che ho descritto all'inizio del post ma c'è un "effetto collaterale" durante la pressione ripetuta dei pulsanti impostati per riprodurre il suono.

    Praticamente se ripremo a distanza di 1 secondo circa il pulsante con il suono sento ripeterlo correttamente ad ogni pressione..invece se premo velocemente (per esempio 4 volte) succede che il suono (beep) si sente una volta sola perchè è come se fosse ancora in esecuzione.

    Il suono ha una durata quasi di un secondo (poco inferiore).

    Io credo che si tratti del fatto che ci vorrebbe un modo per far si che ogni volta che si premer il pulsante si debba eseguire indipendentemente il suono anche se questo non sia terminato.

    Mi sapreste dire come si fa? io vorrei ottenere un effetto stile suono di una tastiera musicale.

    spero di essere stato chiaro

    Grazie

    Prova così, al click del bottone come prima istruzione invoca il metodo stop() sul media player.
    In questo modo se il suono è in riproduzione viene stoppato e poi riavviato col metodo play().
    Spero di essere stato chiaro


    Inviato dal mio HTC Desire usando Androidiani App
    Ultima modifica di freebong; 26-02-13 alle 16:43

  2.  
  3. #12
    Baby Droid


    Registrato dal
    Mar 2012
    Messaggi
    13

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da freebong Visualizza il messaggio
    Prova così, al click del bottone come prima istruzione invoca il metodo stop() sul media player.
    In questo modo se il suono è in riproduzione viene stoppato e poi riavviato col metodo play().
    Spero di essere stato chiaro


    Inviato dal mio HTC Desire usando Androidiani App
    Purtroppo come mi hai indicato tu non mi funziona....ho scritto così:

    codice:
      
    ....
    ....
    case R.id.assoc1:
          {
            mpButton.stop();
            azione_assoc(1); 
            mpButton.start();
           }
      break;
    ....
    .......

    ho provato anche a mettere lo start subito dopo lo stop...oppure lo stop dopo la funzione...ma non va...praticamente in questo modo non sento nemmeno più il suono...
    :-(

  4. #13
    Senior Droid L'avatar di freebong


    Registrato dal
    Apr 2011
    Messaggi
    379

    Ringraziamenti
    13
    Ringraziato 28 volte in 27 Posts
    Predefinito

    Quote Originariamente inviato da matteosci84 Visualizza il messaggio
    Purtroppo come mi hai indicato tu non mi funziona....ho scritto così:

    codice:
      
    ....
    ....
    case R.id.assoc1:
          {
            mpButton.stop();
            azione_assoc(1); 
            mpButton.start();
           }
      break;
    ....
    .......

    ho provato anche a mettere lo start subito dopo lo stop...oppure lo stop dopo la funzione...ma non va...praticamente in questo modo non sento nemmeno più il suono...
    :-(
    Era un tentativo, se vuoi prova a postare il codice completo e vediamo come si puo fare

  5. #14
    Baby Droid


    Registrato dal
    Mar 2012
    Messaggi
    13

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da freebong Visualizza il messaggio
    Era un tentativo, se vuoi prova a postare il codice completo e vediamo come si puo fare
    Ok.. eccoti la classe main.java ho inserito gli stop nei primi 3 case per mostrarti come avevo scritto la modifica e l'ho provata sia inserendo lo stop prima della chiamata della funzione e anche dopo...L'effetto in run time con le istruzioni scritte in questo modo è che se c'è lo stop inserito così, praticamente appena si preme uno dei pulsanti con lo il metodo stop come prima volta, si sente il suono e poi se premo nuovamente qualsiasi altro tasto non si sente più nulla...Come se non andasse più in esecuzione il metodo start.
    codice:
     
    
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.ContextMenu;
    import android.view.ContextMenu.ContextMenuInfo;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
    	private EditText totale;
    	private int somma= 0;
    
    	private int[] colli;
    	private EditText [] c;
    
    	private Button [] farm;
    
    
    protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		colli = new int[11];
    		c = new EditText[11];
    		
    		farm = new Button[11];
    		
    		farm[1] = (Button) findViewById(R.id.button1);
    		farm[2] = (Button) findViewById(R.id.button2);
    		farm[3] = (Button) findViewById(R.id.button3);
    		farm[4] = (Button) findViewById(R.id.button4);
    		farm[5] = (Button) findViewById(R.id.button5);
    		farm[6] = (Button) findViewById(R.id.button6);
    		farm[7] = (Button) findViewById(R.id.button7);
    		farm[8] = (Button) findViewById(R.id.button8);
    		farm[9] = (Button) findViewById(R.id.button9);
    		farm[10] = (Button) findViewById(R.id.button10);
    
    	totale = (EditText) findViewById(R.id.total);
    
    
    	 final MediaPlayer mpButton = MediaPlayer.create(this,R.raw.beep8);
    
    		View.OnClickListener gestore = new View.OnClickListener() {
    			  
    		public void onClick(View view) { 
    			
    			    switch(view.getId()){
    			            	
    			      case R.id.button1:
    			      {  
                                    mpButton.stop();
    			        azione_colli(1); 
    			        mpButton.start();
    			      }
    			        break;
    			            	    	
    			      case R.id.button2:
    			      {
    			        azione_colli(2); 
    			        mpButton.stop();
    			        mpButton.start();
    			     }
    			        break;
    			        
    			      case R.id.button3:
    			      {
    			    	azione_colli(3);
    			        mpButton.stop();
    			        mpButton.start();
                                  }
    			        break;
    			            	    	
    			      case R.id.button4:
    			      {azione_colli(4); mpButton.start();}
    			        break;
    			        
    			      case R.id.button5:
    			      {azione_colli(5); mpButton.start();}
    			        break;
    			            	    	
    			      case R.id.button6:
    			      {azione_colli(6); mpButton.start();}
    			        break;
    			        
    			      case R.id.button7:
    			      {azione_colli(7); mpButton.start();}
    			        break;
    			            	    	
    			      case R.id.button8:
    			      {azione_colli(8); mpButton.start();}
    			        break;
    			        
    			      case R.id.button9:
    			      {azione_colli(9); mpButton.start();}
    			        break;
    			            	    	
    			      case R.id.button10:
    			      {azione_colli(10); mpButton.start();}
    			        break;
    
    }
    			    somma = sum_colli(colli);
    			  
    				String rT = Integer.toString(somma);
    				totale.setText(rT);
    				
    			
    				
    			  }
    			};
    			     
    			for (int i=1;i<=10;i++)
    			{
    			farm[i].setOnClickListener(gestore);    
    		     
    		  
    			}
           
    		}
    
    // metodo per incrementare il numero di colli
    	
    	public void azione_colli(int i)
    	{
    		  
       	 colli[i]=colli[i] + 1; 
       	 somma(c[i],colli[i]);
    
    	}
    
    
    	//metodo per aggiornare il valore della text edit dei colli o degli associati
    	public void somma(EditText e, int f)
    	{
    		String n = Integer.toString(f);
      	    e.setText(n);
    		//s=Integer.parseInt(e.getText().toString());
    	}
    	
    	//metodo per la somma totale dei colli caricati
    	public int sum_colli(int[]c)
    	{
    		int tot=0;
    		for (int i=0;i<c.length;i++)
    			tot=c[i]+tot;
    		return tot;
    	}

  6. #15
    Senior Droid L'avatar di freebong


    Registrato dal
    Apr 2011
    Messaggi
    379

    Ringraziamenti
    13
    Ringraziato 28 volte in 27 Posts
    Predefinito

    Quote Originariamente inviato da matteosci84
    Originariamente inviato da freebong
    Era un tentativo, se vuoi prova a postare il codice completo e vediamo come si puo fare
    Ok.. eccoti la classe main.java ho inserito gli stop nei primi 3 case per mostrarti come avevo scritto la modifica e l'ho provata sia inserendo lo stop prima della chiamata della funzione e anche dopo...L'effetto in run time con le istruzioni scritte in questo modo è che se c'è lo stop inserito così, praticamente appena si preme uno dei pulsanti con lo il metodo stop come prima volta, si sente il suono e poi se premo nuovamente qualsiasi altro tasto non si sente più nulla...Come se non andasse più in esecuzione il metodo start.

    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.ContextMenu;
    import android.view.ContextMenu.ContextMenuInfo;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;

    public class MainActivity extends Activity {

    private EditText totale;
    private int somma= 0;

    private int[] colli;
    private EditText [] c;

    private Button [] farm;


    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    colli = new int[11];
    c = new EditText[11];

    farm = new Button[11];

    farm[1] = (Button) findViewById(R.id.button1);
    farm[2] = (Button) findViewById(R.id.button2);
    farm[3] = (Button) findViewById(R.id.button3);
    farm[4] = (Button) findViewById(R.id.button4);
    farm[5] = (Button) findViewById(R.id.button5);
    farm[6] = (Button) findViewById(R.id.button6);
    farm[7] = (Button) findViewById(R.id.button7);
    farm[8] = (Button) findViewById(R.id.button8);
    farm[9] = (Button) findViewById(R.id.button9);
    farm[10] = (Button) findViewById(R.id.button10);

    totale = (EditText) findViewById(R.id.total);


    final MediaPlayer mpButton = MediaPlayer.create(this,R.raw.beep8);

    View.OnClickListener gestore = new View.OnClickListener() {

    public void onClick(View view) {

    switch(view.getId()){

    case R.id.button1:
    {
    mpButton.stop();
    azione_colli(1);
    mpButton.start();
    }
    break;

    case R.id.button2:
    {
    azione_colli(2);
    mpButton.stop();
    mpButton.start();
    }
    break;

    case R.id.button3:
    {
    azione_colli(3);
    mpButton.stop();
    mpButton.start();
    }
    break;

    case R.id.button4:
    {azione_colli(4); mpButton.start();}
    break;

    case R.id.button5:
    {azione_colli(5); mpButton.start();}
    break;

    case R.id.button6:
    {azione_colli(6); mpButton.start();}
    break;

    case R.id.button7:
    {azione_colli(7); mpButton.start();}
    break;

    case R.id.button8:
    {azione_colli(8); mpButton.start();}
    break;

    case R.id.button9:
    {azione_colli(9); mpButton.start();}
    break;

    case R.id.button10:
    {azione_colli(10); mpButton.start();}
    break;

    }
    somma = sum_colli(colli);

    String rT = Integer.toString(somma);
    totale.setText(rT);



    }
    };

    for (int i=1;i<=10;i++)
    {
    farm.setOnClickListener(gestore);


    }

    }

    // metodo per incrementare il numero di colli

    public void azione_colli(int i)
    {

    colli=colli + 1;
    somma(c,colli);

    }


    //metodo per aggiornare il valore della text edit dei colli o degli associati
    public void somma(EditText e, int f)
    {
    String n = Integer.toString(f);
    e.setText(n);
    //s=Integer.parseInt(e.getText().toString());
    }

    //metodo per la somma totale dei colli caricati
    public int sum_colli(int[]c)
    {
    int tot=0;
    for (int i=0;i<c.length;i++)
    tot=c+tot;
    return tot;
    }




    Te la butto lì..
    Prova ad aggiungere prima del metodo public void onClick @ override


    Inviato dal mio HTC Desire usando Androidiani App

  7. #16
    Baby Droid


    Registrato dal
    Mar 2012
    Messaggi
    13

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da freebong Visualizza il messaggio
    Te la butto lì..
    Prova ad aggiungere prima del metodo public void onClick @ override


    Inviato dal mio HTC Desire usando Androidiani App


    Niente da fare.....:-(

    Ma può essere che esiste un altro modo per fare eseguire un suono a ripetizione continua simulando un pulsante di un pianoforte.. per farmi intendere..perchè l'effetto dovrebbe essere proprio di impulso ad ogni tocco.....:-(

Pagina 2 di 2 primaprima 12

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy