Пятница, 19.04.2024, 04:25
Приветствую Вас Гость

Не ошибается тот, кто ничего не делает.
Но и ничего не делать - ошибка.

Эмиль Кроткий

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Форум » Delphi » Создание mp3 плеера на Delphi » Разное (Работа с плейлистом, подключение плагинов и т.д.)
Разное
xaramamburuДата: Понедельник, 19.08.2013, 18:12 | Сообщение # 16
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Praying
ShellExecute( 0, 'open', 'explorer', PChar('/select, ' + Listbox1.Items[ListBox1.ItemIndex]), '', SW_NORMAL );
Создавайте PopupMenu и вешайте на кнопку данный код.)))
 
PrayingДата: Понедельник, 19.08.2013, 22:23 | Сообщение # 17
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Offline
Спасибо))) Теперь стало намного удобнее искать местоположения треков, из огромных плейлистов)))
Есть еще такой вопрос) Неоднократно гуглил, но четкого ответа для него не нашел...
Как выводить название трека в заголовок формы, и в label у вас на сайте есть)) А вот как можно сделать бегущую строку с названием трека, в тот же label? Идущую справа <- налево, которая бы вытекала из краев. Например вот так:  "livion.mp3:.      .:M83 – Ob"


Сообщение отредактировал Praying - Понедельник, 19.08.2013, 22:24
 
xaramamburuДата: Понедельник, 19.08.2013, 23:56 | Сообщение # 18
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Praying

Цитата
Неоднократно гуглил, но четкого ответа для него не нашел...

Плохо гуглили, например здесь:

http://www.delphisources.ru/forum/showthread.php?t=7875

http://www.programmersforum.ru/showthread.php?t=1046

http://www.delphisources.ru/pages/faq/base/run_string.html

Ну а дальше включайте мозги.))))
 
PrayingДата: Среда, 21.08.2013, 14:58 | Сообщение # 19
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Offline
Спасибо)) В общем с бегущей строкой нам не по пути, нарушает концепцию)) Но если кому нужно делал так:
В разделе procedure TForm_Player.Player;  в месте где в label выводим названия трека дописал:

Label19.Caption:='.::'+ ExtractFileName(FileName)+ '::.    ';

Кинул второй таймер, тк в первом слишком много  всего... Х)



Добавлено (21.08.2013, 14:58)
---------------------------------------------
Есть вопрос) Мы в label выводим время трека в таком виде: Label16.Caption:=FormatDateTime('hh:mm:ss',ValDo);
Часы:Минуты:Секунды
Можно ли сделать так чтобы выводились только
Минуты:Секунды ?

Сообщение отредактировал Praying - Среда, 21.08.2013, 14:38
 
xaramamburuДата: Среда, 21.08.2013, 18:27 | Сообщение # 20
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Можно просто вырезать нужное функцией copy.

Label16.Caption:=copy(FormatDateTime('hh:mm:ss',ValDo),4,5);

smile
 
PrayingДата: Суббота, 24.08.2013, 14:07 | Сообщение # 21
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Offline
Спасибо огромное, за все ответы))))))

Добавлено (24.08.2013, 13:58)
---------------------------------------------
Такой вопрос)  Если нажать на Pause, а потом Play воспроизведение продолжится, а если на  Stop, то никакой реакции=( Что нужно дописать чтоб, после нажатия Stop сбрасывалось? Коды ваши.

Дописал проверку or mode=paused, но ругается...

Добавлено (24.08.2013, 14:07)
---------------------------------------------
Возник вопрос по горячим клавишам) Создал ActionList1, в нем создал события:




Коды заимствованы и немного переделаны из ваших, все норм работают.
Но вот кнопки Play, Stop, Pause, как их организовать?


Сообщение отредактировал Praying - Суббота, 24.08.2013, 14:09
 
xaramamburuДата: Воскресенье, 25.08.2013, 16:37 | Сообщение # 22
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Цитата
Дописал проверку or mode=paused, но ругается...

Где вы изучали паскаль? Сложные условия нужно писать в круглых скобках.)))
if (mode=play) or (mode=paused) then

Цитата
Но вот кнопки Play, Stop, Pause, как их организовать?

Аналогично. Создавайте Action событие и копируйте в него код соответствующей кнопки, а затем у кнопки в свойстве Action выберите это событие. Да, после этого событие OnClick у кнопки можно удалить, оно у вас теперь будет находится в ActionList.)))
 
PrayingДата: Понедельник, 26.08.2013, 11:09 | Сообщение # 23
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Offline
Да просто результат немного не тот. Сейчас объясню.
С помощью клавиш вперед, назад, в ListBox выбираю трек. Когда выбрал нажимаю Play, трек играет. Когда нажимаю Pause трек останавливается, на Stop не реагирует хотя все так же описано как и на клавишах (исправил скобки теперь все норм работает). Опять нажму Play, трек играет, выберу клавишами вперед, назад другой, нажму Play он не запускается пока не остановлю тот который уже играет кнопкой Stop.
А нужно чтоб выбрав трек горячими клавишами вперед, назад он сразу переключался, без предварительной остановки. Как быть?
Код с кнопок я и так вставлял. Если следовать вашим инструкциям, то тоже что и в Action становится и для кнопок, и те же косяки (то что я выше описал). А кнопки вперед, назад здесь работать должны по другому, так как и было в ваших уроках: при нажатии на них, песни сразу переключаются. Так что лучше я думаю пусть они будут описаны отдельно.


