때때로 BackgroundAudioPlayer.Instance의 위치를 가져올 때 예외가 발생합니다. 매우 드물게 발생하지만 StackTrace를 얻을 수있었습니다. 이상하게도,이 코드는 트랙을 재생하는 동안 매초마다 실행됩니다. 이 오류의 원인은 무엇입니까?BackgroundAudioPlayer.get_Position()에서 System.Runtime.InteropServices.COMException이 발생하는 이유는 무엇입니까?
이 StackTrace가 표시됩니다.
System.SystemException: HRESULT = 0xC00D36C4 ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0xC00D36C4 at
Microsoft.Phone.BackgroundAudio.Interop.IAudioPlaybackManager.get_CurrentPosition() at
Microsoft.Phone.BackgroundAudio.BackgroundAudioPlayer.get_Position() --- End of inner exception stack trace --- at
Microsoft.Phone.BackgroundAudio.BackgroundAudioPlayer.get_Position() at
MC.PodCast.Common.ViewModel.PlayerViewModel.UpdateTrackPosition() at
MC.PodCast.Common.ViewModel.PlayerViewModel.ReactToBackgroundAudioPlayer() at
MC.PodCast.Common.ViewModel.PlayerViewModel.Initialize() at
MC.PodCast.Common.ViewModel.PlayerViewModel.<<get_InitializeCommand>b__5>d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(Object state)
물론 내가 사용하고있는 코드는 단순합니다.
public void UpdateTrackPosition()
{
if (_backgroundAudioPlayer != null && _backgroundAudioPlayer.Track != null)
{
Position = _backgroundAudioPlayer.Position;
}
else
{
Position = null;
}
}
. 시도하십시오 { 위치 = _backgroundAudioPlayer.Position; } catch (SystemException e) { Debugger.Break(); // 이상한 상황이 때때로 Position 호출로 인해 System.Runtime.InteropServices.COMException이 발생합니다. } –