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

Записать playlist на SD Card

Добавлено: 12 ноя 2013, 11:47
huligan
Я создаю плейлист. Создание плейлиста выглядит вот так (обрывок из кода):

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

            
File file = new File(Environment.getExternalStorageDirectory() + "/Music","Test.m3u");
PrintWriter writer = new PrintWriter(file, "UTF-8");
.....
    writer.println(PathToSong.toString()+"\r");
....
writer.flush();
writer.close();
Файл записывается в нужную папку, я вижу его через файловый менеджер. Но беда в том, что медиапроигрыватели не видят этот список воспроизведения.
То есть, даже если обновить медиатеку, то плейлист файл не отображается. Файловый менеджер (File Commander: аля Total Commander для Android)отображает и проигрывает плейлист.
Я нашел програмку в PlayMarket, My Playlist Maker: программа создает плейлист и после этого медиапроигрыватели видят мой созданный плейлист и плейлист, который создала программа. Соответственно, у меня есть подозрения, что нужно ввести какую-то команду, что бы файлы были видны программам, медиапроигрывателям. Файловые менеджеры то видят файлы, не понятно что меняется после того, как создается плейлист другой программой... Может кто подскажет какой недостающий кусочек кода надо вписать?

Заранее спасибо за совет, помощь.

Программу тестирую на Nexus 4 Android 4.3.

Re: Записать playlist на SD Card

Добавлено: 12 ноя 2013, 11:58
trew
huligan писал(а):Я создаю плейлист. Создание плейлиста выглядит вот так (обрывок из кода):

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

            
File file = new File(Environment.getExternalStorageDirectory() + "/Music","Test.m3u");
PrintWriter writer = new PrintWriter(file, "UTF-8");
.....
    writer.println(PathToSong.toString()+"\r");
....
writer.flush();
writer.close();
Файл записывается в нужную папку, я вижу его через файловый менеджер. Но беда в том, что медиапроигрыватели не видят этот список воспроизведения.
То есть, даже если обновить медиатеку, то плейлист файл не отображается. Файловый менеджер (File Commander: аля Total Commander для Android)отображает и проигрывает плейлист.
Я нашел програмку в PlayMarket, My Playlist Maker: программа создает плейлист и после этого медиапроигрыватели видят мой созданный плейлист и плейлист, который создала программа. Соответственно, у меня есть подозрения, что нужно ввести какую-то команду, что бы файлы были видны программам, медиапроигрывателям. Файловые менеджеры то видят файлы, не понятно что меняется после того, как создается плейлист другой программой... Может кто подскажет какой недостающий кусочек кода надо вписать?

Заранее спасибо за совет, помощь.

Программу тестирую на Nexus 4 Android 4.3.
Может дело в кодировке файла m3u?

Бери два файла твой и тот который видит программа - и сравнивай их (кодировки, внутренности, место расположение).
m3u файл, который видит проигрыватель положи на sd-карту, проверишь - видит ли программа её по-прежнему.
m3u - это текстовый файл, поэтому можно посмотреть что внутри.

Re: Записать playlist на SD Card

Добавлено: 12 ноя 2013, 12:03
huligan
Может дело в кодировке файла m3u?

Бери два файла твой и тот который видит программа - и сравнивай их (кодировки, внутренности, место расположение).
m3u файл, который видит проигрыватель положи на sd-карту, проверишь - видит ли программа её по-прежнему.
m3u - это текстовый файл, поэтому можно посмотреть что внутри.
Я так и делал. открыл два файла, обе в кодировке "UTF-8". Я специально ложил второй файл в ту же папку, в которую я генерю первый файл(пробовал класть и в другую папку). Тем более мой файл не меняется после того, как создается другой файл с другим именем. Я, конечно, еще попробую поперекладывать файл, но я изначально записываю на карту памяти. Тем более в Nexus 4 нет съемной карты памяти. появилась еще одна подсказка: когда я через компьютер смотрю папки, то созданный в моей програмке плейлист не отображается, но в файловом менеджере - отображается. Я копирую плейлист с файлового менеджера в корень памяти и тогда в проводнике отображается файл. Далее я просто копирую этот файл обратно в папку, в которую изначально должен был сохранится файл (но проводник его не видел) и тогда плейдист виден медиапроигрывателям.

Re: Записать playlist на SD Card

Добавлено: 13 ноя 2013, 16:49
huligan
Появилась новая информация: плейлист становится виден для медиаплееров после перезагрузки аппарата. Т.е. возможно сгенеренный файл не виден, так как я разрабатываю и тестирую приложение через Android Studio с подключенным телефоном, а не формирую signed ".apk". хотя странно, на телефон программа устанавливается как приложение... Может глюк какой-то? Все равно мне кажется что существует строчка кода, которая позволяет "обновить" память телефона так, что бы файл был виден медиа приложениям.

Re: Записать playlist на SD Card

Добавлено: 18 ноя 2013, 15:27
huligan
Я нашел решение. Тему можно закрывать. Нужно было после записи файла пройтись мадиа сканнером, что бы медиа файлы проиндексировались. Это происходит автоматически при перезагрузки телефона. В моем случае, другое приложение запускало сканер и тогда были становились видны все новые и старые медиафайлы.