Android 带有背景声音的随机背景图像

Android Random Background Image with background sound

我有一个 Activity,如果打开,它会显示随机背景。

我想知道在 android 中是否可以设置有声背景。 就像如果背景是 Nature.jpg 那么背景音频就是 BirdsChirping.mp3。 (所以它与背景的氛围相匹配。)

像这样:

> Nature.jpg = BirdsChirping.mp3 
> Ocean.jpg = Waves.mp3 
> Plane.jpg = JetEngineSound.mp3

这是我当前的代码:

//  RANDOM IMAGE
    int[] photos={R.drawable.nature, R.drawable.ocean};
    ImageView image= (ImageView) findViewById(R.id.main_activity_bg);
    Random ran=new Random();
    int i=ran.nextInt(photos.length);
    image.setImageResource(photos[i]);

首先,将您的 mp3 文件放在一个名为 raw 的目录中,然后创建一个名为 sounds 的数组,其中包含您所有的 mp3 文件 ID。该数组的大小应与照片数组的大小相同,并且顺序相同,以便照片数组的第一个文件对应于声音数组的第一个文件,如下代码所示:

int[] photos={R.drawable.nature, R.drawable.ocean};
int[] sounds={R.raw.BirdsChirping, R.raw.Waves};

然后要播放声音,您需要使用 MediaPlayer

final MediaPlayer mp = MediaPlayer.create(this, sounds[i]);

这是初始化 MediaPlayer 的方法。 MediaPlayer 遵循静态工厂方法设计模式。要获得一个实例,我们调用它的 create() 方法并将我们要播放的声音的上下文和资源 Id 传递给它。

mp.start();

要播放声音,我们调用 MediaPlayer 的 start() 方法。此方法开始播放声音。

    int[] photos={R.drawable.nature, R.drawable.ocean};
        int[] sounds={R.raw.BirdsChirping, R.raw.Waves};
        ImageView image= (ImageView) findViewById(R.id.main_activity_bg);
        Random ran=new Random();
        int i=ran.nextInt(photos.length);
        image.setImageResource(photos[i]);
final MediaPlayer mp = MediaPlayer.create(this, sounds[i]);
        mp.start();

当背景中随机设置了某张照片时,您的完整代码应该是这样播放特定声音的。