MuLtLaNdIa | Дата: Вторник, 15.05.2012, 21:00 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 12
Статус: Offline
| Доброго времени суток. Интересует такой вопрос, как можно осуществить управление плеером через БлютуЗ гарнитуру или мультимедийные кнопки на клавиатуре компьютера, например как в Windows Media плеере? Возможно ли такое? Если да то подскажите, пожалуйста
|
|
| |
xaramamburu | Дата: Четверг, 17.05.2012, 23:24 | Сообщение # 2 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: 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 правда здесь идет регистрация горячих системных клавиш, но думаю должно быть все понятно.
|
|
| |
MuLtLaNdIa | Дата: Пятница, 18.05.2012, 18:44 | Сообщение # 3 |
Рядовой
Группа: Пользователи
Сообщений: 12
Статус: Offline
| xaramamburu прописал всё как написано, но ругается: Undeclared identifier: 'VK_MEDIA_PREV_TRACK' Undeclared identifier: 'VK_MEDIA_NEXT_TRACK'
Не могу понять что делать... Может нужно в самой процедуре прописывать их в рахделе VAR?
Сообщение отредактировал MuLtLaNdIa - Пятница, 18.05.2012, 19:04 |
|
| |
xaramamburu | Дата: Пятница, 18.05.2012, 19:19 | Сообщение # 4 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: 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
Статус: Offline
| xaramamburu, Спасибо большое за ценную информацию всё заработало без нареканий + теперь можно управлять плеером с блютуз гарнитуры
Сообщение отредактировал MuLtLaNdIa - Пятница, 18.05.2012, 23:06 |
|
| |