동영상 재생을 위해 빌드된 Xcode 프로젝트의 변경

iPhone 상의 Unity와 동영상 재생

풀 스크린 스트리밍(streaming) 동영상 재생은 iPhone SDK의 일부로 Apple이 제공하고 있습니다. 지원하는 동영상 파일 포맷, 재생 초기화, 재생 컨트롤 등에 대한 정보를 보려면 iPhone SDK의 MPMoviePlayerController Class Reference을 참조하기 바랍니다.

사용자의 응용프로그램에 동영상 재생을 통합하려면 Unity-generated XCode project에 있는 AppController.mm 파일에 ObjectiveC 코드를 추가하면 자유로이 할 수 있습니다.

오디오에 대한 영향

MPMoviePlayerController는 동영상 재생 시에 자신만의 오디오 세션을 관리합니다. 이는 사용자의 Unity 응용프로그램에서 현재 재생 중인 오디오를 중단할 수 있습니다. 만일 사용자의 응용 프로그램이 UnityInitApplication(appPath)가 호출 된 이후 어떤 시점에서 동영상 재생을 시작하였다면, 재생이 끝난 후 사용자는 Unity 오디오 세션을 재설정 해야 합니다. 이를 정확하게 하려면, 동영상 재생을 시작하기 전에 UnityPause(true); UnitySetAudioSessionActive(false)을 호출해야 하며, 재생이 끝난 후에는 UnitySetAudioSessionActive(true); UnityPause(false);을 호출해야 합니다.

MPMoviePlayerController의 play 기능은 비 동기화 작업으로 즉시 종료됨을 명심하기 바랍니다. 사용자는 MPMoviePlayerPlaybackDidFinishNotification 콜백(callback)에서 Unity 오디오 세션을 재 설정하는 코드를 두어야 하며, 이는 동영상 재생이 끝나면 반드시 호출을 보장합니다.

다음은 Unity 오디오 세션을 회복하기 위한 MPMoviePlayerPlaybackDidFinishNotification 통지 콜백의 사용 예제 코드입니다:

// 이 통지는 통영상 재생이 끝나면 호출 됩니다.
// NSNotificationCenter을 통하여 반드시 이 통지를 등록하여야 합니다.
- (void) moviePlayBackDidFinish:(NSNotification*)notification {
	UnitySetAudioSessionActive(true);
	UnityPause(false);
}