2012-12-12 4 views
0

Silverlight + XNA 결합 응용 프로그램에서 음악 재생과 관련된 몇 가지 문제가 있습니다. XNA에서 렌더링 된 여러 Silverlight 페이지와 "게임"페이지가 있습니다.Silverlight + XNA 응용 프로그램에서 음악 재생

var song = (Application.Current as App).Content.Load<Song>("Music/Menu"); 
MediaPlayer.Play(song); 
MediaPlayer.Volume = 0.9f; 
MediaPlayer.IsRepeating = true; 

음악은 재생을 시작하지만 응용 프로그램이 더 분명 호출 스택 힌트가없는 다음과 같은 예외와 함께 실패합니다 :

첫째, 나는 주 실버 라이트 페이지의 OnNavigatedTo 이벤트에 다음 코드를 추가

InvalidOperationException occured 
FrameworkDispatcher.Update has not been called. Regular FrameworkDispatcher.Update calls are necessary for fire and forget sound effects and framework events to function correctly. 

두 번째로 UIElementRenderer을 사용하여 렌더링 한 Silverlight 기반 창이 있습니다. 필요가 생기면 컨트롤의 IsEnabled 플래그를 true로 변경하고 화면에서 그리기 시작합니다. 이로 인해 음악이 명백한 이유없이 페이드 아웃으로 재생되는 것을 멈추게하고 Silverligh 창을 닫을 때 음악이 다시 시작되지 않습니다.

프레임에서 탐색하여 다시 상황을 악화시킵니다. MediaPlayer.Play(song)에 대한 동일한 호출은 내가 ContentManager에서 새로로드하더라도 노래가 삭제되었다고 말합니다.

+0

예외 메시지 읽기 - 오류 수정 방법을 정확하게 설명합니다. –

답변

0

this StackOverflow 질문 답변을 참조하십시오. 즉, XNA 미디어 라이브러리를 사용하기 전에 FrameworkDispatcher.Update()에 전화해야합니다.

+0

감사! 그것은 첫 번째 부분에 도움이되었습니다. 그러나, 나는 여전히 'UIElementRenderer' 기반 윈도우가 음악을 중단한다는 사실에 당혹 스럽다. – Impworks

+0

다른 질문을 만들어야한다고 생각합니다. 질문을 혼합하는 것은 좋은 습관이 아닙니다. – andrewpey

관련 문제