Código para testar os canais de Áudio

3 respostas
M

Criei essas classes aqui para tocar um audio onde eu passo o canal de saída que deve ser tocado. Porém, não sei se é o meu fone, não está funcionando. Alguém pode me ajudar a achar o erro?

public class testandoEntradas {
	
	public static void main(String[] args) throws MalformedURLException {
		AudioClip   agudo_orgao;
		AudioClip   grave_orgao;
		AudioClip   meio_orgao;
		double distancia = 1.5;


		
		while (distancia != 0)
		{
			distancia = Double.parseDouble(JOptionPane.showInputDialog("Digite a distancia do objeto:"));
			grave_orgao    = Applet.newAudioClip(new File("grave_orgao.wav").toURL());
			meio_orgao     = Applet.newAudioClip(new File("meio_orgao.wav").toURL());
			agudo_orgao     = Applet.newAudioClip(new File("agudo_orgao.wav").toURL());
			if (distancia == 1.5 ){ 
				OutputChannels.fromInt(0);
				grave_orgao.play();
				JOptionPane.showMessageDialog(null,"A distancia é de "+distancia +" Cor verde");
			}
			if (distancia == 0.9){
				OutputChannels.fromInt(1);
				meio_orgao.play();

				JOptionPane.showMessageDialog(null,"A distancia é de "+distancia+" Cor amarela");
			} 
			if (distancia == 0.10){ 
				OutputChannels.fromInt(2);
				agudo_orgao.play();

				JOptionPane.showMessageDialog(null,"A distancia é de "+distancia+" Cor Vermelha");
			}}

		}

	
	

}
public class OutputChannels {
	
	
	      /**
	       * Indica que a saída é nos dois canais. 
	       */
      public static final int BOTH_CHANNELS = 0;
	            
	      /**
	       * Indica que a saída é no canal esquerdo. 
	       */
     public static final int LEFT_CHANNEL = 1;

	      /**
	       * Indica que a saída é no canal direito. 
	       */
    public static final int RIGHT_CHANNEL = 2;
	            
	      /**
	       * Indica que a saida é mono. 
	       */
    public static final int DOWNMIX_CHANNELS = 3;

	      
	      public static final OutputChannels LEFT = new OutputChannels(LEFT_CHANNEL);
	      public static final OutputChannels RIGHT = new OutputChannels(RIGHT_CHANNEL);
	      public static final OutputChannels BOTH = new OutputChannels(BOTH_CHANNELS);
	      public static final OutputChannels DOWNMIX = new OutputChannels(DOWNMIX_CHANNELS);
	                        
	      
	      private /*final*/ int   outputChannels;
	                  
	      /**
	       * Cria uma instância OutputChannels correspondente ao código do canal. 
	       * @param   codigo do canal
	       * 
	       * @throws  IllegalArgumentException se o codigo nao for valido
	       */
     static public OutputChannels fromInt(int code)
	      {
	            switch (code)
	            {
	            case LEFT_CHANNEL:
	                  return LEFT;
	            case RIGHT_CHANNEL:
	                  return RIGHT;
	            case BOTH_CHANNELS:
	                  return BOTH;
	            case DOWNMIX_CHANNELS:
	                  return DOWNMIX;
	            default:
	                  throw new IllegalArgumentException("Invalid channel code: "+code);
	            }
	      }
	            
	      private OutputChannels(int channels)
	      {
	            outputChannels = channels;
	                  
	            if (channels<0 || channels>3)
	                  throw new IllegalArgumentException("channels");
	      }      
         
	}

Por favor alguem me ajuda...
Preciso achar o erro.
Será que meus códigos estao errados?

Valeu galera...

3 Respostas

M

Será que ninguém pode me ajudar?

M

Por favor alguem me ajuda…
Preciso achar o erro.
Será que meus códigos estao errados?

Valeu galera…

Marky.Vasconcelos

Nao conheço essa API pra corrigir isso.
Mas pela lógica parece que esta correto.

E por favor, não fique upando tópicos, adicione mais informações se quiser upar e não quotando todo esse código denovo.

Criado 13 de maio de 2010
Ultima resposta 10 de jun. de 2010
Respostas 3
Participantes 2