t안녕하세요,
제가 안드로이드에서 동영상 2개를 재생하면서 번갈아 가면서 보여주기 위해서,
VideoView를 2개 만들어서 사용하려고 하고 있습니다. 그런데, VideoView 2개가
처음에 만들어진 순서대로 겹쳐져 있고 절대로 그 순서가 바뀌질 않습니다;;
(즉, VideoView1 을 만들고 VideoView2를 만들었으면 VideoView2가 항상 위에
보이고 VideoView1은 뒤에 가려져서 보이지 않습니다.)
View의 기능들중 bringToFront도 사용해 보고, 같은 프레임에 넣은 후 bringChildToFront
도 사용해보고, setZOrderOnTop도 해봐도 아무런 변화가 일어나지 않습니다..
setVisibility를 통해서 안 보이게 하거나, viewFlipper를 통해서 번갈아 보이게 하는
방법은 동작을 하지만, 이 경우에은 안 보이고 있는 쪽 VideoView가 재생이 멈춘 상태로
대기 하게 됩니다. (VideoView1을 10초 까지 재생한뒤 VideoView2가 앞으로 오고 10초
후에 다시 VideoView1을 앞으로 가져오면 10초부터 다시 재생이 된다는 뜻입니다.)
저는 이렇게 되기를 원하지 않고 두개의 video가 앞에 있건 없건 관계 없이 계속 재생
되는 상황을 연출하고 싶은데, (실제로 viewFlip이나 visibility 변화 안하고 그냥 두면
둘다 동시에 재생이 되고 있습니다.) 방법이 참 어렵네요.
bringToFront 등의 방법이 전혀 안 먹힌다면, setVisibility나 Flip을 이용하고, 대신 시간을
따로 기록하고 있다가 보여지게 되는 VideoView에서 seekTo를 이용해서 이동해서 재생
하는 방법도 있을텐대, 어찌된 노릇인지 VideoView에서 seekTo를 해줘도 마찬가지로
아무런 변화가 일어나질 않습니다.. seekTo/bringToFront 등 API에 대해서 구글링을 하루
종일 해봤는데 도무지 답이 안 나와서 질문드립니다. 도움 부탁드려요!!
혹시 답변해주시는 분들, 너무 안 귀찮으시다면 메일로도 보내주실수 있으면 정말로
감사드리겠습니다ㅜㅜ..
*공지 사항을 다 읽었음*
-------------------------------------------
Jae Min Kim
E-mail : joist@korea.ac.kr
Tel. : 82-2-3290-3571
-------------------------------------------
음.. 해보기 전에 그냥 단순 예측은 왠지 꺼내왔다가 다시 넣으면 플레이어 자체가 동작을 멈췄다가 다시 시작해버릴것 같기는 한데,,
한번 시도해볼게요! 감사합니다.
오오!! 되긴 되는군요! ㅋㅋ. 아무래도view에서 한번 없앴다가 추가하는거다 보니 조금 순간적으로화면이 까매졌다가 생기는
면이 없잖아 있긴 한데 잘만 활용하면 괜찮겠네요 ㅡ 좋은 답변 감사하빈다.
저도 비슷한 문제로 헤매다가 이 글 보고 도움 받았습니다.
bringToFront() 로는 암만 해도 안 되길래 다른 문제인줄 알고 이상하게 생각했는데
그냥 removeView, addView 로 했더니 느리긴 한데 되긴 되네요
안드로이드 참 이상허군요 -_-;;
view.bringToFront();
FrameLayout.LayoutParams layoutParams1 = (FrameLayout.LayoutParams)getLayoutParams();
layoutParams1.leftMargin = layoutParams1.leftMargin;
layoutParams1.topMargin = layoutParams1.topMargin;
view.setLayoutParams(layoutParams1);
이렇게 bringToFront 하고 나서 margin 을 조정해버리니까 바로 앞으로 나오던데요...




Layout 보시면 계층이 형성이 됩니다. 즉 들어간 순서가 졍해진다는건데요.. 왜 그러냐면 내부적으로 ViewGroup 를 상속받았고
그 안에 Vector or LinkedList 와 같은 (풀소스를 확인하지 않아서 예상입니다^^) 컬렉션을 사용해서 cache로 쌓고 있는거 같습니다.
따라서 addView 한걸 순서를 기역하고 있었다가.. 다시 꺼내와서 temp 에 저장 원본 삭제 다시 add 하는 스왑 형식으로 순번을 고치고
Layout 을 갱신하여 화면을 보여주면 가능해 질꺼 같은데요..
잘 될지 모르겠네요.. 후기가 기대됩니다.. 꼭 성공하시길 ㅎㅎ