0

ムービーを再生したいので、MPMoviePlayerController を使用します。

一つの質問。MPMoviePlayerController を作成すると、アプリが少し停止します。

これは私のコードです:

    NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"m4v"];
    NSURL *videoURL = [NSURL fileURLWithPath:path];

    moviePlayer =  [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
    moviePlayer.scalingMode=MPMovieScalingModeFill;
    moviePlayer.controlStyle=MPMovieControlStyleNone;
    moviePlayer.shouldAutoplay=NO;

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(movieRestartCallback:)
                                                 name:MPMoviePlayerPlaybackStateDidChangeNotification
                                               object:nil];

    [moviePlayer.view setFrame:CGRectMake(20, 20, 280, 200)];
    [self.view addSubview:moviePlayer.view];

`

アプリが停止するのはなぜですか?この問題の解決方法はありますか?

4

2 に答える 2

1

ドキュメントを見ると、ムービー プレーヤーをビューに追加する前MPMoviePlayerControllerに呼び出す例が表示されます。prepareToPlay

[mediaPlayer prepareToPlay]プレーヤーをセットアップしている場所を追加します。

MPMediaPlayback プロトコル リファレンスには、「再生遅延を最小限に抑えるには、play を呼び出す前にこのメソッドを呼び出してください」と書かれています。

于 2012-06-11T20:52:05.693 に答える
0

マルチスレッド機能は使えると思います。

NSOperationQueueはスレッド セーフであり (ロックを必要とせずに異なるスレッドから操作を追加できます)、NSOperation オブジェクトを連鎖させることができます。

次のコードスナップを使用して使用できます。

NSOperationQueue *queue = [NSOperationQueue mainQueue];
NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
    // your code here
}];

[queue addOperation:operation];

お役に立てば幸いです。

于 2012-06-11T20:32:18.380 に答える