Случайный выбор ресурса - PullRequest
0 голосов
/ 04 июля 2019

Я хочу выбрать определенные аудиофайлы, когда пользователь нажимает кнопку, но я не могу найти, как я могу изменить R.raw.так что здесь все изменится.

Я знаю, что решение должно быть проще, чем создание 1000, если еще с R.raw.0, R.raw.1, ...

в моем примере я выбрал файл "c.mp3", но это должно быть в конечном итоге изменено на 000 до 499. Так что случайно (или выборочно) скажем 050 => это должно стать R.raw.050

}

@Override
public void play() {

    final MediaPlayer mp = MediaPlayer.create(context, R.raw.c);
    mp.start();

}

Ответы [ 2 ]

1 голос
/ 04 июля 2019

Допустим, у вас есть ваше случайное число, подобное этому:

String rand = "050";

Вам просто нужно найти необработанный идентификатор ресурса и передать его в свой метод MediaPlayer.create, например:

int rawResourceId = context.getResources().getIdentifier(rand, "raw", this.getPackageName());

final MediaPlayer mp = MediaPlayer.create(context, rawResourceId);
mp.start();

Предложение:

  • Лучше переименовать файлы ресурсов, добавив в них префикс, например, f_000, f_001, ...., f_050.
1 голос
/ 04 июля 2019

Вы можете попробовать использовать:

context.getResources().getIdentifier("050", "raw", this.getPackageName());

и рандомизируйте имя ("050"), используя экземпляр объекта Random.

...