Как проигрывать видеопоток с помощью 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];
Ответы
Ответ 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
"