SoundEffectInstance alarmSound = PlaySound(@"Alarms/"+alarmSoundString);
VibrateController vibrate = VibrateController.Default;
var vibrationLength = 1000;
var startTime = DateTime.Now;
vibrate.Start(new TimeSpan(0,0,0,0,vibrationLength));
MessageBoxResult alarmBox = MessageBox.Show("Press OK to stop alarm", "Timer Finished", MessageBoxButton.OK);
var ok = false;
While (!ok){
if (alarmBox == MessageBoxResult.OK)
{
ok = true;
}
else{
if(startTime.AddMilliseconds(vibrationLength * 1.2) < DateTime.Now)
{
startTime = DateTimne.Now;
vibrate.Start(new TimeSpan(0,0,0,0,vibrationLength));
}
}
}
alarmSound.Stop();
vibrate.Stop();
Circa
non scrivo codice per Windows Phone in modo da questo può causare il telefono per non rispondere. Ma l'Idea generale continua a controllare se l'utente ha colpito bene e, in caso contrario, se ha avuto abbastanza tempo da quando l'ultima vibrazione ha iniziato a iniziarne una nuova.
Se si desidera eseguire l'impulso, suggerirei di utilizzare AddMilliseconds e aggiungere una lunghezza maggiore della durata dell'impulso desiderata.
Utilizzando un timer invece
si finge classe assomiglia a questo
public class buzzz
{
MessageBoxResult alarmBox;
DispatchTimer alarmTimer = new DispatchTimer();
var vibrationLength = 1000.0;
var timerIncrease = 1.2;
VibrateController vibrate = VibrateController.Default;
public buzz()
{
alarmTimer.Interval = TimeSpan.FromMillseconds(vibrationLegnth * timerIncrease);
alarmTimer.Tick += alarmTimer_Tick
}
public void startBuzz()
{
SoundEffectInstance alarmSound = PlaySound(@"Alarms/"+alarmSoundString);
vibrate.Start(new TimeSpan(0,0,0,0,vibrationLength));
alarmTimer.Start();
alarmBox = MessageBox.Show("Press OK to stop alarm", "Timer Finished", MessageBoxButton.OK);
}
void alarmTimer_Tick(object sender, EventArgs e)
{
if(alarmBox == MessageBoxResult.OK)
{
alarmTimer.Stop();
vibrate.Stop();
}
else
{
vibrate.Start(new TimeSpan(0,0,0,0,vibrationLength));
}
}
}
si desidera vibrare in modo continuo, o impulsi? – Joe
@Joe Voglio farlo pulsare – Chris
È necessario assicurarsi di scadere dopo un periodo di tempo, altrimenti si rischia di scaricare la batteria per qualcuno che ha lasciato il telefono in un'altra stanza. –