2010-08-24 3 views
1

J'ai plusieurs fichiers audio dans le dossier res/raw. Lorsque j'ai exécuté le code suivant, je supposais que seul le fichier "sound1" serait lu, à la place tous les fichiers du dossier sont joués les uns après les autres, pas seulement "sound1".Android Audio Question

MediaPlayer mp = MediaPlayer.create(this, R.raw.sound1); 
    try { 
    mp.start(); 
    } catch (IllegalArgumentException e) { 
    e.printStackTrace(); 
    } catch (IllegalStateException e) { 
    e.printStackTrace(); 
    } 

Que manque-t-il? Merci pour toute aide!

+2

sons bizarre .. vous êtes sûr que votre son est ce que vous pensez qu'il est? –

+0

Mayra == intelligent; Echidna == dumb; – Echidna

Répondre

0

Vous pouvez essayer de cette façon.

static MediaPlayer mpBackground = new MediaPlayer(); 

    mpBackground = MediaPlayer.create(this, R.raw.music); 

    mpBackground.start(); 
0

Utilisez SOUNDPOOL au lieu si elles sont des clips sonores courts ... je suis tombé sur beaucoup de questions en utilisant le Mediaplayer pour jouer des sons courts. Je stocke mes sons dans le dossier assets au lieu de res/raw ... mais vous pouvez obtenir les mêmes résultats. Voici du code.

private int BUZZ = sound_load("sounds/buzz.mp3"); 

private SoundPool _sounds = new SoundPool(8, AudioManager.STREAM_MUSIC, 0); 

private int sound_load(String fname) { 
    AssetManager am = getAssets(); 
    try { 
     AssetFileDescriptor fd = am.openFd(fname); 
     int sid = _sounds.load(fd.getFileDescriptor(), fd.getStartOffset(), 
       fd.getLength(), 1); 
     return sid; 
    } catch (IOException e) { 
    } 
    return 0; 
} 

private void sound_play(int sid) { 
    _sounds.play(sid, (float) 1.0, (float) 1.0, 0, 0, (float) 1.0); 
} 

ensuite jouer un son que je viens d'appeler comme ceci:

sound_play(BUZZ);