cada uno. Estoy tratando de averiguar cómo jugar live stream usando MPMoviePlayerController. Para las pruebas que estoy usando Manzanas corriente de prueba de la muestra http://devimages.apple.com/iphone/samples/bipbopall.html.
Es perfectamente trabajando en UIWebView, pero no puedo hacer que funcione con MPMoviePlayerController. No es mi pedazo de código:

NSURL *mediaURL = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbopall.html"];
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:mediaURL];
[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(moviePlayBackDidFinish:) 
                                             name:MPMoviePlayerPlaybackDidFinishNotification 
                                           object:nil]; 

[mp setControlStyle:MPMovieControlStyleFullscreen];
[mp setMovieSourceType:MPMovieSourceTypeStreaming];
[mp setFullscreen:YES];

[self.view addSubview:[mp view]];

[mp prepareToPlay];
[mp play];

Realmente el controlador recibe MPMoviePlayerPlaybackDidFinishNotification sin jugar a nada. Donde está el problema?

«*** Terminación de la aplicación debido a uncaught exception ‘NSInvalidArgumentException’, la razón: «Un AVPlayerItem no puede ser asociada con más de una instancia de AVPlayer'»

OriginalEl autor Andrew | 2010-11-29

4 Comentarios

  1. 17

    Su problema es, probablemente, con la dirección URL. MPMoviePlayerController quiere directamente la URL para el archivo que desea reproducir. Usted está proporcionando la dirección URL de un HTML página que el jugador de película de no entender. Es por eso que no funciona en UIWebView desde un navegador web entiende HTML. Si desea obtener más información acerca de lo que está mal puede comprobar el error de la siguiente forma, citado en la documentación de Apple:

    Para comprobar errores en la dirección URL de carga,
    registro de la
    MPMoviePlayerContentPreloadDidFinishnotification
    o
    MPMoviePlayerPlaybackDidFinishNotification
    las notificaciones. En caso de error, estos
    las notificaciones contienen un NSError
    objeto disponible el uso de la @»error»
    clave en la notificación de la userInfo
    diccionario.

    Sería algo parecido a:

    - (void) moviePlayBackDidFinish:(NSNotification*)notification {
        NSError *error = [[notification userInfo] objectForKey:@"error"];
        if (error) {
            NSLog(@"Did finish with error: %@", error);
        }
    }

    Si quieres probar y jugar con el de la muestra se puede probar y acceder a la URL de la corriente directa, que sería: http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8

    Muchas gracias – la url era el verdadero problema. Una pregunta más: MPMoviePlayerController – es esta la mejor opción para jugar live stream de audio (como la radio por internet)? Yo busqué la forma de aplicar HTTP Live Streaming y llegó a la conclusión de que MoviePlayer era lo que yo necesitaba.
    Eres bienvenido. Yo no he hecho ninguna transmisión de mí, así que no puedo comentar sobre qué método es el mejor.

    OriginalEl autor Robert Höglund

  2. 0

    Intentar object:mp en lugar de object:nil en su NSNotification

    OriginalEl autor Rog

Dejar respuesta

Please enter your comment!
Please enter your name here