smart - Escribir una aplicación para transmitir video a iPhone
conectar iphone a tv samsung (6)
Estoy interesado en crear una aplicación para iPhone que pueda transmitir video desde un servidor central, el estilo de YouTube. Me preguntaba si alguien ha intentado hacer esto antes, ¿cuál es la ruta de las API existentes menos resistentes, etc.? Realmente no sé nada sobre cómo esto se hace generalmente. ¿Estaría trabajando con enchufes? Solo estoy buscando alguna dirección aquí. ¡Gracias!
Apple tiene un artículo detallado sobre la configuración del lado del servidor para la transmisión de medios:
y las mejores prácticas Nota:
https://developer.apple.com/library/content/technotes/tn2224/_index.html
No solo contiene información sobre la arquitectura del servicio de transmisión y las herramientas utilizadas para compilarlo, sino que también tiene algunos requisitos para dicho tipo de servicio que debe cumplirse y referencias a transmisiones de prueba en vivo.
Los videos de QuickTime ya se transmiten al teléfono. La ruta de menor resistencia sería usar el controlador del reproductor de medios y dirigirlo a un archivo multimedia de transmisión en un servidor de transmisión.
Si bien las respuestas existentes son buenas, si necesita usar transmisiones que no sean HTTP (mms o rtmp, por ejemplo) o códecs de audio / video que no sean compatibles con Apple, las cosas se complican un poco.
Yo no soy un experto, pero he estado usando este SDK de VideoStreaming para resolver esos problemas, y hace que la personalización del cliente sea mucho más fácil (transmisión de fondo, pausar transmisiones, etc.). Puede valer la pena si también tienes esos requisitos.
Si tiene listo y listo el servidor de transmisión, es bastante fácil implementar un controlador de video que muestre el estilo de youtube.
NSString *videoURLString = @"http://path-to-iphone-compliant-video-stream";
NSURL *videoURL = [NSURL URLWithString:videoURLString];
MPMoviePlayerController moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
[moviePlayer prepareToPlay];
[moviePlayer play];
[self.view addSubview:moviePlayer.view];
Debe manejar el controlador que muestra la vista del reproductor de video (que en este caso es self
).
En iOS 3.2+ MPMoviePlayerViewController hazlo aún más fácil:
NSString *videoURLString = @"http://path-to-iphone-compliant-video-stream";
NSURL *videoURL = [NSURL URLWithString:videoURLString];
MPMoviePlayerViewController *moviePlayerView = [[[MPMoviePlayerViewController alloc] initWithContentURL:videoURL] autorelease];
[self presentMoviePlayerViewControllerAnimated:moviePlayerView];
presentMoviePlayerViewControllerAnimated
es un método adicional de MediaPlayer para FWViewController
que encontrarás en iOS 3.2+ y se encarga de crear un controlador de vista y colocarlo en la pila, animándolo con una animación de deslizamiento desde abajo, como en youtube.app.
Use este código para usar poca memoria. En transmisión de video ....
-(IBAction)playMovie:(NSURL *) theURL
{
NSURL *fileURL = theURL;
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlaybackComplete:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
[self.view addSubview:moviePlayerController.view];
moviePlayerController.useApplicationAudioSession = NO;
moviePlayerController.fullscreen = YES;
[moviePlayerController play];
}
- (void)moviePlaybackComplete:(NSNotification *)notification
{
MPMoviePlayerController *moviePlayerController = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
[moviePlayerController.view removeFromSuperview];
[moviePlayerController release];
}
2018 respuesta Puede usar AVPlayerViewController
ya que MPMoviePlayerController
está en desuso desde iOS 9
NSURL *url = [NSURL URLWithString:videoUrl];
_playerViewController = [[AVPlayerViewController alloc] init];
_playerViewController.player = [AVPlayer playerWithURL:url];
_playerViewController.player.volume = 1;
_playerViewController.showsPlaybackControls = YES;
_playerViewController.view.frame = CGRectMake(....);
[self.view addSubview:_playerViewController.view];