Перейти к содержанию
View in the app

A better way to browse. Learn more.

Dr.Head Forum. Всё можно послушать!

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

1920x420_D.webp

Album Player (Aplayer)

Featured Replies

Опубликовано

web600x750.zip "портретный" вариант.

2017_07_03_140146.png

 

"ландшафтный" вариант, теперь и на классике что-то видно.

2017_07_02_212510.png

 

Сейчас слушаю Motorhead - рассинхронизации нет, может у браузеров от большого количества альбомов в плейлисте крышу срывало? UP. Пока писал, вернулся на страницу плейера - ползунок в конце застрял. Открыл Драгошу (он был закрыт), ввёл адрес, подключился - тоже самое, ползунок в конце, время идёт за концом трека. Через некоторое время (в обоих браузерах) ползунок отмораживается и переходит на следующий трек с накопленным рассинхроном.

Изменено пользователем AleXH

  • Ответов 20,7k
  • Просмотры 3,1m
  • Создана
  • Последний ответ

Больше всех сообщений

Популярные сообщения в теме

  • Есть область "beyong bit-perfect". То есть, когда bit-perfect уже есть, а проблемы остаются. Авторы ряда популярнейших плееров, включая foobar2000 и AIMP, активно отрицают саму принципиальную возможн

  • Обновление плеера от 31.01.2023 Для Windows • Исправлено восстановление выбора последнего воспроизводившегося трека при перезапуске плеера для альбомов с индексной картой .cue. • Для веб-интер

  • Для чайников все просто и так - нажать кнопку "пуск" и слушать. Настройки - от лукавого

Изображения в теме

Опубликовано

@IgorA, Доброго дня. Как ваш плеер linux соотносится с oss4? Будет он работать? И что делать с /etc/asound.conf? Удалять?

Опубликовано
  • Автор

@grigoxyr, поддержка OSS в linux плеере будет позже. Доступная консольная версия выводит только через ALSA. В OSS asound.conf не используется, поэтому можно его не трогать.

Опубликовано

Игорь, (запрос) в web API добавить команды:

1. добавления папок в плейлист к уже существующим без прерывания воспроизведения.

2. возврата полного пути выбранного трека.

Изменено пользователем AleXH

Опубликовано
  • Автор

@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

Опубликовано

@IgorA, постоянное обновление убирать? За доработку спасибо, info по треку проверил, работает :yes: С Get_Playlist пока не вкурил как прикрутить, буду думать.

Изменено пользователем AleXH

Опубликовано
  • Автор

@AleXH, да, постоянное обновление не требуется.

Выше был выложен вариант с остановкой воспроизведения при добавлении альбомов, вот без остановки.

Проверить можно, просто поменяв в актуальном скрипте GetPlaylist на Get_Playlist. Но плейлист после этого будет только увеличиваться.

ap2web2_x32.zip

Опубликовано
Проверить можно, просто поменяв в актуальном скрипте GetPlaylist на Get_Playlist. Но плейлист после этого будет только увеличиваться.

Это я понял сразу по красноречивому названию функции ) пока не понял как реализовать совместное проживание обоих вариантов.

 

 

Не формируется список дисков по нажатию bPlus, по bOpen всё ок. Что и как сделано:

 

функции GetPlaylist (Get_Playlist) вызываются взависимости от переданного аргумента, смотря какая кнопка её вызывала - bOpen или bPlus, а налогично с 2-мя функциями GetPlaylists и Get_Playlists. Правки минимальные, позиционирование строк в скрипте должно практически совпадать

Изменено пользователем AleXH

Опубликовано
  • Автор

@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);
...
}

Опубликовано

Дело не в этом - если просто заменить по скрипту (3 замены) GetPlaylist на Get_Playlist, то нажатие на bOpen не выводит список дисков. Или я чего-то пока не понял... Я использовал такое решение:

FlagNewPlaylist ? $.getJSON('?GetPlaylist&playlist=' + PlaylistIndex, ParseAlbums) : $.getJSON('?Get_Playlist&playlist=' + PlaylistIndex, ParseAlbums);

состояние флага передаётся в js в качестве аргумента onselectPlaylist(true/false) и далее запоминается в FlagNewPlaylist и юзается по коду далее.

