sonidos en java.
CĂłmo poder hacer sonidos en java?
en una aplicacion normal, es decir, no es un applet por lo que no puedo usar el metodo:
Applet.play(URL url);
¿Alguien sabe como puede hacerse?
Muchas gracias!
en una aplicacion normal, es decir, no es un applet por lo que no puedo usar el metodo:
Applet.play(URL url);
¿Alguien sabe como puede hacerse?
Muchas gracias!
Has mirado el nuevo tutorial de Sun sobre JMF
( Java Media Framework), creo que lei algo alli
( Java Media Framework), creo que lei algo alli
Ahora sin manos( sin JMF) !!!
import java.applet.*;
AudioClip ac = getAudioClip(getCodeBase(),
"/paquito el chocolatero.wav");
// lo que no se es que archivos soportava y
// cuales no...
ac.play(); // tocamos algo
ac.stop(); // lo para
ac.loop(); // y vuelta a empezar
import java.applet.*;
AudioClip ac = getAudioClip(getCodeBase(),
"/paquito el chocolatero.wav");
// lo que no se es que archivos soportava y
// cuales no...
ac.play(); // tocamos algo
ac.stop(); // lo para
ac.loop(); // y vuelta a empezar
Les recomiendo una hojeada al tutorial oficial de java.
Existe un método estático en la clase Applet (desde 1.2): Applet.newAudioClip(URL url). Te devuelve un AudioClip listo para "tocar" desde un JFrame.
Saludos.
Existe un método estático en la clase Applet (desde 1.2): Applet.newAudioClip(URL url). Te devuelve un AudioClip listo para "tocar" desde un JFrame.
Saludos.
los datos que e leido son muy buenos pero porfavor alguien que de una solucion que reproduc. un sonido sin applest.
No te entiendo, no se instancia en ningĂşn momento una Applet; ya que como escribĂ, el mĂ©todo newAudioClip(URL url) es estático. Te dejo este ejemplo:
import java.applet.*;
import java.net.*;
public class Tester {
public static URL getURL(String path) {
URL url = null;
try {
url = new URL("file:///" + System.getProperty("user.dir") + path);
}catch (MalformedURLException e) {
e.printStackTrace();
}
return url;
}
public static void main(String path[]) {
AudioClip clip = Applet.newAudioClip(getURL("/efect_sound/ex_1.wav"));
clip.play();
}
}
Si revisas el código fuente, encontrarás lo siguiente:
return new sun.applet.AppletAudioClip(url);
Sin Applets.
Saludos.
import java.applet.*;
import java.net.*;
public class Tester {
public static URL getURL(String path) {
URL url = null;
try {
url = new URL("file:///" + System.getProperty("user.dir") + path);
}catch (MalformedURLException e) {
e.printStackTrace();
}
return url;
}
public static void main(String path[]) {
AudioClip clip = Applet.newAudioClip(getURL("/efect_sound/ex_1.wav"));
clip.play();
}
}
Si revisas el código fuente, encontrarás lo siguiente:
return new sun.applet.AppletAudioClip(url);
Sin Applets.
Saludos.
Otra manera es con el metodo getAudioClip, este recibe los mismos argumentos que el metodo play, unicamente que este metodo getAudioClip devuelve una referencia a un AudioClip. Una vez cargado un Audioclip, se pueden invocar tres metodos para el objeto: play, loop (ciclar) y stop. El metodo play reproduce el audio una vez. El metodo loop repite continuamente el clip. El metodo stop termina el clip de audio. Por ejemplo:
sonido = getAudioClip(getDocumentBase(), "hola.au");
tienes que declarar la variable sonido como un AudioClip:
private AudioClip sonido;
solo tienes que mandar llamar a cualquiera de los tres metodos de getAudioClip segun la accion que quieras realizar.
sonido = getAudioClip(getDocumentBase(), "hola.au");
tienes que declarar la variable sonido como un AudioClip:
private AudioClip sonido;
solo tienes que mandar llamar a cualquiera de los tres metodos de getAudioClip segun la accion que quieras realizar.
ya hay algunas respuestas, asi que voy a poner un ejemplo de un applet
public class LoadAudioPlay extends Applet{
private AudioClip sound;
private Button playSound, loopSound, stopSound;
public void init()
{
sound = getAudioClip(getDocumentBase(),”nomArchivo.au”);
playSound=new Button(“Play”);
loopSound=new Button(“Ciclo”);
stopSound=new Button(“Alto”);
add(playSound);
add(loopSound);
add(stopSound);
}
public Boolean action (Event e, Object o)
{
if (e.target==playSound)
sound.play();
else if (e.target==loopSound)
sound.loop();
else if(e.target==stopSound)
sound.stop();
return true;
}
}
importante solo puedes usar archivos .au
playSound(); lo toca una vez
stopSound(); es para hacer alto
loopSound(); es como un ciclo, termina y vuelve a empezar
public class LoadAudioPlay extends Applet{
private AudioClip sound;
private Button playSound, loopSound, stopSound;
public void init()
{
sound = getAudioClip(getDocumentBase(),”nomArchivo.au”);
playSound=new Button(“Play”);
loopSound=new Button(“Ciclo”);
stopSound=new Button(“Alto”);
add(playSound);
add(loopSound);
add(stopSound);
}
public Boolean action (Event e, Object o)
{
if (e.target==playSound)
sound.play();
else if (e.target==loopSound)
sound.loop();
else if(e.target==stopSound)
sound.stop();
return true;
}
}
importante solo puedes usar archivos .au
playSound(); lo toca una vez
stopSound(); es para hacer alto
loopSound(); es como un ciclo, termina y vuelve a empezar
pues no lo se, quizas si puedes usar ese metodo de applet creando una clase applet q no se vea... es muy cutre, pero, y si funciona?
yo no se si se puede...
Chao
yo no se si se puede...
Chao