2010-06-29 65 views
10

我发现MPMoviePlayerController.h,有为什么MPMovieLoadState的状态为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; 

,但是当我做了

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

它打印出5或有时3,它是如何发生的呢?据我所知在LoadState具有价值0,1,2,4是指开发者文档。 谢谢!

回答

29

playState是一个位掩码。位的任何数字都可以设置,如

MPMovieLoadStatePlaythroughOK | MPMovieLoadStatePlayable 

检查状态是这样的:

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

这是正确的〜谢谢 – ben 2010-06-29 08:12:53

+3

+1 注意(州及MPMovieLoadStateUnknown)将返回即使(state == MPMovieLoadStateUnknown)为TRUE,也是FALSE,因为MPMovieLoadStateUnknown == 00 == FALSE – 2010-08-03 23:42:57