Android 如何在单击按钮时播放随机声音表单资产文件夹?

Android 如何在单击按钮时播放随机声音表单资产文件夹?,android,media-player,Android,Media Player,我需要播放资产文件夹中300个声音中的随机声音。 在实现时,我遇到的问题是,它总是在单击按钮时播放来自资产的第一个声音 MediaPlayer player; AssetFileDescriptor descriptor; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.machine); play

我需要播放资产文件夹中300个声音中的随机声音。 在实现时,我遇到的问题是,它总是在单击按钮时播放来自资产的第一个声音

MediaPlayer player;
AssetFileDescriptor descriptor;

@Override
public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
setContentView(R.layout.machine); 

player = new MediaPlayer();

playSound  = (ImageButton)findViewById(R.id.button_play);

AssetManager aMan = this.getAssets();
try 
{
    filelist = aMan.list("");
} catch (IOException e1) {
    e1.printStackTrace();
}

playSound.setOnClickListener(new View.OnClickListener() 
{           
    public void onClick(View v) 
    {
        Random randomGenerator = new Random();
        int randomInt = randomGenerator.nextInt(filelist.length);

        try 
        {
            String mediaFile = filelist[randomInt];
            descriptor = getAssets().openFd(mediaFile);
                player.setDataSource(descriptor.getFileDescriptor(),descriptor.getStartOffset(),descriptor.getLength());
            descriptor.close();
            player.prepare();
                        player.start();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}   
}

尝试更改此行:

filelist = aMan.list("");
为此:

filelist = aMan.list("/assets");