0

Androidで音楽を再生できるようになりました。しかし、このサウンドを2〜8秒のランダムな時間で再生したいのですが、最初は2秒、次回は7秒など、ランダムに再生するにはどうすればよいですか? 誰でも私を助けることができますか?

4

2 に答える 2

3

次のリンクを参照してください。

乱数生成

メディアプレーヤー

タイマー

あなたはアイデアを得るでしょう。

于 2012-05-02T12:08:56.930 に答える
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 に答える