Я разрабатываю приложение, которое переводят фразы с английского на другой язык. Я использую ExpandableListView и данные привязки через BaseExpandableListAdapter. Вкратце: когда вы нажимаете на элемент listitem, открывается подпункт, где вы можете видеть перевод, и в то же время говорит голос. Проблема в том, что время от времени звук не воспроизводится - особенно для более длинных фраз. И что я могу видеть в LogCat является следующее:Образец не готов звуковой пул
1) Когда звук не воспроизводится на всех ...
Образец не был загружен. Ожидание 30 мс. ОБРАЗЦА X НЕ ГОТОВ
2) когда звук ФАКТИЧЕСКИ ИГРАЛИ
* Образец не был загружен. Ожидание 30 мс.
Таким образом, если звук воспроизводится, логарифм сообщает, что «образец не был готов».
Хорошо, это информация, которую дает logcat. Другое дело, что вероятность сбоя больше для больших звуковых файлов. Малые звуковые файлы воспроизводятся в течение двух секунд (около 30 КБ) и больше около 4 секунд (около 60 КБ).
Прямо сейчас я не могу понять, как решить эту проблему. Я искал интернет для решений, особенно этот сайт. Я и пытался ....
1) использовать OnLoadCompleteListener()
и его не работает
2) делает какое-то время цикла.
Не работает либо
Что я мог сделать неправильно. Я даю код ниже. Может быть, что-то неловкое? Например, я использовал слушателя неправильно?
Cincerely
expList.setOnGroupExpandListener(new OnGroupExpandListener() {
public void onGroupExpand(int groupPosition) {
final int group_position = groupPosition;
loaded = false;
int nmbr_childs = adapter.getChildrenCount(groupPosition);
if (nmbr_childs == 1) {
myVoice = soundPool.load(PhraseActivity.this, sound[group_position][0], 2);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
loaded = true;
}
});
if (loaded) {
soundPool.play(myVoice, 20, 20, 1, 0, 1f);
}
else {
System.out.println("something wrong with soundpool!");
}
}
group = groupPosition;
int len = adapter.getGroupCount();
for (int i = 0; i < len; i++) {
if (i != groupPosition) {
expList.collapseGroup(i);
}
}
}
});
Кажется, что все нормально. Попробуем больше сегодня, но теперь я могу сказать, что это намного лучше. МНОГО СПАСИБО ВАМ :-) :-) –
Добро пожаловать. Я рад, что смогу вам помочь. – Panky90