Отредактированный код:
Я занимаюсь разработкой приложения для словаря для Android.Мне удалось сделать приложение произносить каждое слово, которое ищется.Вот код:
btnPronounce.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Log.i(MAIN_TAG,"Start pronounciation ...");
btnPronounce.setEnabled(false);
String currentWord = edWord.getText().toString().toLowerCase();
try {
ZipFile zip = new ZipFile("/sdcard/app_folder/sound/zip_test.zip");
ZipEntry entry = zip.getEntry(currentWord);
if (entry != null) {
InputStream in = zip.getInputStream(entry);
// see Note #3.
File tempFile = File.createTempFile("_AUDIO_", ".wav");
FileOutputStream out = new FileOutputStream(tempFile);
IOUtils.copy(in, out);
// do something with tempFile (like play it)
File f = tempFile;
try {
if (f.exists())
{
Log.i(MAIN_TAG,"Audio file found!");
MediaPlayer mp = new MediaPlayer();
mp.prepare();
mp.setLooping(false);
mp.start();
while (mp.getCurrentPosition() < mp.getDuration());
mp.stop();
mp.release();
Log.i(MAIN_TAG,"Pronounciation finished!");
}
else
{
Log.i(MAIN_TAG,"File doesn't exist!!");
}
}
catch (IOException e)
{
Log.i(MAIN_TAG,e.toString());
}
btnPronounce.setEnabled(true); }
else {
// no such entry in the zip
}
} catch (IOException e) {
// handle your exception cases...
e.printStackTrace();
}
}
});
Но проблема в том, что в одной папке слишком много WAV-файлов, и все эти файлы считаются музыкальными файлами на устройствах Android.В результате для индексации таких файлов требуются годы.Кроме того, индексирование и просмотр пользователей иногда приводят к сбою приложения.
Поэтому мне просто интересно, можно ли программно выполнить следующее:
- Может ли Android MediaPlayer воспроизводить WAV/ MP3 файлы упакованы в один файл? Я имею в виду, я хочу сжать или обернуть аудиофайлы (или сделать что-то похожее), чтобы они отображались как один файл на устройствах Android, но MediaPlayer по-прежнему может воспроизводить каждый отдельный WAVфайл внутри.
- Если вышесказанное невозможно, вы, ребята, можете предложить решение проблемы?
РЕДАКТИРОВАТЬ: Есть лиЛюбые другие способы / решения, которые позволяют аудиофайлам быть просто помещенными в один большой файл (изображение, почтовый индекс или подобное ...) и затем позволяют MediaPlayer читать отдельные файлы в этом?
Большое спасибо.