오르카의 아틀리에


요즘 어느 정도 볼륨이 있는 게임을 하다 보면 AssetBundle을 다운받는 동안 해당 게임 관련 동영상을 틀어준다거나 튜토리얼, 세계관 같은 것들을 영상으로 틀어주는 경우가 가끔 있다. 그 외에도 학부 프로젝트를 하다보면 유니티 안에서 동영상으로 대략 때우거나 VR 관련 영상을 재생 해야 하는 경우가 생기는데 이때 유니티 내장 Video Player를 사용하곤 한다. 


회사에서도 라이브 운영 중 바뀐 시스템에 대해서 간단하게 소개하기 위해 Video Player를 사용하게 되었는데 에디터에서는 잘 작동했으나 디바이스에서는 어째 잘 작동하지 않았다. 에디터에서는 분명히 잘 작동했기 때문에 디바이스의 로그를 찍어보기로 했다. 결과는?


AndroidVideoMedia OpenExtractor: file is compressed, not supported


라는 에러를 던지고 있었다. 빌드를 하면서 압축이된 영상이 제대로 풀리지 않는 것인가 해서 세팅의 차이를 알아보기 위해 새로 프로젝트를 만들어서 VideoPlayer만 넣고 빌드를 해보았다. 결과는 어느 PlayerSetting을 바꾸어 봐도 성공적.... (이게...아닌데...)


일단 세팅을 킵해두고, AssetBundle을 이용하면 해결될까 싶어 돌려봤지만 Unity 로드맵을 보았을 때 아직 지원하지 않는 기능이었다. 결과적으로 이것저것 삽질해본 결과 Gradle 빌드때 사용하는 압축이 문제인 것으로 결론 났다. 


해결방법은 생각보다 간단했는데 Gradle은 건들지 않고, 재생할 비디오 클립을 StreamingAssets에 집어넣은 뒤 Unity Player에 "Application.streamingAssetsPath"을 이용한 경로를 넘겨서 로드하는 방법을 사용하면 된다.