web-dev-qa-db-ja.com

iOSでMPMoviePlayerControllerを使用してビデオストリームを再生する方法

ボタンを押して、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];
16
derFalke

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デリゲートメソッドで、モデルビューコントローラーを閉じることができます。

27
jonkroll

映画のソースタイプをストリーミングとして言及する必要があります

moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
2

リンクライブラリセクションに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];
1
Rahul K Rajan