1

この投稿の下部にあるコードを使用すると、ムービーを正常に表示できます。ただし、ローカル変数ではなく、moviePlayer をプロパティとして使用する必要があります。そのため、ヘッダー ファイルに次の行を追加します。

  @property (retain, nonatomic) MPMoviePlayerController *mPlayer;

...そしてそれを次のように合成します:

   @synthesize mPlayer = _mPlayer

これが元のコードです。これはうまくいきます。変更するのは、ローカル変数を使用する代わりにプロパティを使用する初期化行だけです。あ

  MPMoviePlayerController * mPlayer = [[[MPMoviePlayerController alloc] initWithContentURL:videoURL] autorelease];
    mPlayer.shouldAutoplay=YES;

    [self.welcomeImage setUserInteractionEnabled:YES];

    [mPlayer.view setFrame: self.welcomeImage.bounds];  // player's frame must match parent's
    [self.welcomeImage addSubview:mPlayer.view];
    mPlayer.scalingMode = MPMovieScalingModeAspectFit;
    mPlayer.controlStyle = MPMovieControlStyleEmbedded;
    [mPlayer prepareToPlay];
    [mPlayer play];

ブラック ボックスが表示され、コントロールやビデオは表示されません。私は何を間違っていますか?

4

1 に答える 1

0

合成されたプロパティを使用していません。mPlayer を _mPlayer に変更します。

_mPlayer = [[[MPMoviePlayerController alloc] initWithContentURL:videoURL] autorelease];
_mPlayer.shouldAutoplay=YES;

[self.welcomeImage setUserInteractionEnabled:YES];

[_mPlayer.view setFrame: self.welcomeImage.bounds];  // player's frame must match parent's
[self.welcomeImage addSubview:_mPlayer.view];
_mPlayer.scalingMode = MPMovieScalingModeAspectFit;
_mPlayer.controlStyle = MPMovieControlStyleEmbedded;
[_mPlayer prepareToPlay];
[mPlayer play];

これは、videoURL が有効である限り機能します。

于 2012-11-06T13:31:13.383 に答える