読み込み完了を検知する
例えばリモートにある動画・音声ファイルを指定してオブジェクトを生成した場合に、そのファイルの読み込みが完了(再生完了ではありません)したことを検知します。QTKitを使うと結構簡単で、NSNotificationの枠組みである程度処理できちゃいます。
{ ... QTMovie* movie = [[QTMovie alloc] initWithURL:url error:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loadStateChaned:) name:QTMovieLoadStateDidChangeNotification object:movie]; ... }
これで読み込み状態が変化した時にloadStateChanged:
メソッドが呼び出されますので、その中でその状態変化が読み込み完了であるかどうかをチェック。
-(void) loadStateChaned:(NSNotification*)aNotification { QTMovie* movie = [aNotification object]; Movie qtmov = [movie quickTimeMovie]; long state = GetMovieLoadState(qtmov); // QuickTime APIを使用して読み込み状態を取得 if (state == kMovieLoadStateComplete) { // 読み込み完了 // do something } }