我有一个活动,如果打开,它会显示随机背景。
我想知道在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]);
答案 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();
当您在后台随机设置某张照片时,这就是播放特定声音的完整代码。