Опубликовано 2 июля, 20179 г web600x750.zip "портретный" вариант. "ландшафтный" вариант, теперь и на классике что-то видно. Сейчас слушаю Motorhead - рассинхронизации нет, может у браузеров от большого количества альбомов в плейлисте крышу срывало? UP. Пока писал, вернулся на страницу плейера - ползунок в конце застрял. Открыл Драгошу (он был закрыт), ввёл адрес, подключился - тоже самое, ползунок в конце, время идёт за концом трека. Через некоторое время (в обоих браузерах) ползунок отмораживается и переходит на следующий трек с накопленным рассинхроном. Изменено 3 июля, 20179 г пользователем AleXH
Опубликовано 3 июля, 20179 г @IgorA, Доброго дня. Как ваш плеер linux соотносится с oss4? Будет он работать? И что делать с /etc/asound.conf? Удалять?
Опубликовано 3 июля, 20179 г Автор @grigoxyr, поддержка OSS в linux плеере будет позже. Доступная консольная версия выводит только через ALSA. В OSS asound.conf не используется, поэтому можно его не трогать.
Опубликовано 3 июля, 20179 г Игорь, (запрос) в web API добавить команды:1. добавления папок в плейлист к уже существующим без прерывания воспроизведения.2. возврата полного пути выбранного трека. Изменено 3 июля, 20179 г пользователем AleXH
Опубликовано 3 июля, 20179 г Автор @AleXH, вот вариант для тестирования переходов и с добавленными командами.1. Добавление в плейлист: команда Get_Playlist вместо GetPlaylist.2. возврат полного пути выбранного трека: GetPath?album=индекс_альбома&song=индекс_трека Пример функции, выдающей окошко с путем выбранного трека:function GetPath() { $.getJSON('?GetPath&album='+CurrentAlbum+'&song='+CurrentSong, ParsePath); } function ParsePath(data) { alert(data.Path); } ap2web_x32.zip
Опубликовано 3 июля, 20179 г @IgorA, постоянное обновление убирать? За доработку спасибо, info по треку проверил, работает С Get_Playlist пока не вкурил как прикрутить, буду думать. Изменено 3 июля, 20179 г пользователем AleXH
Опубликовано 3 июля, 20179 г Автор @AleXH, да, постоянное обновление не требуется.Выше был выложен вариант с остановкой воспроизведения при добавлении альбомов, вот без остановки.Проверить можно, просто поменяв в актуальном скрипте GetPlaylist на Get_Playlist. Но плейлист после этого будет только увеличиваться.ap2web2_x32.zip
Опубликовано 3 июля, 20179 г Проверить можно, просто поменяв в актуальном скрипте GetPlaylist на Get_Playlist. Но плейлист после этого будет только увеличиваться.Это я понял сразу по красноречивому названию функции ) пока не понял как реализовать совместное проживание обоих вариантов. Не формируется список дисков по нажатию bPlus, по bOpen всё ок. Что и как сделано: функции GetPlaylist (Get_Playlist) вызываются взависимости от переданного аргумента, смотря какая кнопка её вызывала - bOpen или bPlus, а налогично с 2-мя функциями GetPlaylists и Get_Playlists. Правки минимальные, позиционирование строк в скрипте должно практически совпадать Изменено 4 июля, 20179 г пользователем AleXH
Опубликовано 4 июля, 20179 г Автор @AleXH, просто нужен еще переключатель режима или альтернативный вызов панели папок или альтернативный выход из нее, что позволит различить операции полного обновления плейлиста и добавления в него и вызывать соответственно GetPlaylis или Get_Playlist.Если делать для ПК, можно повторить вариант с удержанием клавиши Shift для добавления вместо замены при завершении выбора папки.Тогда надо поменять два вызова onselectPlaylist (в скрипте и в html разметке) на onselectPlaylist(event), а в функции написать: function onselectPlaylist(e) { ... if(e.shiftKey) $.getJSON('?Get_Playlist&playlist=' + PlaylistIndex, ParseAlbums); else $.getJSON('?GetPlaylist&playlist=' + PlaylistIndex, ParseAlbums); ... }
Опубликовано 4 июля, 20179 г Дело не в этом - если просто заменить по скрипту (3 замены) GetPlaylist на Get_Playlist, то нажатие на bOpen не выводит список дисков. Или я чего-то пока не понял... Я использовал такое решение:FlagNewPlaylist ? $.getJSON('?GetPlaylist&playlist=' + PlaylistIndex, ParseAlbums) : $.getJSON('?Get_Playlist&playlist=' + PlaylistIndex, ParseAlbums);состояние флага передаётся в js в качестве аргумента onselectPlaylist(true/false) и далее запоминается в FlagNewPlaylist и юзается по коду далее. Изменено 4 июля, 20179 г пользователем AleXH
Опубликовано 4 июля, 20179 г Автор Дело не в этом - если просто заметить по скрипту (3 замены) GetPlaylist на Get_Playlist, то нажатие на bOpen не выводит список дисков. Или я чего-то пока не понял...GetPlaylist, который получает список альбомов и который нужно заменять, вызывается только в функции onselectPlaylist. В остальных случаях вызывается функция GetPlaylists, которая получает список сохраненных плейлистов и доступных дисков. Ее заменять не надо. Изменено 4 июля, 20179 г пользователем IgorA
Опубликовано 4 июля, 20179 г Взлетело, спасибо Игорь, а как сделать поиск или фильтр с подсветкой в списке альбомов? Например альбомов много в плейлисте и нужно найти альбом, содержащий в названии какое-либо слово. Изменено 4 июля, 20179 г пользователем AleXH
Опубликовано 4 июля, 20179 г Автор Игорь, а как сделать поиск или фильтр с подсветкой в списке альбомов? Например альбомов много в плейлисте и нужно найти альбом, содержащий в названии какое-либо слово.Как вариант, поменять библиотеку zepto.js на совместимую по интерфейсу jquery, подключить jquery-ui, и использовать autocomplete combobox для списка альбомов.Пример с исходным кодом здесь:http://jqueryui.com/autocomplete/#combobox
Опубликовано 4 июля, 20179 г Автор @AleXH, вот совсем компактный пример, использующий дополнительно готовые стили и скрипты от Infragistics:1.html Изменено 4 июля, 20179 г пользователем IgorA
Опубликовано 4 июля, 20179 г Игорь, спасибо, помедитирую. Сделал так:function NextCommand() { document.getElementById('progress').value = 0; Playing ? $.getJSON('?Next', ParsePlay) : $.getJSON('?Pause', ParseStd); }- ожидал, что перейдёт на следующий трек и состояние паузы сохранится, но почему-то всё равно стартует воспроизведение... Новый концепт интерфейса, редизайн кнопок. Изменено 4 июля, 20179 г пользователем AleXH
Опубликовано 4 июля, 20179 г Автор Сделал так:function NextCommand() { document.getElementById('progress').value = 0; Playing ? $.getJSON('?Next', ParsePlay) : $.getJSON('?Pause', ParseStd); }- ожидал, что перейдёт на следующий трек и состояние паузы сохранится, но почему-то всё равно стартует воспроизведение...Для движка Play сбрасывает паузу, поэтому ее надо восстанавливать.Чтобы по Next сохранилось состояние паузы надо в конец ParsePlay вместо UpdateState добавить: if (Paused) $.getJSON('?Pause', ParseStd); else UpdateState();
Опубликовано 4 июля, 20179 г что-то у меня желание 2-е булевые из-за отдельных кнопок play и pause после "выламывания" кнопки паузы, заменить на статус из 3-х состояний: 0 - stop, 1 - pause, 2 - play, а то будет как-то по албански продолжать использовать 2-е булевые с запрещённым состоянием. Игорь, а сам "двигатель" поддерживает переходы в состоянии паузы, или он стартует автоматом и его нужно принудительно ставить на паузу после каждого перехода? - Посмотрел на обилие Playing и захотелось оставить всё как есть. Изменено 4 июля, 20179 г пользователем AleXH
Опубликовано 4 июля, 20179 г Автор @AleXH, ставить на паузу нужно, но чтобы пауза сохранялась при переключениях треков достаточно сделать исправление, о котором сказано в моем предыдущем сообщении.
Опубликовано 4 июля, 20179 г Игорь, я спрашивал о механизме работы самого сервера - при переключении происходит автостарт воспроизведения или нет? Если нет, то зачем его ставить на паузу, если он уже на паузе?
Опубликовано 4 июля, 20179 г Автор Да, фраза из сообщения выше "Для движка Play сбрасывает паузу" как раз и означает, что в сервере и плеере обработка команд смены трека и воспроизведения автоматически сбрасывает состояние паузы.
Опубликовано 4 июля, 20179 г спорная фича - если нужны автостарты, то предварительно включаем плей, если не нужны, то ставим на паузу и после этого переключаем треки - и выбор шире, и не нужных старт-стопов декодера нет.
Опубликовано 4 июля, 20179 г Автор Выход при переключении треков в общем случае нельзя удержать на реальной паузе и снять с нее позже, так как там останется в буфере "мусор" от прежнего трека. Поэтому использованное решение c переходом через "Stop-Play" достаточно оптимально.
Опубликовано 4 июля, 20179 г Автор Даже если переключение трека отрабатывается как перемотка внутри образа, буфер в любом случае потребуется сбросить.
Для публикации сообщений создайте учётную запись или авторизуйтесь