2011-02-01 31 views
14

Estoy desarrollando una aplicación de juegos en Android. He diseñado todas las vistas e implementado toda la funcionalidad. Ahora en la última pantalla tengo que reproducir sonidos en Android. ¿Alguien puede decirme cómo seguir con eso?Implementar sonidos en una aplicación de Android

Respuesta

27
MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.AudioFile1); 
mp.start(); 

Y luego obtiene todos los métodos start/stop/reset/pause/release de mp.

+0

debo agregar MediaPlayer mp = MediaPlayer.create (getApplicationContext(), R.raw.AudioFile1); mp.start(); en el botón Paly, haga clic en? ¿Yosh? Gracias de antemano Saludos Tushar – User

+0

Bueno, mp.start() es lo que necesita en el botón de clic. Todo lo demás que puedas declarar antes. Es posible que desee comprobar http://developer.android.com/reference/android/media/MediaPlayer.html – yosh

+0

no realmente: D solo prepare el archivo, ponga/res/raw como escribió Sriram, incluya "import android.media. Reproductor multimedia;" y debería funcionar, en mi código anterior AudioFile1 es el nombre del archivo en/raw (puede ser AudioFile1.wav o mp3 o cualquier cosa que sea compatible, simplemente no agrega la extensión) – yosh

10

Simplemente coloque el archivo de sonido en /res/raw (después de crear la carpeta) y luego use MediaPlayer para iniciar, iniciar y luego detener la reproducción del sonido. La documentación de MediaPlayer se puede encontrar en here.

HTH,
Sriram.

6

Desde la página desarrollador Android: http://developer.android.com/guide/topics/media/index.html

Reproducción desde un recurso Raw Quizás lo más normal que desee hacer es reproducir medios (sobre todo de sonido) dentro sus propias aplicaciones. Hacer esto es fácil:

Ponga el sonido (u otros medios recursos) archivo en el res/carpeta prima de su proyecto, en el que el Eclipse plug-in (o AAPT) encontrarán más y hacer en una recurso que puede ser referenciado de su clase R Crear una instancia de MediaPlayer, haciendo referencia a ese recurso utilizando MediaPlayer.create, y luego llamar inicio() en la instancia:

MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1); 

mp.start();

Para detener la reproducción, llame a stop(). Si desea reproducir posteriormente el medio , debe restablecer() y preparar() el objeto MediaPlayer antes de volver a llamar a start(). (llamadas create() prepare() el primer time.)

Para pausar la reproducción, llame a pause(). Reanudar la reproducción desde donde pausó con inicio().

Reproducción desde un archivo o una secuencia Puede reproducir archivos multimedia de la sistema de archivos o una URL de Internet:

crear una instancia de la MediaPlayer utilizando las nuevas setDataSource Call() con una cadena que contiene la ruta (local sistema de archivos o URL) al archivo que desea reproducir primero prepare() entonces inicio() en la instancia:

gusta esta

MediaPlayer mp = new MediaPlayer(); 
mp.setDataSource(PATH_TO_FILE); 
mp.prepare(); 
mp.start(); 
+1

me ayuda.gracias +1 – Rasel

4

Al utilizar el Reproductor multimedia puede lograrlo.

aquí es los pasos ::

1.- Crear una nueva carpeta llamada carpeta "cruda" dentro "de depuración". Para crearlo, haga clic derecho en la carpeta "depurar"> nuevo> directorio> y en el nombre "en bruto":

Para agregar archivos simplemente arrastre los archivos .wav/.mp3 a la carpeta "raw".

2.- importación reproductor multimedia:

importación android.media.MediaPlayer;

3.- Declarar MediaPlayer variable (s) mundial:

método
public MediaPlayer mp1; 

4.- Dentro onCreate, asign los sonidos correspondientes:

mp1 = MediaPlayer.create(MainActivity.this, raw.my_sound_name); 

5.- Por último, puede utilizar métodos ...

mp1.start()/mp1.stop()/mp1.pause()

+0

¿Qué pasa si el sonido terminó antes de detener el reproductor multimedia. ¿Se detiene automáticamente? –

+0

sí, se detiene al final del sonido – user2998689

6

yo sugeriría soundpool de fisuras p layback en android porque mediaPlayer primero carga todos los datos de sonido en la memoria en lugar de reproducirlos, por lo que produce cierto retraso cuando cambiamos los sonidos con frecuencia.

SoundPool es una mejor opción con archivos de sonido de tamaño pequeño, y produce el mejor resultado con el archivo de medios .ogg.

SoundPool soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0); 
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() { 
    @Override 
    public void onLoadComplete(SoundPool soundPool, int sampleId, 
     int status) { 
    loaded = true; 
    } 
}); 
soundID = soundPool.load(this, R.raw.sound, 1); 
if (loaded) { 
    soundPool.play(soundID, volume, volume, 1, 0, 1f); 
    } 
Cuestiones relacionadas