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...