===[ Тяжёлая музыка ]=== #post-id: 5236-11-59 #original-date: 26.11.2014 Wed #original-time: 11:59 AM #original-day: 5236 #original-host: WinXP Prof SP3 (Build 2600) Плеер Transcend. Красивый, с цветным экранчиком на два с половиной дюйма, с неплохим звуком, с хорошими наушниками из коробки (на днях погибли =_=), с внутренней памятью на 8 гиг и поддержкой карточек (стоит 16). И при этом стоил в районе трёх тысяч несколько лет назад - такие же от других производителей стоили тогда дороже. В меню проигрывания (а есть ещё всякие просмотры картинок, видео, чтения текстов, диктофон и даже радио) есть пункты, отвечающие за внутреннюю память, внешнюю (MicroSD) и "Последний проигрывавшийся трэк". Если войти в последнее, то можно увидеть большой список всей-всей музыки на устройстве или на карточке (списки создаются для того или другого в зависимости от того, откуда игралась музыка) с курсором на трэке, который и игрался последним. Старт происходит быстро. Если же выбрать один из типов памяти и в списке файлов и каталогов выбрать нужный файл, то старт анимает некоторое время, при чём с карточки в 16 гиг может стартовать до минуты. Иногда при удалении файлов список портится, и файлы-призраки остаётся в нём с короткими именами. При проигрывании плеер сообщает, что файл не найден и изымает из списка. Но при включении файлы возвращаются снова в список, и курсор в последнем проигрываемом может оказаться н на том файле, на котором мы действительно остановились. Наконец поняла по какому алгоритму всё это работает. До такого могли додуматься только китайцы. При открытии файла через "проводник", эта шайтан-машина начинает строить список всех файлов на устройстве и где-то там его кэширует. Полагаю, что карточка не через самые быстрые интерфейсы подключена ("Это устройство может работать быстрее"), так что даже если её объём такой же, как у внутренней памяти, список составляется гораздо дольше. После того как список составлен, плеер находит в нём открытый файл. Поэтому если файл находися в начале списка, то открытие происходит заметно быстрее, чем если он затерялся в самом конце. Найдя файл, плеер запоминает ИНДЕКС этого файла. Точнее, запоминает он не сразу, а при выключении плеера - на это намекает то, что если нажать Reset, то это значение не восстановится, а будет использовано то, которое осталось с последнего правильного выключения. Так вот. При включении после правильного выключения и выборе пункта "Последнее", плеер показывает скэшированный список и выделяет в нём файл с запомненным при выключении индексом. Типа, скорость и оптимизация. Это объясняет поведение при файлах-призраках. Допустим, мы удалили файлы с индексами 69, 70 и 71. Файл с индексом 72 получил индекс 69. Мы послушали его и вырубили плеер. Потом включили, и в список файлов вернулись удалённые. Плеер видит, что остановились мы на файле с индексом 69 и вместо того, который был 72-ым, выбирает файл-призрак. Если удалено было много файлов, то сдвиги могут оказаться весьма неожиданными. И вот, мы хотим послушать музыку из другой папки даже на том же устройстве. Можно выбрать в скэшированном списке, но это долго. Поэтому мы идём в "проводник" и выбираем новый файл. И тут происходит промах великих оптимизаторов. Вместо того чтобы искать файл в скэшированном списке, они начинают процесс построения списка с нуля. Вот так оно и работает. Честно говоря, это та ещё боль =_= Приходится по возможности воздерживаться от холодных стартов и трэки выбирать из общего списка, тоесть слушать всё по порядку и не вредничать =_=