Воскресенье, 22.10.2017, 05:33
Приветствую Вас Гость

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

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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Delphi » Создание mp3 плеера на Delphi » Управление плеером с помощью кнопок и через блютуз гарнитур (разбираем внешнее управление плеером)
Управление плеером с помощью кнопок и через блютуз гарнитур
MuLtLaNdIaДата: Вторник, 15.05.2012, 21:00 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 12
Репутация: 0
Статус: Offline
Доброго времени суток.
Интересует такой вопрос, как можно осуществить управление плеером через БлютуЗ гарнитуру или мультимедийные кнопки на клавиатуре компьютера, например как в Windows Media плеере?
Возможно ли такое? Если да то подскажите, пожалуйста smile
 
xaramamburuДата: Четверг, 17.05.2012, 23:24 | Сообщение # 2
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Про блютуз сказать ничего не могу, а про мультимедийные кнопки, то можно попробовать назначить их как горячие клавиши.

В секции private пишем код:
private
{ Private declarations }
procedure WMHotKey(var Message: TMessage); message WM_HOTKEY;

Далее описываем процедуру:

procedure TForm1.WMHotKey(var Message: TMessage);
begin
if HiWORD(Message.lParam) = VK_MEDIA_NEXT_TRACK Then begin вызов следующей песни;end;
if HiWORD(Message.lParam) = VK_MEDIA_PREV_TRACK Then begin вызов предыдущей песни;end;
end;

//В событии OnClose удаляем горячую клавишу:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnregisterHotKey(Form1.Handle, 1);
UnregisterHotKey(Form1.Handle, 2);
end;

//В обработчике события OnCreate
//основной формы создаём горячую клавишу:

procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Form1.Handle, 1, 0, VK_MEDIA_NEXT_TRACK);
RegisterHotKey(Form1.Handle, 2, 0, VK_MEDIA_PREV_TRACK);
end;

коды мультимедийных клавиш:

Stop 178 VK_MEDIA_STOP
Play/Pause 179 VK_MEDIA_PLAY_PAUSE
Next 176 VK_MEDIA_NEXT_TRACK
Prev 177 VK_MEDIA_PREV_TRACK

Подробнее можно посмотреть пример здесь http://www.delphisources.ru/pages/faq/base/sys_hotkey.html правда здесь идет регистрация горячих системных клавиш, но думаю должно быть все понятно. smile
 
MuLtLaNdIaДата: Пятница, 18.05.2012, 18:44 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 12
Репутация: 0
Статус: Offline
xaramamburu
прописал всё как написано, но ругается:
Undeclared identifier: 'VK_MEDIA_PREV_TRACK'
Undeclared identifier: 'VK_MEDIA_NEXT_TRACK'

Не могу понять что делать... sad Может нужно в самой процедуре прописывать их в рахделе VAR?


Сообщение отредактировал MuLtLaNdIa - Пятница, 18.05.2012, 19:04
 
xaramamburuДата: Пятница, 18.05.2012, 19:19 | Сообщение # 4
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
MuLtLaNdIa,
Попробуйте определить коды этих клавиш с помощью процедуры?
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
label1.Caption:=inttostr(key);
end;

и вместо VK_MEDIA_PREV_TRACK прописать везде код этой клавиши. Можете попробовать прописать коды которые приведены выше. Дело в том, что у меня нет мультимедийной клавиатуры и работу я проверял на клавишах управления курсором - все работало. Можете проверить написать VK_LEFT и VK_RIGHT.))))
 
MuLtLaNdIaДата: Пятница, 18.05.2012, 23:05 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 12
Репутация: 0
Статус: Offline
xaramamburu,
Спасибо большое за ценную информацию smile всё заработало без нареканий + теперь можно управлять плеером с блютуз гарнитуры smile


Сообщение отредактировал MuLtLaNdIa - Пятница, 18.05.2012, 23:06
 
Форум » Delphi » Создание mp3 плеера на Delphi » Управление плеером с помощью кнопок и через блютуз гарнитур (разбираем внешнее управление плеером)
Страница 1 из 11
Поиск:


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