|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Einen Ton / Sounddatei nur 5 Sekunden abspielen
Hi, irgendwie gehen meine Artikel anscheinend unter
Ich bin gerade an einem Problem, wie ich einen Ton oder eine Sounddatei mittels PlaySound() für eine bestimmte Zeitdauer abspielen kann. Es soll ein Ton oder Sounddatei 5 Sekunden lang abgespielt werden, wenn die Bedingung erfüllt ist. Mit Ticks geht es nicht, denn die sind zu unregelmäßig. Mit a = TimeCurrent(); b=a+Zeit; geht es auch nicht, da TimeCurrent ja immer wieder neu berechnet wird. Mir fehlt da echt die Idee! Hat jemand bitte einen Gedanken, der mir weiterhelfen könnte?! Ein Codeschnippsel oder sonstwas? |
|
|||
Komisches Gefühl, von Android Studio zu MetaEditor zu wechseln...
Aber ich hab grad mal spontan an folgendes gedacht: Möglichkeit 1: Nicht so toll (unter anderem wegen empfohlene Aufrufe in der Dokumentation) Code:
// Zum Zeitpunkt von PlaySound(...) EventSetTimer(5); ... ... // In OnTimer() PlaySound(NULL); EventKillTimer(); Find ich die beste von den drein... Code:
... int SEC_ON_START = 0; int SEC_CUR = 0; bool SOUND_ACTIVE = false; ... // Timer in OnInit einmalig initialisieren EventSetTimer(1); // Zum Zeitpunkt von PlaySound(...) SEC_ON_START = TimeSeconds(TimeCurrent()); SOUND_ACTIVE = true; // In OnTimer() if(SOUND_ACTIVE) { SEC_CUR = TimeSeconds(TimeCurrent()); if(SEC_ON_START < 55) { if((SEC_CUR >= SEC_ON_START+5) || (SEC_CUR < SEC_ON_START)) {PlaySound(NULL); SOUND_ACTIVE = false;} } else if(SEC_CUR < SEC_ON_START && SEC_CUR+60 >= SEC_ON_START+5) {PlaySound(NULL); SOUND_ACTIVE = false;} } Wenns ohne den Timer sein soll (ungenau auf Tick-Basis!) ... Code:
... int SEC_ON_START = 0; int SEC_CUR = 0; bool SOUND_ACTIVE = false; ... // Zum Zeitpunkt von PlaySound(...) SEC_ON_START = TimeSeconds(TimeCurrent()); SOUND_ACTIVE = true; // In OnTick() if(SOUND_ACTIVE) { SEC_CUR = TimeSeconds(TimeCurrent()); if(SEC_ON_START < 55) { if((SEC_CUR >= SEC_ON_START+5) || (SEC_CUR < SEC_ON_START)) {PlaySound(NULL); SOUND_ACTIVE = false;} } else if(SEC_CUR < SEC_ON_START && SEC_CUR+60 >= SEC_ON_START+5) {PlaySound(NULL); SOUND_ACTIVE = false;} } was mir grad so in den Sinn kam... PS: Benutze zum Posten von Code bitte entsprechende Tags im Editor... Geändert von next user (27.01.18 um 16:10 Uhr) |
Lesezeichen |
Stichworte |
alert, alter sound, mql4, playsound sound zeit dauer, programmierung, programmierung metatrader, programmierung mql4, sound, sound abspielen, ton, ton abspielen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|