Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 27.01.18
next user next user ist offline
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)