2012-05-02 87 views
0

现在我可以在android中播放音乐了。但我想在2到8秒内随机播放这种声音。我可以随机播放它,例如第一次播放,播放2秒,下一次播放7秒,等等。有谁能够帮助我?Android可随时随地播放音乐

+1

你可以生成一个随机数的每个用户点击播放时间。然后你播放这首歌,并用该随机数设定一个计时器。当定时器达到该数量时,您停止播放歌曲。 – p0rter

+0

我可以有一个它的示例代码? – androidGirl

回答

2

声音在Android是起到这样的:

AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE); 
int mSoundID = mSoundPool.load(this, R.raw.sound1, 1); 
      float lActualVolume = (float) audioManager 
        .getStreamVolume(AudioManager.STREAM_MUSIC); 
      float lMaxVolume = (float) audioManager 
        .getStreamMaxVolume(AudioManager.STREAM_MUSIC); 
      float lVolume = lActualVolume/lMaxVolume; 
      // Is the sound loaded already? 
      if (mSoundIsLoaded) { 
       mSoundPool.play(mSoundID, lVolume, lVolume, 1, 0, 1f); 

我想你已经被赋予了大量的帮助,以随机数部分弄清楚。 您必须将声音文件放入资产/原始目录中。

编辑: 我忘了提及mSoundIsLoaded参数来自哪里。 我在加载声音时设置了它。我在我的onCreate方法中执行此操作。当声音加载时,我设置了名为mSoundIsLoaded的布尔字段。我这样做是为了播放声音 的声音加载时,看起来像这样防止NullPointerException异常:

mSoundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); 
      mSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() { 
       @Override 
       public void onLoadComplete(SoundPool soundPool, int sampleId, 
         int status) { 
        mSoundIsLoaded = true; 
       } 
      }); 
      mSoundID = mSoundPool.load(this, R.raw.sound1, 1);