Страница 1 из 1

чтение с SD

Добавлено: 12 май 2012, 13:02
Kot_Programist
Простите за нубский вопрос, просто я еще пока в этом новичок.

Вопрос:
Как сделать так, чтобы Приложение читало файлы только из определенной папки? В уроках есть пример, но там немного не то.

P.S. Бывал на многих форумах, там просто посылают куда подальше, когда задаешь этот вопрос.

Re: чтение с SD

Добавлено: 12 май 2012, 14:18
KamiSempai
Kot_Programist писал(а):Как сделать так, чтобы Приложение читало файлы только из определенной папки?
Написать приложение так, чтобы оно читало файлы только из определенной папки.

Что именно Вы хотите сделать?

Re: чтение с SD

Добавлено: 12 май 2012, 14:25
Kot_Programist
KamiSempai писал(а):
Kot_Programist писал(а):Как сделать так, чтобы Приложение читало файлы только из определенной папки?
Написать приложение так, чтобы оно читало файлы только из определенной папки.

Что именно Вы хотите сделать?
я хочу чтобы приложение читало аудиофайл из определенной папки
я жму кнопку, и приложение начинает воспроизводить аудиозапись из определенной папки на сд

Re: чтение с SD

Добавлено: 12 май 2012, 19:26
KamiSempai
Я бы сделал это так:

Код: Выделить всё

    private final static String SOUND_DIR = "Documents/Musik/Нужные";
    private final static String SOUND_FILE = "Trail Of Tears - Illusion.mp3";
    private MediaPlayer mMedia;
	
    // Нажатие на кнопку Старт
    public void play(View view){
        // Если файл уже воспроизводится остановим воспроизведение
        if(mMedia!=null && mMedia.isPlaying()){
            mMedia.stop();
        }
        //Получаем состояние SD карты (подключена она или нет)
        String sdState = android.os.Environment.getExternalStorageState();
        if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) {// если true
            // Получаем путь к SD карте
	    String folderSD = Environment.getExternalStorageDirectory().toString();
	    mMedia = new MediaPlayer();
	    try {
	        // Указываем источник
	        mMedia.setDataSource(folderSD + "/" + SOUND_DIR + "/" + SOUND_FILE);
	        mMedia.prepare(); // Подготавливаем
	        mMedia.start(); // Запускаем
	    } catch (Exception e) {
	        Toast.makeText(this, "Упс! Не удалось воспроизвести файл " + SOUND_FILE, Toast.LENGTH_SHORT).show();
	    }
        }
        else Toast.makeText(this, "SD карта отсутствует.", Toast.LENGTH_SHORT).show();
    }
    // Нажатие на кнопку Стоп
    public void stop(View view){
        mMedia.stop();
    }
Еще стоит учитывать, что при повороте экрана активити пересоздастся (ссылка на mMedia уничтожится) и повторное нажатие на Старт запустит воспроизведение но не остановит то, что было уже запущено.
Об этом, конечно, нужно будет указать в файле манифеста.

И не забудьте остановить воспроизведение при закрытии приложения.

Re: чтение с SD

Добавлено: 12 май 2012, 19:54
Kot_Programist
:) спасибо, буду изучать

Re: чтение с SD

Добавлено: 12 май 2012, 20:39
Kot_Programist
блин хорошо бы уже в java... а то ни нписать не могу ни скопировать

Re: чтение с SD

Добавлено: 12 май 2012, 20:50
Kot_Programist
мда. лог ошибок в 16 шт

Re: чтение с SD

Добавлено: 13 май 2012, 22:10
KamiSempai
Какие ошибки? У меня все отлично работает.

Re: чтение с SD

Добавлено: 14 май 2012, 14:17
Kot_Programist
Короче.. блин, я незнаю как подогнать под себя(

Re: чтение с SD

Добавлено: 14 май 2012, 17:09
KamiSempai
Даже и не знаю, что сказать. Вы не забыли изменить константы SOUND_DIR и SOUND_FILE ?

Вот на всякий случай исходники: http://zalil.ru/33235639

Re: чтение с SD

Добавлено: 14 май 2012, 22:14
Kot_Programist
2. ERROR in /mnt/sdcard/andjedi/projects/MyTest/src/org/MyTest/LaunchActivity.java (at line 16)
setContentView(R.layout.main);
               ^
R cannot be resolved to a variable

Немного подогнал, но все равно такие ошибки

Re: чтение с SD

Добавлено: 14 май 2012, 22:57
Kot_Programist
все получилось, спасибо