Как проигрывать видеопоток с помощью MPMoviePlayerController в iOS - программирование
Подтвердить что ты не робот

Как проигрывать видеопоток с помощью MPMoviePlayerController в iOS

Я пытаюсь воспроизвести видеопоток из Интернета на 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];
4b9b3361

Ответ 1

Вместо того, чтобы создавать 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

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

moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;

Ответ 3

Добавить работу кадра 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];

Ответ 4

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