Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.01.2013, 17:22
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию Просьба поразмышлять вместе

Никак не могу прийти к более корректному и оптимальному решению проблемы. Одна голова хорошо, а две головы хорошо хорошо.

Имеется плеер с плейлистом.

Алгоритм следующий:

- в плейлист загружаются все аудиозаписи пользователя
- в combobox альбомы пользователя
- OnDblClick по плейлисту воспроизводит выбранный трек запоминая его №
- по окончании воспроизведения %Track_Num% увеличивается на единицу и воспроизводится трек относительно %Track_Num%

За список аудиозаписей отвечает ListBox.

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

Предположим, что трек закончился, и программа перейдет на трек %Track_Num%+1 в текущем списке.

Как организовать плейлист так, чтобы решить сие проблему?
Ответить с цитированием
  #2  
Старый 11.01.2013, 17:26
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

При изменении значения в комбо-боксе (событие OnChange) сбрасывать TrackNum в 0.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 11.01.2013, 18:09
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Да, но вдруг %username% просто просматривает треклист своих альбомов? тогда как быть?
Ответить с цитированием
  #4  
Старый 11.01.2013, 18:24
my33oh my33oh вне форума
Новичок
 
Регистрация: 17.12.2012
Сообщения: 93
Репутация: -579
По умолчанию

Цитата:
Сообщение от Кодер
Да, но вдруг %username% просто просматривает треклист своих альбомов? тогда как быть?
следующий вопрос будет типа - что делать если %username% захочет потыкать по трекам в другом сборнике (без воспроизведения) они же будут выделяться ...

Последний раз редактировалось my33oh, 11.01.2013 в 18:26.
Ответить с цитированием
  #5  
Старый 11.01.2013, 18:48
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Цитата:
Сообщение от my33oh
следующий вопрос будет типа - что делать если %username% захочет потыкать по трекам в другом сборнике (без воспроизведения) они же будут выделяться ...

Молодец, показал себя, ты лучший.
Ответить с цитированием
  #6  
Старый 11.01.2013, 19:01
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Советую сделать такой плейлист:


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

Пользуюсь им около года (до этого использовал аимп, но 230 плейлистов в аимпе нереально использовать), плеера удобнее не встречал.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 11.01.2013 в 19:14.
Ответить с цитированием
  #7  
Старый 11.01.2013, 19:02
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Хранить все открытые плей-листы в массиве каких-нибудь TStringList-ов, и кроме TrackID еще сейвить PlayListID. Брать песню по комбинации PlayListID:TrackID. Отображаться будет один лист, но это не важно, т.к. в памяти все.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #8  
Старый 11.01.2013, 19:11
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Заинтересовал вариант MADMAN'a. Можно сварить что-нибудь из этого.
На всякий случай оставляю тему открытой.
Ответить с цитированием
  #9  
Старый 11.01.2013, 19:19
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Если сделаешь достаточно хороший плеер с удобным каталогизатором и выводом звука Direct Sound (можно еще и ASIO приделать), цены твоему плееру не будет.

Требования:
* Навигация по треку
* Громкость
* Баланс (скрытый, но легкодоступный)
* Запутывание
* Запетливание
* Много аудиокодеков
* Настройка цветов интерфейса (например темная, светлая тема)
Остальное - нигилизм.

Плеер на басс.длл делаешь?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 11.01.2013 в 19:44.
Ответить с цитированием
  #10  
Старый 12.01.2013, 01:44
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Вобщем да, bass.dll. Но стал замечать, что эта библа имеет утечку памяти. Так что в любом случае буду искать аналог, либо другие методы воспроизведения.
Ответить с цитированием
  #11  
Старый 12.01.2013, 03:17
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Забываешь где-то Channel-ы закрывать.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #12  
Старый 12.01.2013, 11:38
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Чем басс.длл лучше апишного воспроизведения, кроме как простоты использования?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #13  
Старый 12.01.2013, 14:59
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Цитата:
Забываешь где-то Channel-ы закрывать.
Исключено.

Цитата:
Чем басс.длл лучше апишного воспроизведения, кроме как простоты использования?
Это ты меня спрашиваешь?) Я вообще решил на бассе сделать лишь потому, что никогда с ним не работал.
Ответить с цитированием
  #14  
Старый 12.01.2013, 17:53
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Кодер
Исключено.
Я в своих проектах с BASS утечек не замечал, а если точнее их попросту нет.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #15  
Старый 12.01.2013, 19:29
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

какая у тебя версия?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter