我有一个 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
的目录中,然后使用所有mp3文件ID创建一个名为sounds的数组。该数组的大小应该与photos数组的大小相同,并且顺序相同,以便photo数组的第一个文件与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();
这是当在后台随机设置特定照片时播放特定声音的完整代码。
关于android - 带有背景声音的Android随机背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48755299/