Изменено пользователем AleXH

Опубликовано
  • Автор

Дело не в этом - если просто заметить по скрипту (3 замены) GetPlaylist на Get_Playlist, то нажатие на bOpen не выводит список дисков. Или я чего-то пока не понял...

GetPlaylist, который получает список альбомов и который нужно заменять, вызывается только в функции onselectPlaylist. В остальных случаях вызывается функция GetPlaylists, которая получает список сохраненных плейлистов и доступных дисков. Ее заменять не надо.

Изменено пользователем IgorA

Опубликовано

Взлетело, спасибо :) Игорь, а как сделать поиск или фильтр с подсветкой в списке альбомов? Например альбомов много в плейлисте и нужно найти альбом, содержащий в названии какое-либо слово.

 

 

2017_07_04_085022.png

Изменено пользователем AleXH

Опубликовано
  • Автор
Игорь, а как сделать поиск или фильтр с подсветкой в списке альбомов? Например альбомов много в плейлисте и нужно найти альбом, содержащий в названии какое-либо слово.

Как вариант, поменять библиотеку zepto.js на совместимую по интерфейсу jquery, подключить jquery-ui, и использовать autocomplete combobox для списка альбомов.

Пример с исходным кодом здесь:

http://jqueryui.com/autocomplete/#combobox

Опубликовано

Посмотрел, спасибо. Победить не смогу - сложно для меня.

Опубликовано
  • Автор

@AleXH, вот совсем компактный пример, использующий дополнительно готовые стили и скрипты от Infragistics:

1.html

Изменено пользователем IgorA

Опубликовано

Игорь, спасибо, помедитирую. Сделал так:

function NextCommand()
{
document.getElementById('progress').value = 0;
Playing ? $.getJSON('?Next', ParsePlay) : $.getJSON('?Pause', ParseStd);
}

- ожидал, что перейдёт на следующий трек и состояние паузы сохранится, но почему-то всё равно стартует воспроизведение...

 

Новый концепт интерфейса, редизайн кнопок.

2017_07_04_180816.png

Изменено пользователем AleXH

Опубликовано
  • Автор

Сделал так:

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();

Опубликовано

что-то у меня желание 2-е булевые из-за отдельных кнопок play и pause после "выламывания" кнопки паузы, заменить на статус из 3-х состояний: 0 - stop, 1 - pause, 2 - play, а то будет как-то по албански продолжать использовать 2-е булевые с запрещённым состоянием.

 

Игорь, а сам "двигатель" поддерживает переходы в состоянии паузы, или он стартует автоматом и его нужно принудительно ставить на паузу после каждого перехода? - Посмотрел на обилие Playing и захотелось оставить всё как есть.

Изменено пользователем AleXH

Опубликовано
  • Автор

@AleXH, ставить на паузу нужно, но чтобы пауза сохранялась при переключениях треков достаточно сделать исправление, о котором сказано в моем предыдущем сообщении.

Опубликовано

Игорь, я спрашивал о механизме работы самого сервера - при переключении происходит автостарт воспроизведения или нет? Если нет, то зачем его ставить на паузу, если он уже на паузе?

Опубликовано
  • Автор

Да, фраза из сообщения выше "Для движка Play сбрасывает паузу" как раз и означает, что в сервере и плеере обработка команд смены трека и воспроизведения автоматически сбрасывает состояние паузы.

Опубликовано

спорная фича - если нужны автостарты, то предварительно включаем плей, если не нужны, то ставим на паузу и после этого переключаем треки - и выбор шире, и не нужных старт-стопов декодера нет.

Опубликовано
  • Автор

Выход при переключении треков в общем случае нельзя удержать на реальной паузе и снять с нее позже, так как там останется в буфере "мусор" от прежнего трека. Поэтому использованное решение c переходом через "Stop-Play" достаточно оптимально.

Опубликовано

Даже в случае единого образа? - Там же треки вообще условны.

Опубликовано
  • Автор

Даже если переключение трека отрабатывается как перемотка внутри образа, буфер в любом случае потребуется сбросить.

Для публикации сообщений создайте учётную запись или авторизуйтесь

Последние посетители 0

  • Ни одного зарегистрированного пользователя не просматривает данную страницу

Account

Navigation

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.