안녕하세요?
'이것이 안드로이드다' 책을 본 후, 앱제작에 도전하고 있습니다.
아래 사진은 다른 앱을 캡쳐한 것인데요, 해당 앱을 실행하면 배경으로 비오는 동영상(wallpaper라고 하는게 더 적당할 지도...)이
배경화면으로 재생됩니다. [홈 스크린에 적용된 라이브 배경화면과는 전혀 별개의 동영상입니다.]
질문의 요지는 1) 개발자가 준비한 동영상 or 월페이퍼를 resource로 저장하고, 2) 앱이 실행될 때 해당 동영상을 앱의 배경으로 보여주고자 합니다. 3) 물론, 해당 동영상은 앱이 종료되면 더 이상 재생되지 않고, 정상적으로 홈 화면이 보이게 됩니다.
어떻게 이런 기능을 구현할 수 있는지, 카페지기님을 비롯해서 선배님들의 조언을 부탁드립니다. 감사합니다~~~
(stackoverflow.com 등에서 관련된 글을 찾아 보았지만, 만족할 만한 답을 얻지 못하겠더군요....ㅠ.ㅠ)
제가 생각한 아이디어는 이렇습니다.
1. WallpaperService를 상속받아 서비스를 만듭니다. (아래와 같이)
MainActivity에서 WallpaperService를 실행시킵니다.
MainActivity의 Theme에 windowBackground=true, windowShowWallpaper=true로 해서, 배경에 Wallpaper가 보이도록 합니다.
MainActivity의 생명주기 함수에서 서비스를 실행/중지시키도록 합니다.
===> 실패(MainActivity에서 서비스를 실행시켜도 Engin의 onCreateEngine()이 실행되지를 않습니다...ㅠ.ㅠ)
2. 동영상을 재생할 AActivity를 만든다. (VideoView를 이용. 동영상은 반복 재생되도록 한다)
MainActivity 역할을 할 BActivity를 만든다. BActivity의 Theme은 1번과 같이 투명하게 한다....
AActivity의 onCreate() 함수에서, 동영상을 재생시킨 후, 곧바로 BActivity를 실행시킵니다.(startActivityForResult)
BActivity가 실행되고, 배경에는 AActivity에서 재생되는 동영상이 보입니다.
BActivity가 종료되면, AActivity의 onActivityResult에서 finish()를 실행시켜 AActivity를 종료합니다.
===> 작업 중인데, 이것도 긍정적이지 않습니다. VideoView의 동작이 생각만큼 만족스럽지 않고,
원본영상이 세로모드임에도 가로모드로 재생되는 문제가 있습니다. (rotation을 시키면 화면이 black으로 변하는 문제가 있으며, 인터넷을 찾아봐도 딱히 해결책이 없는 듯 합니다.)