QIP Infium nám umožnuje jak přehrávání vlastních zvuků tak zvuků externích ve formátu wav.
Pokud tedy chceme přehrát zvuk pošleme zprávu PM_PLUGIN_PLAY_WAV_SND
Parametrem WParam ve zprávě určujeme jaký zvuk se bude přehrávat.
Kód: Vybrat vše
Vlastní externí zvuk = 0;
QIP_SND_ID_STARTUP = 1;
QIP_SND_ID_INC_MSG = 2;
QIP_SND_ID_MSG_SENT = 3;
QIP_SND_ID_ONLINE_ALERT = 4;
QIP_SND_ID_STATUS_NOTIFY = 5;
QIP_SND_ID_TRAY_NOTIFY = 6;
QIP_SND_ID_AUTH_REQUEST = 7;
QIP_SND_ID_AUTH_DENIED = 8;
QIP_SND_ID_AUTH_GRANTED = 9;
QIP_SND_ID_ADDED = 10;
QIP_SND_ID_INC_FILE = 11;
QIP_SND_ID_FT_COMPLETE = 12;
QIP_SND_ID_SERVER_MSG = 13;
QIP_SND_ID_EMAIL_MSG = 14;
Parametrem NParam předáme informaci jesli chceme přehrát zvuk vždy nebo podle nastavení Infia.
True - přehraje zvuk vždy
False - pokud to QIP Infium umožní. Zvuky mohou být uživatelem vypnuté
Celá zpráva pak bude vypadat takto:
Přehrání vlastního externího zvuku
Kód: Vybrat vše
PlugMsg1.Msg := PM_PLUGIN_PLAY_WAV_SND;
//Nastavíme 0 protoze budeme prehravat vlastni zvuk
PlugMsg1.WParam := 0;
//Zadame cestu k nasemu souboru
wPath := IncludeTrailingPathDelimiter(ExtractFilePath(FDllPath)) + 'example.wav';
//Cestu predame do parametru zpravy
PlugMsg1.LParam := LongInt(PWideChar(wPath));
//Zvuk budeme prehravat vzdy i pokud v Infiu zvuk vypnuty
PlugMsg1.NParam := Byte(True);
//Odesleme zpravu
PlugMsg1.DllHandle := FDllHandle;
FPluginSvc.OnPluginMessage(PlugMsg1);
Kód: Vybrat vše
PlugMsg1.Msg := PM_PLUGIN_PLAY_WAV_SND;
//Nastavíme ID interniho zvuku který chceme prehrat
PlugMsg1.WParam := QIP_SND_ID_INC_MSG;
//Prevezmeme nastaveni zvuku
PlugMsg1.NParam := Byte(False);
//Odesleme zpravu
PlugMsg1.DllHandle := FDllHandle;
FPluginSvc.OnPluginMessage(PlugMsg1);
Do kódu je také přidán příklad programového vypnutí nebo zapnutí zvuků.
Kód: Vybrat vše
{Zjisteni zapnuti/vypnuti zvuku}
PlugMsg.Msg := PM_PLUGIN_SOUND_GET;
PlugMsg.DllHandle := FPluginInfo.DllHandle;
FPluginSvc.OnPluginMessage(PlugMsg);
{Vyhodnoceni stavu - pokud jsou zvuky zapnuty provedeme vypnutí }
if Boolean(PlugMsg.WParam) then
begin
PlugMsg.Msg := PM_PLUGIN_SOUND_SET;
PlugMsg.WParam := Integer(False); // False - vypne zvuky, True - zapne zvuky
PlugMsg.DllHandle := FPluginInfo.DllHandle;
FPluginSvc.OnPluginMessage(PlugMsg);
end;
Tuto zprávu nám Infium pošle a můžete ji zachytit v proceduře TQipPlugin.OnQipMessage
Kód: Vybrat vše
PM_PLUGIN_SOUND_CHANGED : QipSoundChanged(PlugMsg);
Kód: Vybrat vše
procedure TQipPlugin.QipSoundChanged(PlugMsg: TPluginMessage);
var str : string;
begin
if Boolean(PlugMsg.WParam) then str := 'Zvuky zapnuty' else str := 'Zvuky vypnuty';
end;
Také se budeme věnovat zjištení informací o otevřeném kontaktu. Budeme tedy načítat detaily kontaktu.