Russian Qt Forum
Ноябрь 24, 2024, 16:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Программное управление плеером  (Прочитано 9472 раз)
8Observer8
Гость
« : Сентябрь 02, 2014, 15:59 »

Привет!

Один хороший человек поделился кодов с помощью которого можно программно: делать паузу, отключать звук, увеличивать\уменьшать громкость и т.д. Это делается с помощью функций WinAPI:
Код
C++ (Qt)
void MainWindow::emitClickedKey(int key)
{
   // Моделируем нажатие клавиши
   keybd_event( key, 0, 0, 0 );
 
   // Моделируем возврат клавиши в не нажатое состояние
   keybd_event( key, 0, KEYEVENTF_KEYUP, 0 );
}
 

Код
C++ (Qt)
#include <windows.h>
 
#define Key_Media_Play_Pause 0xB3
#define Key_Media_Stop       0xB2
#define Key_Media_Back       0xB1
#define Key_Media_Next       0xB0
#define Key_Media_Mute       0xAD
#define Key_Media_Sound      0xFA
#define Key_Media_VolumeUp   0xAF
#define Key_Media_VolumeDown 0xAE
 

Код
C++ (Qt)
void MainWindow::on_soundButton_clicked()
{
   emitClickedKey( Key_Media_Mute );
}
 
void MainWindow::on_volumeDownButton_clicked()
{
   emitClickedKey( Key_Media_VolumeDown );
}
 
void MainWindow::on_volumeUpButton_clicked()
{
   emitClickedKey( Key_Media_VolumeUp );
}
 

Так вот. Отключение звука, увеличение и уменьшение - работают, а остальные кнопки нет. Может есть специальные драйвера для мультимедийных клавиш? И когда их поставишь все кнопки будут работать?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Сентябрь 02, 2014, 16:16 »

У меня это работало: тестировал на WinXP и Win7 Улыбающийся
Записан

8Observer8
Гость
« Ответ #2 : Сентябрь 02, 2014, 16:27 »

Дело в том, что это замечательно работает с "Windows Media Player", а с Winamp'ом - нет.

У меня была старая клавиатура с мультимедийными клавишами. Я мог управлять Winamp'ом. Вопрос: работала бы эта программа с Winamp'ом с мультимедийной клавиатурой? И как сделать что бы работала? Пусть хотя бы с Winamp'ом.
Записан
8Observer8
Гость
« Ответ #3 : Сентябрь 02, 2014, 16:28 »

gil9red, кстати, большое спасибо за код Улыбающийся
Записан
Bepec
Гость
« Ответ #4 : Сентябрь 02, 2014, 16:31 »

Бгг... Часть системных клавиш работают на систему в целом. Т.е. (мут)/(+/- звука).

А вот (остановка-пауза/следующий трек) должны обрабатываться программой. Так что лезьте в горячие клавиши винампа и там устанавливайте (или включайте) необходимые действия.

В памяти просто висит мутное воспоминание, что в винампе горячие клавиши отключены по умолчанию. Могу и ошибаться Улыбающийся

PS ставьте aimp - там обработка по умолчанию.

« Последнее редактирование: Сентябрь 02, 2014, 16:33 от Bepec » Записан
8Observer8
Гость
« Ответ #5 : Сентябрь 02, 2014, 16:39 »

Вы про эти? А как я до них "долезу"?

Записан
Bepec
Гость
« Ответ #6 : Сентябрь 02, 2014, 16:47 »

Раньше всё настраивалось, сейчас не пользуюсь проигрывателями вообще. vk.com и вперёд песенки гонять Улыбающийся
Записан
8Observer8
Гость
« Ответ #7 : Сентябрь 02, 2014, 16:55 »

Я знаю, что есть возможность с помощью WinAPI найти Winamp и послать ему сообщения. По-моему, это называется "хук". Но может есть решение проще?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #8 : Сентябрь 02, 2014, 17:10 »

gil9red, кстати, большое спасибо за код Улыбающийся

На здоровье Веселый
Записан

Bepec
Гость
« Ответ #9 : Сентябрь 02, 2014, 17:13 »

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

PS но где то настройка должна быть, или же винамп испортился к чертям Улыбающийся
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #10 : Сентябрь 02, 2014, 18:04 »

Дело в том, что это замечательно работает с "Windows Media Player", а с Winamp'ом - нет.

У меня была старая клавиатура с мультимедийными клавишами. Я мог управлять Winamp'ом. Вопрос: работала бы эта программа с Winamp'ом с мультимедийной клавиатурой? И как сделать что бы работала? Пусть хотя бы с Winamp'ом.

Тестировал я кстати на проге AIM3.
Записан

Bepec
Гость
« Ответ #11 : Сентябрь 02, 2014, 18:08 »

Во во Улыбающийся
Записан
carrygun
Гость
« Ответ #12 : Сентябрь 03, 2014, 04:20 »

Как-то давно писал управление плеером через интернет. Клиент на Symbian, сервер на Qt управлял плеером через его API. Апишки плеера были на официальном сайте. В качестве плеера был jetaudio. Возможно у winamp'а тоже есть апишки, просто нужно их поискать.
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #13 : Сентябрь 03, 2014, 06:39 »

Я знаю, что есть возможность с помощью WinAPI найти Winamp и послать ему сообщения. По-моему, это называется "хук". Но может есть решение проще?
Куда уж проще? В каких-то версиях даже в его документации было это описано.

И настройка горячих клавиш у него тоже, вроде как, была.
Записан
Bepec
Гость
« Ответ #14 : Сентябрь 03, 2014, 07:05 »

Ну я оставил это на откуп ТСса. Winamp'ом я пользовался году эдак в 2003 что ли Веселый
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.158 секунд. Запросов: 23.