0

Background file transferBackground audio agent에서 실행하고 싶지만 포 그라운드 앱에서 올바르게 실행되는 예제 코드에 오류가 발생합니다.백그라운드 오디오 에이전트에서 백그라운드 전송을 실행할 수 있습니까?

System.InvalidOperationException: Operation is not valid due to the current state of the object. 
    at Microsoft.Phone.BackgroundTransfer.BackgroundTransferRequest.SubmitHelper() 
    at Microsoft.Phone.BackgroundTransfer.BackgroundTransferRequest.Submit() 
    at Microsoft.Phone.BackgroundTransfer.BackgroundTransferService.Add(BackgroundTransferRequest request) 
    at Project.AudioPlaybackAgent.AudioPlayer.CreateBackgroundTransfer() 

그래서 배경 에이전트로부터 transferm를 실행할 수 있습니다 : 나는 오류가 BackgroundTransferService에 transferRequest을 추가하는 선에서

string transferFileName = @"http://www.reggaeavenue.com/MP3/leave%20short.mp3"; 
Uri transferUri = new Uri(Uri.EscapeUriString(transferFileName), UriKind.RelativeOrAbsolute); 

BackgroundTransferRequest transferRequest = new BackgroundTransferRequest(transferUri); 

transferRequest.Method = "GET"; 

string downloadFile = "result.mp3"; 
Uri downloadUri = new Uri("shared/transfers/" + downloadFile, UriKind.RelativeOrAbsolute); 
transferRequest.DownloadLocation = downloadUri; 

transferRequest.Tag = downloadFile; 

transferRequest.TransferPreferences = TransferPreferences.AllowCellularAndBattery; 

try 
{ 
    BackgroundTransferService.Add(transferRequest); 
} 
catch (InvalidOperationException ex) 
{ 
    MessageBox.Show("Unable to add background transfer request. " + ex.Message); 
} 
catch (Exception) 
{ 
    MessageBox.Show("Unable to add background transfer request."); 
} 

: 여기

은 예입니다? 이 문제를 어떻게 해결할 수 있습니까? 감사합니다

답변

2

MSDN에 따르면 일부 API (백그라운드 전송 포함)는 백그라운드 에이전트에서 지원되지 않습니다. 일부 작업을 수행하더라도 앱이 인증 테스트에 실패 할 수 있습니다.

메인 UI에서 파일을 다운로드하거나 웹 소스에서 직접 재생하지 않으시겠습니까?

+0

감사합니다. 찾을 수 없습니다. 왜냐하면 나는 노래를 캐쉬 한 다음 재생하려고하기 때문입니다. 그리고 나는 그것들을 백그라운드에서 캐시하고 싶다. –

+0

배경 오디오와 기본 UI를 연결할 수 있는지, 기본 UI가 (백그라운드에서) 파일을 다운로드하고 재생 목록을 업데이트하는지 확인하십시오. bacgound 에이전트를 다운로드하는 것은 어려울 수 있습니다. 호출 된 상태를 종료하기 전에 (NotifyComplete()를 보내기 전에) 제한된 시간 (30 초)이 있음을 유의하십시오. 시간이 없으면 에이전트가 종료됩니다. – Romasz

+0

예 백그라운드 에이전트에서 다운로드 할 수 있지만 사용자가 컨트롤을 사용하려고하면 아무 일도 일어나지 않습니다. 첫 번째 에이전트를 죽여야 만 응답을 처리하는 새로운 에이전트를 만들 수 있으며 이는 나에게 받아 들여지지 않습니다. –