2010-06-29 12 views
10

Trovo MPMoviePlayerController.h, c'èperché MPMovieLoadState ha lo stato 5?

enum { 
    MPMovieLoadStateUnknown  = 0, 
    MPMovieLoadStatePlayable  = 1 << 0, 
    MPMovieLoadStatePlaythroughOK = 1 << 1, // Playback will be automatically started in this state when shouldAutoplay is YES 
    MPMovieLoadStateStalled  = 1 << 2, // Playback will be automatically paused in this state, if started 
}; 
typedef NSInteger MPMovieLoadState; 

ma quando l'ho fatto

NSLog(@"%d",player.loadState)

esso stampa 5 o, a volte 3, come è successo? Come so che il loadstate ha valore di 0,1,2,4 si riferiscono alla documentazione per sviluppatori. Grazie!

risposta

29

Il playState è una maschera di bit. Qualsiasi numero di bit può essere impostato, come ad esempio

MPMovieLoadStatePlaythroughOK | MPMovieLoadStatePlayable 

Verificare la presenza di stati come questo:

MPMovieLoadState state = [playerController loadState]; 
if(state & MPMovieLoadStatePlaythroughOK) { 
     NSLog(@"State is Playthrough OK"); 
} 
+0

che fa ~ Grazie – ben

+3

+1 noti che (stato e MPMovieLoadStateUnknown) sarebbero tornati FALSE anche se (stato == MPMovieLoadStateUnknown) era TRUE perché MPMovieLoadStateUnknown == 00 == FALSE –