android - 带有背景声音的Android随机背景图片

标签 android audio random background mp3

我有一个 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/

相关文章:

java - 如何创建一个接受随机键和值java的映射?

java - 获取随机数(具有特定范围的百分比)

android - isReleaseBuild() 是 Android Gradle DSL 的一部分吗?

python - 如何区分音乐和 channel 的endevent?

java - 使用主线程或单独线程在后台播放音频文件的正确方法/方法

javascript - 将 Float32Array 转换为 16 位 float 组缓冲区 JavaScript

c# - 特殊随机数

android - 减小 ImageSpan 的高度和宽度

android - 无法访问 POJO 类中的 getter

android - 如何使用安卓计费库?