ボタンを押して、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];
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
デリゲートメソッドで、モデルビューコントローラーを閉じることができます。
映画のソースタイプをストリーミングとして言及する必要があります
moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
リンクライブラリセクションに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];