Androidで音楽を再生できるようになりました。しかし、このサウンドを2〜8秒のランダムな時間で再生したいのですが、最初は2秒、次回は7秒など、ランダムに再生するにはどうすればよいですか? 誰でも私を助けることができますか?
2 に答える
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);
乱数の部分を理解するために多くの助けが与えられたと思います。assets/raw ディレクトリにサウンド ファイルを配置する必要があります。
編集: mSoundIsLoaded パラメーターがどこから来たのかを言及するのを忘れていました。サウンドがロードされたときに設定します。これは onCreate メソッドで行います。サウンドがロードされると、mSoundIsLoaded というブール フィールドを設定します。サウンドを再生するときに NullPointerExceptions を防ぐためにこれを行います。サウンドのロードは次のようになります。
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);
于 2012-05-02T12:24:13.913 に答える