개발자 99% 커뮤니티에서 수다 떨어요!
흩어져있는 라디오 앱을 방송사별로 설치하지 않아도 라디오를 들을 수 있는 스트리밍 서비스
사용해보기
웨일 브라우저 확장앱 : https://store.whale.naver.com/detail/mebmjdmdebnhodookpfemachpamkjlkl
웹 버전 :
안녕하세요. 몇 주전 수능이 끝난 개발자를 지망하는 고등학교 3학년 학생입니다. 초등학교때부터 내가 상상한 것을 현실로 구현할 수 있다는 점에서 코딩에 관심을 갖게 되었고, 지금은 웹 개발에 흥미가 생겨 다양한 프로젝트를 진행해오고 있습니다.
국내 라디오는 인터넷에서 청취하기 위해서는 각 방송사의 앱을 각각 설치해주어야 스트리밍할 수 있는 경우가 많습니다. 물론 자체 앱에서만 제공하는 실시간 댓글이나 보이는 라디오 등과 같은 기능 때문이기도 하겠지만, 단순히 라디오를 듣고자 하는 사용자 입장에서는 불편함이 있는 것이 사실입니다.
따라서 국내 라디오 방송국의 스트리밍 프로토콜을 모아 재생할 수 있는 서비스를 만들고자 하였습니다.
- 세상의 모든 스테이션, 여기에서 한번에
파편화된 라디오 앱을 방송사별로 설치하지 않아도 앱 하나로 주요 라디오를 모두 청취할 수 있습니다.
- 필요한 기능만 담은 깔끔한 플레이어
라디오 감상에 집중할 수 있도록, 필요한 기능만 담아 감성적이고 깔끔한 디자인의 플레이어를 완성했습니다. 현재 방송 중인 프로그램명과 선곡 정보도 확인해보세요.*
* 일부 스테이션에 한해 지원
- 정해진 시간에 알아서 꺼지는 종료 타이머
라디오를 틀어놓고 잠들어도 걱정 없도록, 플레이어에서🌙 아이콘을 눌러 종료 타이머를 설정할 수 있습니다. 정해진 시간에 재생중인 라디오가 알아서 종료됩니다.
* 안드로이드 앱에서만 지원
- 자주 듣는 라디오는 모아뒀다가 바로
자주 듣는 스테이션은 하트 버튼을 눌러 자주 듣는 리스트에 추가해보세요. 자주 듣는 스테이션만 바로 모아볼 수 있습니다.
개발
웹페이지는 Next.js를 기반으로 만들었습니다.
지역/방송사별로 정보를 정리한 JSON 파일을 만들고, 각 방송사별로 스트리밍 프로토콜을 가져오기 위해 API Routes를 만들어 사용했습니다.
안드로이드 앱은 WebView를 기반으로 동작하는 하이브리드 앱으로 개발하였습니다. 웹뷰와 통신하기 위해 Bridge를 사용하여 웹페이지와 안드로이드 앱의 함수를 서로 호출할 수 있도록 구현하였습니다.
미디어 백그라운드 재생을 위해 안드로이드의 Media3 (ExoPlayer) API를 사용하였고, 종료 타이머를 구현하기 위해 CountDownTimer API를 사용했습니다.
불편한 점이나 개선사항, 추가되길 바라는 스테이션, 혹은 잘 재생되지 않는 스테이션이 있다면 가감없이 피드백 해주세요! 더 좋은 서비스를 만드는데 큰 도움이 됩니다.