마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드로 간단한 동화 애니메이션을 구현중인데. 각기기마다 싱크가 틀립니다.

0 추천
안드로이드로 간단한 동화를 구현중인데요 ..

처음에는 몰랐는데 사운드를 입히니까 타블렛이랑 폰 마다 싱크가 맞지 않아서 고민중입니다.

이런부분들을 처리하려면 어떠한 방식이있나요 ?

물론 사운드는 하나의 큰파일로 MediaPlayer 로 실행중이며 거기에 맞춰서 객체들이 타이밍에 따라 움직이는 형식입니다.
익명사용자 님이 2015년 3월 3일 질문

2개의 답변

+1 추천
 
채택된 답변
어느 정도로 싱크가 안맞는지 어떤 상황인지 전혀 모르기 때문에

자세한 설명을 드리기가 어렵지만

보통 싱크를 맞출때는 1초, 또는 더 짧은 시간동안 지속적으로 음성 currentPosition 과 영상 싱크를

동기화시켜줍니다.

이 과정에서 값도 보정을 해주고요, 여러가지 방법이 있습니다.

정확한 상황을 설명해주세요
mamondebaltob (32,750 포인트) 님이 2015년 3월 3일 답변
죄송합니다. 좀더 정확하게 질문드렸어야했는데 ..
천차 만별입니다. 테블릿의 경우는 애니메이션이 너무 빠르고 s3기준으로 맞췄는데 s5에서는  s3보다 2초 정도 느린편입니다.. 음성은 Activity 가 시작하게되면 MediaPlayer 로 실행하게 되구요(한마다 한마디 음성이 나오는 각각의 사운드가아닌 통파일입니다.) 케릭터들의 이동경로 구현은 케릭터가 이동 할 지점에 포인터객체를 둬서 핸들러로 임의로 맞춘 시간대로 포인터를 따라 움직이는 형태입니다.
일단 싱크가 왜 어긋나는지 문제를 파악해야 합니다.
이유를 알기가 어렵다면
기본적인 아이디어는 전체 구간을 작은 구간으로 쪼개 작은 구간마다 싱크를 동기화시키는 겁니다.
지금 구현이
음성시작 + 애니메이션 시작 이라는 이벤트밖에 없다면
좀 더 잘개 쪼개
(특정음성구간시작 + 특정애니메이션 시작) x 여러개   로 쪼개고
이를 더 정확히 하시려면
특정구간내에서 초단위 또는 더 잘개 쪼갠 단위로 샘플링하여 지속적으로 보정을 하는 것입니다.
정말 정확한 싱크를 원하시면
프레임단위로 애니메이션을 정의하셔야 합니다.
mamondbaltob 좋은 답변 감사드립니다. 일단 음성 파일부터 쪼개 서 천천히 다시구현해봐야겠습니다.ㅎ
+1 추천
그런데...

어느정도 경험과 테크닉이 있지 않고서야 '모든 기기'를 완전 일치 시킬 수 없습니다. 동일 기기에서도 서로 다르게 나타나지 ㅇ낳겠습니까?

그냥, 어느정도 본인이 수긍할 수 있는 수준까지 정리한 후 출시하는게 맞고요.

그런게 어려우니까 아예 동영상으로 처리하는 것 아니겠습니까.

객체 움직임을 차라리 동영상 클립으로 만들어서 부분부분 붙여 재생하던가요.

이 질문은 여기에 질문해도 종국엔 공허한 답변이 될 가능성이 높습니다.

게다가....

질문자가 원하는 답변은 원론적으론 꽤나 상용 제품에서 사용될 법한, 돈주고도 사기가 어려운 테크닉을 묻는 질문인데...그런 답변을 거져 알려줄만한 사람도 없겠고, 어차피 적당한 답변이 될 뿐입니다.
익명사용자 님이 2015년 3월 3일 답변
따금한 충고 감사드립니다 ㅎ
...