2010-08-24 94 views
1

我在res/raw文件夹中有几个音频文件。 当我运行下面的代码时,我假设只播放“sound1”文件,而不是文件夹中的所有文件一个接一个地播放,而不仅仅是“sound1”。Android音频问题

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

我错过了什么? 感谢您的帮助!

+2

听起来很奇怪..你肯定你的是什么声音,你认为它是什么? – 2010-08-25 00:09:58

+0

Mayra ==聪明; 针鼹==哑; – Echidna 2010-08-25 00:32:54

回答

0

你可以试试这种方式。

static MediaPlayer mpBackground = new MediaPlayer(); 

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

    mpBackground.start(); 
0

如果它们是短声音片段,请使用SoundPool ......我使用Mediaplayer播放很多问题以播放短音。我将声音存储在资源文件夹中而不是res/raw中,但可以获得相同的结果。这是一些代码。

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); 
} 

然后播放声音,我只是把它像这样:

sound_play(BUZZ);