2013-02-17 8 views
10

Ich entwickle eine Online-Radio-App für iOS6-Geräte. Ich habe nach verschiedenen Wrappern gesucht, um diese Aufgabe zu erfüllen. AVPlayer, MPMoviePlayerController usw.Fortsetzen des unterbrochenen Radiostreams mit MPMoviePlayerController

Ich habe versucht, AVPlayer zu verwenden, da es richtiger klingt, um es für meinen Zweck zu verwenden, da es nur Audioanwendung ist. Aber bald kam ich auf dieses Problem: Here

Darum tue ich MPMoviePlayerController geschaltet, und das ist, was Im versuchen zu tun:

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]; 

In meinem StreamStateChanged Methode Im tun:

NSLog(@"Trying to replay"); 
[pPlayer pause]; 

[pPlayer play]; 

PPlayer ist MPMoviePlayer. Alles ist in Ordnung, außer wenn ein Interrupt-Konsole spuckt folgende:

Took background task assertion (1) for playback stall. 
    Ending background task assertion (1) for playback stall. 

Die Zahl nach Behauptung wird immer größer. und dann erholt es sich davon sobald die Internetverbindung stabil ist.

Meine Frage ist: Ist dieser Ansatz richtig? Mache ich auf dem Weg etwas falsch? Und ist es in Ordnung, diese Assert-Nachricht zu ignorieren ?.

P. S: Bitte vorschlagen, wenn es für die Entwicklung von Radio-Streaming-App mit verschiedenen API ein besserer Ansatz ist es, im Gegensatz zu MPMoviePlayerController

Danke :)

Antwort

9

Sie ganz korrekt sind in dieser internen Assertion Nachrichten zu ignorieren. Du kannst nichts gegen sie tun.

+0

Vielen Dank für die Antwort Till. Bin dankbar. – Gamer

+1

Danke Till. Ich war auch verwirrt über diese Logging-Nachrichten (... nahm Hintergrund Task Assertion (n) für Playback Stall) in einer großen fetten Video-Play-App, die Sie vielleicht gehört haben ... –

+0

das Streaming in meiner App hält eine Menge weil von dieser Behauptung !!, was kann ich tun? – Mutawe