Воспроизведение будильника в Java - PullRequest
0 голосов
/ 21 октября 2018

Я пытаюсь воспроизвести звуковой клип, когда мой будильник отключается, но проблема в том, что время для будильника, которое я запрашиваю у пользователя, как ввод, является целым числом, и я показываю часы на экране, пропуская текущее времясистемы.Таким образом, система сохраняет текущее время системы в переменной и меняет его каждую минуту.Что я хочу сделать, так это то, что когда я сохраняю текущее время в минутах и ​​часах, оно сравнивает его со значением консоли, т.е. с приращением на моих собственных условиях, а не с собственным временем системы:

import java.util.Scanner;
import java.io.File; 
import java.io.IOException; 
import java.util.Scanner; 
import java.util.Calendar;
import javax.sound.sampled.AudioInputStream; 
import javax.sound.sampled.AudioSystem; 
import javax.sound.sampled.Clip; 
import javax.sound.sampled.LineUnavailableException; 
import javax.sound.sampled.UnsupportedAudioFileException; 

import java.time.LocalDateTime;
// java new implentation of (see tester code) much better
public class main 
{
static Scanner scanner = new Scanner(System.in);
public static  int h,m;

public static void main(String a[]) throws InterruptedException,UnsupportedAudioFileException,IOException,LineUnavailableException 
{
    // init 
    Calendar cal = Calendar.getInstance();
    int hour = cal.get(Calendar.HOUR_OF_DAY);
    int minute = cal.get(Calendar.MINUTE);


    //clockdisplay simply keeps it in 12 hour format
    ClockDisplay clock = new ClockDisplay(hour,minute );

    System.out.println("Set Alarm!!");

    System.out.println("Please enter hours!! ");
    h=scanner.nextInt();
    System.out.println("Please enter minutes!!");
    m = scanner.nextInt();
    do{
        System.out.print("\r" + clock.getTime());
        // -=-=-=-= waqfa -=--=-=-=
        Thread.sleep(1000);
        // -=-=-=-= waqfa ends -=-=
        // forward
        if(LocalDateTime.now().getHour()==h && LocalDateTime.now().getMinute() == m)
        {
            SimpleAudioPlayer audioPlayer = new SimpleAudioPlayer();
            audioPlayer.play(); 
            System.out.println("Alarm ringing");
            break;
        }
        clock.timeTick();
    }while(true); // do while ends
}
}
...