BackgroundAudioTask
을 사용하는 Windows Phone 8.1의 다른 앱에서 내 앱의 BackgroundAudioTask
을 취소하면 내 앱으로 돌아 가면 백그라운드에서 오디오가 더 이상 재생되지 않습니다. 앱이 실행 중일 때 정상적으로 재생되지만 일시 중지 된 경우 백그라운드 오디오도 중지됩니다. 이 문제를 재현하는BackgroundAudioTask가 다른 앱에 의해 취소 된 후 작동하지 않습니다.
단계는 다음과 같습니다
나는 BackgroundAudioTask
& 모든 것을 가지고있는 윈도우 폰 8.1 응용 프로그램이 잘 작동 시작합니다. 나는 다른 응용 프로그램을 시작합니다. 예를 들어 Music Player는 BackgroundAudioTask
을 사용하며 내 응용 프로그램의 BackgroundAudioTask
을 취소합니다.
두 번째로 내 앱을 실행하면 원래대로 동작하도록 BackgroundAudioTask
을 다시 등록하려고합니다. 내가 처음 실행 메소드가 호출 될 응용 프로그램을 실행하면
<Extensions>
<Extension Category="windows.backgroundTasks" EntryPoint="WindowsPhoneBackgroundAudioTask.BackgroundAudioTask">
<BackgroundTasks>
<Task Type="audio" />
</BackgroundTasks>
</Extension>
</Extensions>
내가 그것을 확인하는 작업에 연기을 추가
Package.appxmanifest 에서 나는 다음과 같은이 내 응용 프로그램을 닫을 때에도 살아남습니다.public void Run(IBackgroundTaskInstance taskInstance)
{
setupDeferral = taskInstance.GetDeferral();
}
다른 응용 프로그램에서 음악 플레이어를 시작할 때 groundAudioTask 은 (내가 여기 setupDeferral.Complete()
하지 않으면 내 응용 프로그램이 충돌합니다) 이벤트를 호출 취소 :
private void Task_Canceled(IBackgroundTaskInstance sender, BackgroundTaskCancellationReason reason)
{
setupDeferral.Complete();
}
이 내 응용 프로그램을 열 때 어떻게 내 BackgroundAudioTask
을 다시 만들 수 있습니까? 문제는 Run
메서드가 다시 호출되지 않으므로 Deferral
을 다시 설정할 수 없다는 것입니다. 음악은 이제 앱에서 정상적으로 작동하지만 앱에서 다른 곳으로 이동하자마자 음악이 멈 춥니 다.
InvalidArgumentException
것 var taskBuilder = new BackgroundTaskBuilder();
taskBuilder.Name = "BackgroundAudioTask";
taskBuilder.TaskEntryPoint = typeof(WindowsPhoneBackgroundAudioTask.BackgroundAudioTask).FullName;
BackgroundTaskRegistration task = taskBuilder.Register();
. 나는 그것이 방아쇠를 당기는 것을 원하지 않는다. 배경 작업을 즉시 시작하고 싶습니다.
백그라운드 오디오를 다시 실행하도록 수동으로 지시하거나 취소 된 백그라운드 오디오를보다 효과적으로 처리 할 수있는 방법이 있습니까?
이 문제를 해결할 수 있었습니까? win10 범용 앱에서 비슷한 문제가 있습니다. –