2012-01-20 14 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"); 
関連する問題