0

videoPlayerViewController という UIViewController サブクラスがあります。ストーリーボードで、UIViewController をドラッグしました。ストーリーボードでクラスを正しく設定しました。画面にボタンを配置しました。ボタンをクリックすると、メソッド playVideo: が実行されます。

- (IBAction)playVideo:(id)sender
{
 NSURL *movieURL = [NSURL URLWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"];

 MPMoviePlayerController *player =
 [[MPMoviePlayerController alloc] initWithContentURL: movieURL];
 [player prepareToPlay];
 [player.view setFrame: self.view.bounds];  // player's frame must match parent's
 [self.view addSubview: player.view];
 [player play];
}

何もしない黒い画面が表示されます。

これは、過去 6 時間にわたってこのメソッドで使用したコードの最も単純なバージョンです。

そこにあるすべての StackOverflow の回答を試しました。インターネットからストリーミングしたビデオを再生したいだけです。

私が設定した場合:

player.movieSourceType = MPMovieSourceTypeStreaming;

画面に「読み込み中」と表示された後、クラッシュします。私は正確に何を間違っていますか?

非常に多くの MPMoviePlayerController に関する質問があることは理解していますが、一般的な「どのように機能しますか」という質問をするのはばかげているように思えます。私はこれでほぼ 6 時間経過しましたが、Google/Stack Overflow/Apple ドキュメントの検索でこれが機能することはありませんでした。

4

1 に答える 1

3

提供されたコードを使用しましたが、作成後にプレーヤーに割り当てたヘッダー ファイルに mcp という名前の MoviePlayerController プロパティを作成しました。それは私のために働いた。映画がロードされ、問題なく再生されました。

.h ファイル内:

@property (strong, nonatomic) MPMoviePlayerController *mcp;

.m ファイル内:

- (IBAction)playVideo:(id)sender
{
    NSURL *movieURL = [NSURL     URLWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"];

    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL: movieURL];
    [player prepareToPlay];
    [player.view setFrame: self.view.bounds];  // player's frame must match parent's

    _mcp = player;

    [self.view addSubview: _mcp.view];
    [_mcp play];
}
于 2013-05-09T19:31:52.260 に答える