Java 随机更改媒体播放器音量

Java 随机更改媒体播放器音量,java,android,random,fade,volume,Java,Android,Random,Fade,Volume,我正在用Eclipse中的Java编写一个android应用程序 当按下按钮时,媒体播放器播放一首曲目,但我希望这首曲目从完全静音到完全音量以及介于两者之间的任意位置随机淡入淡出 我正在考虑使用随机数生成器来确定输出量 任何关于如何做到这一点的建议和示例代码都将不胜感激 当我尝试这个: while (mp.isPlaying()) { float x = (float) Math.random(); float y = (float) Math.random();

我正在用Eclipse中的Java编写一个android应用程序

当按下按钮时,媒体播放器播放一首曲目,但我希望这首曲目从完全静音到完全音量以及介于两者之间的任意位置随机淡入淡出

我正在考虑使用随机数生成器来确定输出量

任何关于如何做到这一点的建议和示例代码都将不胜感激

当我尝试这个:

while (mp.isPlaying()) {
        float x = (float) Math.random();
        float y = (float) Math.random();
        setInterval((mp.setVolume(x,y)),2000);}

Eclipse告诉我setInterval是未定义的。如何解决此问题?

要获取随机数,请使用:

volume = random.nextInt(maxvol - minvol) +minvol;
其中,maxvol对应最大音量,minvol对应最小音量


注意:您也可以使用nextfloat()来代替nextfloat(),或者与nextfloat()配合使用,以获得更高的精度。

使用此函数:它将为您提供一个介于
min
max
之间的随机
int

/** Returns a random int in the specified range. */
static int randomInt(float min, float max) {
    if (max < min) {
        max = min;
    }

    int randInt = (int) (new Random(System.nanoTime()).nextInt((int) (max - min + 1)) + min);
    return randInt;
}

请记住在活动开始时添加
float volume=0
,以便在调整之间存储音量。

在活动中创建一个名为volume的变量。。。然后,上面的代码应该可以很好地在音量中淡出,并且只应用相同的淡出原理。。。
void increaseVolume() {
    if (volume < 1) {
        volume += 0.01;

        new Handler().postDelayed(new Runnable {
        @Override
        public void run() {
                increaseVolume();
                mp.setVolume(volume);
            }
        }, 100);
    } else {
        volume = 1;
    }
}