it-swarm.com.de

Eine App schreiben, um Videos auf das iPhone zu streamen

Ich bin daran interessiert, eine iPhone-App zu erstellen, die Videos von einem zentralen Server im YouTube-Stil streamen kann. Ich habe mich gefragt, ob jemand jemals zuvor versucht hat, wie der Pfad der am wenigsten widerstandsfähigen, vorhandenen APIs usw. ist. Ich weiß wirklich nicht, wie das im Allgemeinen gemacht wird. Würde ich mit Steckdosen arbeiten? Ich suche hier nur nach einer Richtung. Vielen Dank!

23
Jameson

Wenn Sie den Streaming-Server eingerichtet haben, können Sie ganz einfach einen Videocontroller implementieren, der im Youtube-Stil erscheint.

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

Sie müssen mit dem Controller umgehen, der die Ansicht des Videoplayers anzeigt (in diesem Fall self).

In iOS 3.2 und höher macht MPMoviePlayerViewController es noch einfacher:

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 ist eine zusätzliche Methode von MediaPlayer für FWViewController, die Sie in iOS 3.2+ finden. Er sorgt dafür, dass ein View-Controller erstellt und auf den Stack verschoben wird, der mit einer Slide-from-Bottom-Animation animiert wird, wie in youtube.app.

19
duhanebel

Apple hat einen ausführlichen Artikel zum Einrichten der Serverseite für das Media-Streaming:

https://developer.Apple.com/library/content/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Einführung/Einführung.html

und Best Practices-Hinweis:

https://developer.Apple.com/library/content/technotes/tn2224/_index.html

Es enthält nicht nur Informationen zur Streaming-Service-Architektur und zu deren Erstellung, sondern auch einige Anforderungen an solche Dienste, die erfüllt sein müssen, sowie Verweise auf Live-Test-Streams.

7
Anton

Verwenden Sie diesen Code, um wenig Speicher zu verwenden. Beim Streaming-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];
}
3
Dilip Rajkumar

QuickTime-Videos werden bereits auf das Telefon übertragen. Der Weg des geringsten Widerstands wäre, den Media Player-Controller zu verwenden und ihn auf eine Streaming-Mediendatei auf einem Streaming-Server zu verweisen.

2
Kevin Hoffman

Die vorhandenen Antworten sind zwar gut, aber wenn Sie Nicht-HTTP-Streams (z. B. mms oder rtmp) oder nicht von Apple unterstützte Audio-/Video-Codecs verwenden müssen, wird dies etwas komplizierter. 

Ich bin selbst kein Experte, aber ich habe dieses VideoStreaming SDK verwendet, um diese Probleme zu lösen, und es macht das Anpassen des Clients sehr viel einfacher (Hintergrundstreaming, Unterbrechen von Streams usw.). Könnte einen Blick wert sein, wenn Sie auch diese Anforderungen haben.

1
Eran Galperin

2018 Antwort Sie können AVPlayerViewController verwenden, da MPMoviePlayerController seit iOS 9 veraltet ist

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