Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43249
Benutzer: 7.221
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Thomas75
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 56 Minuten
- Thomas75
vor 14 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 528
Gesamt: 528
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 25.01.18
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 126
Angel befindet sich auf einem aufstrebenden Ast
Standard 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?
  #2 (permalink)  
Alt 27.01.18
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

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();
Möglichkeit 2:
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;}
}
Möglichkeit 3:
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;}
}
Kann durchaus noch andere, bessere Wege geben. Das ist lediglich das,
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)
Thema geschlossen

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
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------