Этот массив вопросов и ответов, R.raw.ikhlas примером является вопрос, чтобы ответить R.raw.jwbalikhlasкак получить ответ в виде необработанного аудио папки в андроид студии
int[] rawQuetion = {R.raw.alfalaq, R.raw.alikhlas, R.raw.alkafirun, R.raw.allahab};
int [] rawAnswer={R.raw.jwbaliklas};
Этот метод рандомизации вопросы
//fisher-yates Shuffle
public void playSoal() {
shuffleArray(rawQuetion);
try{
int idx = new Random().nextInt(rawQuetion.length);
mp = MediaPlayer.create(this, rawQuetion[idx]);
mp.start();
}catch(Exception e){
Log.e("ERROR", "Media Player", e);
mp = null;
mp.release();
mp.stop();
e.printStackTrace();
}
}
static void shuffleArray(int[] arr)
{
Random rnd = new Random();
for (int i = arr.length - 1; i > 0; i--)
{
int index = rnd.nextInt(i + 1);
// Swap
int a = arr[index];
arr[index] = arr[i];
arr[i] = a;
}
}
Я хочу, когда вопросы викторины, выбранные случайным образом, будет отвечать здесь
public void audioFile() throws IOException{
InputStream is = getResources().openRawResource(R.raw.jwbaliklas);//I want this to be obtained from the above array
ByteArrayOutputStream out = new ByteArrayOutputStream();
BufferedInputStream in = null;
in = new BufferedInputStream(is);
int read;
byte[] buff = new byte[1024];
while ((read = in.read(buff)) > 0)
{
out.write(buff, 0, read);
}
out.flush();
byte[] audioBytes = out.toByteArray();
for (int i = 0; i < audioBytes.length; i++) {
audioBytes[i] = (byte) ((audioBytes[i]) & 0xFF); }
absNormalizedSignal = hitungFFT(audioBytes);
AppLog.logString("===== From audio File");
}
я вижу. но я все еще смущен, как я могу написать код для R.raw.jwbaliklas is R.raw.alikhlas answer. так что существует значение InputStream is = getResources(). openRawResource (rawQuetion [i]); R.raw.jwbaliklas –
Вы должны аннотировать переменную с помощью '@ RawRes' (как я отредактировал выше) –
спасибо, я попробую сначала. Большое спасибо –