随机更改媒体播放器音量

时间:2014-01-28 11:35:16

标签: java android random fade volume

我正在Eclipse中用Java编写一个Android应用程序。

当按下按钮时,媒体播放器会播放曲目,但我希望此曲目从完全静音到完整音量以及其间的任何位置随机淡入淡出。

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

有关如何执行此操作和示例代码的任何建议都将受到高度赞赏。

当我尝试这个时:

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

Eclipse告诉我setInterval未定义。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

要获取随机数,请使用:

volume = random.nextInt(maxvol - minvol) +minvol;

其中 maxvol 对应最大卷, minvol 对应最小卷。

注意:您也可以使用 nextfloat()或使用 nextint()获取额外精度。

答案 1 :(得分:0)

使用此功能:它会在intmin之间随机max

/** 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;
}

您可以使用Handler创建一个简单的循环来淡入和淡出音量:

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;
    }
}

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