Сообщение отредактировал Praying - Понедельник, 26.08.2013, 11:11
 
xaramamburuДата: Понедельник, 26.08.2013, 17:39 | Сообщение # 24
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
На кнопке Play за это отвечает строка, выделенная красным, в коде ниже:

procedure TForm_player.Button1Click(Sender: TObject);
begin
//Проверяем если воспроизведение уже идет то выходим
if mode=play then exit ;
//Запускаем процедуру проигрывания
player;
еnd;

Либо удалите ее или по вешайте на ActionList этот код без нее. Она нужна для того, чтоб песня, которая уже играет не сбрасывалась на начало при нажатии кнопки Play.)))
 
PrayingДата: Среда, 28.08.2013, 17:37 | Сообщение # 25
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Offline
Еще раз спасибо, теперь все работает так как нужно happy

Добавлено (28.08.2013, 17:37)
---------------------------------------------
Еще раз обращусь за советом) Пытаясь скомпоновать свой эквалайзер, столкнулся с тем что Label очень громоздки, даже если уменьшать формат (деления тоже убрал)... Решил вывести в подсказки (Hint), но невидно на какой позиции стоит ползунок. Захотелось сделать так же как в AIMP, там рядом с подписью можно наблюдать позицию.
Вот в таком виде: 500Hz  [-2,70 db]
Значения db изменяются по мере движения ползунка. То-есть подсказка не исчезает, когда двигается ползунок.
Возможно ли, и как это организовать?


Сообщение отредактировал Praying - Среда, 28.08.2013, 18:19
 
xaramamburuДата: Четверг, 29.08.2013, 19:48 | Сообщение # 26
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
 
Цитата
Решил вывести в подсказки (Hint), но невидно на какой позиции стоит ползунок. Захотелось сделать так же как в AIMP, там рядом с подписью можно наблюдать позицию.
Можно попробовать так:

procedure TForm_player.TrackBar3Change(Sender: TObject);
begin
-------------------------------------------
-------------------------------------------
TrackBar3.Hint:='80Hz '+'['+inttostr(15-TrackBar3.position)+']' 
Application.ActivateHint(Mouse.CursorPos);
end;

Правда не могу  сказать в каких единицах здесь задается усиление.)))
 
PrayingДата: Пятница, 30.08.2013, 20:59 | Сообщение # 27
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Offline
Спасибо \О/ ))) Почти то, что нужно. В AIMP, Hint не исчезает, так сказать 'онлайн показывает'. Но я думаю что это не Hint, а какая нибудь панелька которая таскается за курсором, если судить по  таким же задаваемым вопросам в инетах)
Не стал заморачиваться точностью, чуть добавил, и получилось почти тоже что и хотел)))

procedure TForm_player.TrackBar3Change(Sender: TObject);
begin
//---------------------------------
...
//----------------------------------
TrackBar3.Hint:='80Hz '+'['+inttostr(15-TrackBar3.position)+'db'+']';
Application.ActivateHint(Mouse.CursorPos);
Application.HintColor := clSkyBlue;
Application.HintPause := 10;
Application.HintHidePause := 5000;
end;

Спасибо за помощь)


Сообщение отредактировал Praying - Пятница, 30.08.2013, 21:54
 
VladДата: Воскресенье, 22.09.2013, 23:17 | Сообщение # 28
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
как сделать так, чтобы в плейлисте песни были пронумерованы?
 
xaramamburuДата: Понедельник, 23.09.2013, 10:43 | Сообщение # 29
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Vlad
смотрите тему на форуме "Как работать с плейлистом в delphi на библиотеке BASS.DLL?" начиная с сообщения №69 http://basicsprog.ucoz.ru/forum/4-4-201-16-1341560865 и далее. Все это делается с помощью отрисовки в ListBox. Единственное что удалите из процедуры в этом сообщении строчку:
TextOut(rect.right-50, rect.top, lentime(Listbox1.Items[index]));//для времени
После того как разберетесь, что к чему можете вернуться к началу темы и добавить время, иконки и т.д. в плейлист.))))
 
VladДата: Пятница, 27.09.2013, 23:31 | Сообщение # 30
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
первая песня начинается с нуля. можно сделать так, чтоб с 1?

Добавлено (27.09.2013, 23:31)
---------------------------------------------
первая песня начинается с нуля. можно сделать так, чтоб с 1?

 
Форум » Delphi » Создание mp3 плеера на Delphi » Разное (Работа с плейлистом, подключение плагинов и т.д.)
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:


Copyright MyCorp © 2024Конструктор сайтов - uCoz