iOS6 장치 용 온라인 라디오 앱을 개발 중입니다. 필자는이 작업을 수행하기 위해 다양한 래퍼를 찾았습니다. AVPlayer, MPMoviePlayerController 등MPMoviePlayerController를 사용하여 중단 된 라디오 스트림 다시 시작
오디오 전용 응용 프로그램이기 때문에 내 용도로 사용하는 것이 더 정확하다고 생각되어 AVPlayer를 사용해 보았습니다. 그러나 곧이 문제를 건너 왔어요 :
Here 그러므로 내가 MPMoviePlayerController로 전환 이것은 필자가 시도 것입니다 :
pPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://launch.fusionradio.fm:8004"]];
pPlayer.movieSourceType = MPMovieSourceTypeStreaming;
pPlayer.view.hidden = YES;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
[pPlayer prepareToPlay];
[pPlayer play];
pPlayer.shouldAutoplay = YES;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(StreamStateChanged) name:MPMoviePlayerLoadStateDidChangeNotification object:pPlayer];
을 내 StreamStateChanged 방법 임에 일 :
NSLog(@"Trying to replay");
[pPlayer pause];
[pPlayer play];
pPlayer입니다 MPMoviePlayer. 인터럽트가있는 경우를 제외하고는 아무 문제가 없습니다. Console은 다음을 울립니다.
Took background task assertion (1) for playback stall.
Ending background task assertion (1) for playback stall.
어설 션 이후의 숫자는 계속 증가합니다. 일단 인터넷 연결이 안정되면 복구합니다.
내 질문은 :이 접근법이 맞습니까? 나는 그 길을 따라 뭔가 잘못하고 있니? 그리고 그 주장 메시지를 무시해도 괜찮습니까?
P.S :
감사합니다 MPMoviePlayerController
반대로 다른 API를 사용하여 무선 스트리밍 응용 프로그램을 개발하기위한 더 나은 방법 :
답장을 보내 주셔서 감사합니다. 고맙습니다. – Gamer
까지 고맙습니다. 나는 또한 당신이 들었을 수도있는 큰 지방 비디오 재생 응용 프로그램에서 이러한 로깅 메시지 ('... 재생 정지를위한 백그라운드 작업 어설 션 (n)을했다')에 대해 혼란스러워했다. –
내 애플 리케이션의 스트리밍이 많이 중단되기 때문에 이 단언 중 !! !! 내가 뭘 할 수 있을까? – Mutawe