3

4つの異なるビデオクリップに対応する4つのボタンが左側にあるiPadアプリがあります。ユーザーが見たいビデオをタップすると、右側に表示されます。私はそれが(インターネット上でストリーミングされているかのように)ロードされているように見せたい。私はUIActivityIndi​​catorを黒いビデオフレームの中央に追加し、3秒間停止するスレッドを持っています。ただし、前の動画を含むプレーヤーは消えません。直前の動画の最後のフレームを3秒間フリーズすると(アクティビティインジケータが非表示になります)、新しい動画が表示されます。新しいビデオがロードされている間にMPMoviePlayerControllerを非表示にする

プレーヤーを一時的に非表示にする方法に関するアイデアはありますか?助けてくれてありがとう。ここに私のコードは次のとおりです。

-(IBAction) videoButton1{ 
    [player stop]; 
    [player release]; 

    [self.activityIndicator startAnimating]; 

    NSString *url = [[NSBundle mainBundle] pathForResource:@"video1" ofType:@"mov"]; 
    [self setupVideoPlayer:url]; 
} 

-(void) setupVideoPlayer: (NSString *) url{ 
    player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:url)]; 
    player.view.frame = CGRectMake(487, 205, 478, 320); 

    [self.view addSubview:player.view]; 

    [NSThread sleepForTimeInterval:3.0]; 
    self.activityIndicator stopAnimating]; 

    [player play]; 
} 
+0

にアルファを変更することができますちょうどこのスレッドをぶつけたかったです。私はまだプレイヤーをリリースした後、それが "スリープ"スレッドを通してビデオの最後のフレームを保持している理由をまだ分かりません。スリープコマンドは、プレーヤーが新しいビデオをロードした後でも、再生コマンドの直前に呼び出されます。どんな情報もありがとうございます。 – Brian

答えて

2

あなたはCGRectMakeを毎回やっIB中またはプログラムの代わりに行うことができますビューにプレーヤーの枠を設定することができます。

self.player.view.frame = self.viewForMovie.bounds;

self.player.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

次に、あなたの "videoButton1" であなたはviewForMovie.alpha = 0 0

にビューのアルファを設定することができます。

そして、あなたの「setupVideoPlayer」にあなたが戻って1

+0

返事をありがとう。私があなたの言ったことと一緒に遊んだ、唯一のことは、ビデオプレーヤーが新しいmovieViewで自動再生しないということです。コントロールが正しく表示されますが、触れているとは思われません。それ以上のポインタ? – Brian

+0

私はそれを理解した。問題は、私が新しいスレッドで映画プレーヤーを持っていたということでした。今、私はリンゴがどれほど好きではないか知っています。したがって、新しいスレッドでは、[NSThread sleepforTimeInterval:3.0]を使用しました。 //読み込んでいるように見える。その後、performSelectorOnMainThreadメソッドを使用して、実際にビデオをビューにロードします。情報Ricardoをありがとう。あなたは正しい方向に私を指差した。 – Brian

関連する問題