Android随机背景图像与背景声音

时间:2018-02-12 20:49:44

标签: android audio random background mp3

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

我想知道在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]);

1 个答案:

答案 0 :(得分:1)

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

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();

当您在后台随机设置某张照片时,这就是播放特定声音的完整代码。