2013-02-17 15 views
10

Sto sviluppando un'applicazione radio online per dispositivi iOS6. Ive ha cercato vari wrapper per raggiungere questo obiettivo. AVPlayer, MPMoviePlayerController ecc.Ripresa di streaming radio interrotto utilizzando MPMoviePlayerController

Ho provato ad utilizzare AVPlayer perché sembra più corretto utilizzarlo per il mio scopo in quanto è un'applicazione solo audio. Ma presto mi sono imbattuto in questo problema: Here

Quindi sono passato a MPMoviePlayerController e questo è quello che sto cercando di fare:

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

Nel mio metodo StreamStateChanged Im facendo:

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

[pPlayer play]; 

PPlayer è MPMoviePlayer. Tutto è bene, tranne quando c'è un interrupt Console sputa fuori il seguente:

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

Il numero dopo asserzione continua ad aumentare. e poi si riprende da esso una volta che la connessione internet è stabile.

La mia domanda è: questo approccio è corretto? Sto facendo qualcosa di sbagliato lungo la strada? E va bene ignorare questo messaggio?

P.S: Si prega di suggerire se v'è un approccio migliore per sviluppare la radio in streaming applicazione utilizzando API diversa rispetto a MPMoviePlayerController

Grazie :)

risposta

9

Sei del tutto corretto nell'ignorare quei messaggi assert interne. Non c'è niente che puoi fare per loro.

+0

Grazie per la risposta. Apprezzalo. – Gamer

+1

Grazie mille. Sono stato anche confuso da questi messaggi di registrazione ('... ha assunto l'attività di background assertion (n) per lo stallo di riproduzione ') in un'app di riproduzione video di grandi dimensioni che potresti aver sentito ... –

+0

lo streaming nella mia app si interrompe molto perché di questa asserzione !!, cosa posso fare? – Mutawe