Как воспроизводить видеопоток с помощью MPMoviePlayerController в iOS - PullRequest
16 голосов
/ 14 января 2012

Я пытаюсь воспроизвести видеопоток из интернета на iPhone, нажав кнопку.Я использовал много примеров кода, но ничего не получалось.С помощью этого кода он открывает черный вид без какого-либо видеопотока или элементов управления в нем.(Сам поток работает.)

NSURL *url = [NSURL URLWithString:@"http://MyStreamURL.com"];
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayBackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:moviePlayer];

moviePlayer.controlStyle = MPMovieControlStyleDefault;
moviePlayer.shouldAutoplay = YES;
[self.view addSubview:moviePlayer.view];
[moviePlayer setFullscreen:YES animated:YES];

Ответы [ 4 ]

27 голосов
/ 14 января 2012

Вместо создания MPMoviePlayerController и добавления его к вашему представлению, возможно, проще создать MPMoviePlayerViewController и представить контроллер этого представления модально (так как вы все равно пытаетесь показать видео в полноэкранном режиме).Затем MPMoviePlayerViewController может управлять презентацией вашего видео для вас.

MPMoviePlayerViewController *mpvc = [[MPMoviePlayerViewController alloc] initWithContentURL:url];

[[NSNotificationCenter defaultCenter] addObserver:self
                                     selector:@selector(moviePlaybackDidFinish:)
                                         name:MPMoviePlayerPlaybackDidFinishNotification
                                       object:nil];    

mpvc.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;

[self presentMoviePlayerViewControllerAnimated:mpvc];
[mpvc release];

В вашем методе делегата moviePlayBackDidFinish вы можете затем отклонить контроллер представления модели.

2 голосов
/ 11 апреля 2014

Необходимо указать тип источника фильма как потоковое

moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
1 голос
/ 20 февраля 2015

Добавить работу фрейма AVFoundation в разделе «Библиотеки ссылок»

В свой файл .h добавить

#import <MediaPlayer/MediaPlayer.h>
@interface video_liveViewController : UIViewController<MPMediaPickerControllerDelegate,MPMediaPlayback>

В свой файл .m

NSURL *movieURL = [NSURL URLWithString:@"http://172.31.17.252:1935/live/myStream/playlist.m3u8"];
movieController = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];
[self presentMoviePlayerViewControllerAnimated:movieController];
[movieController.moviePlayer play];
0 голосов
/ 17 февраля 2016

просто добавьте "MPMovieSourceTypeStreaming" к "moviesourcetype"

...