[android] 특정 요일, 특정 시간마다 내가 지정한 사운드 파일 재생하기

[android] 특정 요일, 특정 시간마다 내가 지정한 사운드 파일 재생하기

원리는 24시간 마다 반복하고, 오늘의 요일이 알람에 울리게 지정한 요일과 같으면 사운드를 재생한다.

등록, 해지, 각 요일의 on/off 버튼을 추가한다.

 

 

버튼을 누른지 10초뒤에 시작해서 24시간 마다 반복한다.

사운드롤 재생하도록 설정한 요일과 오늘의 요일이 같으면 사운드를 재생한다.

intent에 재생할 사운드 파일의 전체 경로를 넣고, 어느 요일에 재생할건지도 boolean 배열에 담아서 넘긴다.

다만 Calendar.Sunday = 1 이라서 배열의 처음에는 아무 값이나 넣었다.

 

고유값은 그냥 File의 hashCode 를 쓰기로 한다.

중복될 수도 있다고는 하는데, 파일이 수천개도 아니고 이 정도 수준에서는 중복될일 없을 것이다.

파일에도 _id같은 unique id가 있으면 좋으련만…

 

 

 

해당 시간이  되면 이 리시버가 호출된다.

intent에서 사운드 파일의 경로와 재생할 요일 정보를 얻는다.

오늘의 요일에 해당하는 값이 true이면 사운드를 재생한다.

 

 

manifest 파일에 리시버를 등록해주면 된다.

 

 

알람을 등록할 때 사용한 File.hashCode가 고유값이 되어서 나중에 수정할 때도 저 값을 이용하면 된다.

이러면 여러 개의 알람을 등록할 수도 있다.

다만 파일이 지워질 때 알람도 같이 취소시켜줘야 하는 불편함은 생긴다.

  • 제성현

    좋은 정보 감사합니다.

    많은 도움 되었습니다.

  • 김성연

    우선 코드 감사합니다.
    코드 따라 했는데 manifest에 intent-filter를 설정하라는데 어떻게 하나요???

  • 한은열

    죄송한데 … raw에 mp3 파일 넣어서 버튼 누르면 소리 재생되게 할 때에
    버튼 하나로 on/off 되게 하려면 소스 코딩을 어덯게 해야 될까요??

    • 버튼 클릭했을 때 재생 중이면 중지, 재생 안되고 있으면 재생 하면 되지 않을까요?