2016-05-02 6 views
0

MPMoviePlayerController.viewをバックグラウンドとして使用しています。ユーザーはログインまたはサインアップをタップすることができ、フロー全体を通してmoviePlayer.viewがバックグラウンドとして残るように(つまり、現在アクティブなviewControllerに関係なくユーザーがビデオを見続けているように)明確な背景を持つ適切なviewControllerに移動します。iOS - MPMoviePlayerControllerは、リピート時にビュートランスフォームをリセットします。

一部のビューでは、キーボードがフィールドをカバーしないようにフォームを持ち上げる必要があります。私は変換を使ってこれをやっています。

moviePlayerの背景ビデオがリピートに設定されているため、ビデオは連続ループになります。ビデオがリセットされるたびに(ビデオのステータスが1から2に変わり、一時停止して再生されるまで)、トランスフォームは子viewController内でリセットされます。私の最初の考えは、ビューが再描画されたということでしたが、これはログに基づいているようには見えません(ビューのdrawRectにnslogを入れましたが、

誰かがこれを見かけますか?

ルートのViewControllerで私のセットアップ:

// lazy load moviePlayer 
-(MPMoviePlayerController *)moviePlayer 
{ 
    if (_moviePlayer) return _moviePlayer; 

    NSURL *videoURL = [[NSBundle mainBundle] URLForResource:@"resources.bundle/videos/auth_bg" withExtension:@"mp4"]; 
    _moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL]; 
    _moviePlayer.controlStyle = MPMovieControlStyleNone; 
    _moviePlayer.scalingMode = MPMovieScalingModeAspectFill; 
    _moviePlayer.repeatMode = MPMovieRepeatModeOne; 
    _moviePlayer.shouldAutoplay = true; 

    return _moviePlayer; 
} 

-(void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    self.moviePlayer.view.frame = self.view.frame; 
    self.moviePlayer.view.hidden = false; 
    // 'still' is an imageView of the first frame to show while video loading 
    [self.navigationController.view insertSubview:self.moviePlayer.view aboveSubview:still]; 
} 

答えて

0

私は、これは自動レイアウトに関係している疑いがある - 私はビューをリセット(ここでは一例:https://stackoverflow.com/a/17849584/1542275)されていたいくつかの他の質問を見つけた私の...解決策は、ビューの座標を変換するのではなく、レイアウト制約の定数を調整することでした。物事は今置いている。

私はまだ、ビデオの再起動が変換をリセットしている理由はまだ分かりません。

関連する問題