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

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Закрыто
huligan
Сообщения: 19
Зарегистрирован: 11 окт 2013, 12:28

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

Сообщение huligan » 12 ноя 2013, 11:47

Я создаю плейлист. Создание плейлиста выглядит вот так (обрывок из кода):

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

            
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.
Последний раз редактировалось huligan 29 ноя 2013, 13:14, всего редактировалось 1 раз.

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

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

Сообщение trew » 12 ноя 2013, 11:58

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 - это текстовый файл, поэтому можно посмотреть что внутри.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

huligan
Сообщения: 19
Зарегистрирован: 11 окт 2013, 12:28

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

Сообщение huligan » 12 ноя 2013, 12:03

Может дело в кодировке файла m3u?

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

huligan
Сообщения: 19
Зарегистрирован: 11 окт 2013, 12:28

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

Сообщение huligan » 13 ноя 2013, 16:49

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

huligan
Сообщения: 19
Зарегистрирован: 11 окт 2013, 12:28

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

Сообщение huligan » 18 ноя 2013, 15:27

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

Закрыто