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 回答