#android
#Android
Вопрос:
Я пытаюсь добавить звук в свой пул звуков
Я застрял на этом уже более недели, пробовал различные методы загрузки через URL и т. Д., Но ничего не работает. Любая помощь будет высоко оценена.
Я получаю сообщение об ошибке: android.content.res.Resources$NotFoundException: файл res / raw / claps.wav из идентификатора извлекаемого ресурса.
Я знаю, что файл находится в apk, потому что я разархивировал apk, чтобы найти его в /res/raw/claps.wav.
SoundPool mySoundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
int myAudioFile = context.getResourceId("raw.claps");
try{
mySoundPool.load(context.getActivity(),myAudioFile,1);
} catch (Exception e){
message = String.valueOf(e);
}
Спасибо!
Ответ №1:
Попробуйте это:
SoundPool mySoundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
int myAudioFile = getResId("claps", R.raw.class);
try{
mySoundPool.load(context.getActivity(),myAudioFile,1);
} catch (Exception e){
message = String.valueOf(e);
}
public static int getResId(String variableName, Class<?> c) {
Field field = null;
int resId = 0;
try {
field = c.getField(variableName);
try {
resId = field.getInt(null);
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return resId;
}
Комментарии:
1. Это должно сработать, убедитесь, что параметры getResId() указаны правильно.
2. Хорошо, claps — это имя моего звукового файла, и мне нужно изменить R.raw.class к чему-нибудь конкретному? Спасибо за вашу помощь, кстати
3. Это должно быть хорошо, не могли бы вы дважды проверить, есть ли claps в R.class и это под сырым. или, возможно, он находится в другом классе (внутри R)? Вы можете найти R.class файл в папке gen.
4. Да, он находится в необработанном общедоступном статическом конечном классе raw { public static final int claps= 0x7f040000;
5. Извините, я понятия не имею, в чем может быть проблема, getResId() должен вернуть значение int. единственное, что вы могли бы попробовать, это переименовать claps. очистите проект и запустите снова.
Ответ №2:
У меня была похожая проблема; половина моих звуков загружалась, а половина вызывала исключение android.content.res.Resources $NotFoundException. Причина заключалась в том, что один из моих файлов ресурсов в eclipse не синхронизирован с файловой системой. Когда я обновил файл, с этого момента все звуки загружались.