2012-01-20 39 views
0

我需要播放放置在資產文件夾中的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(); 
     } 
    } 
} 
} 

回答

0

嘗試修改此行:

filelist = aMan.list(""); 

這樣:

filelist = aMan.list("/assets"); 
相關問題