2010-06-30 57 views
0

作爲標題,當我使用moviePlayer播放電影時,我想知道什麼時候playControllerBar會被解僱,以便我可以控制添加在moviePlayer中的視圖。 有沒有人知道? 告訴我,謝謝。如何知道moviePlayer的playControllerBar何時會被解僱?

+0

我在Iphone os3.2上工作,標籤Iphone os3.0一定是個錯誤,我真的很想知道它是如何在Iphone os3.2上工作的。 playControllerBar是我的意思是酒吧有暫停,播放,前進,後退和回放速率欄。 – ben 2010-07-02 01:34:03

+0

MPMovieControlStyleFullscreen – ben 2010-07-02 01:43:01

回答

1

如果我理解正確,我不是100%確定。 我假設你想要做的是:

  1. 播放電影
  2. 添加上(運行)電影的頂部自定義視圖(疊加)。

假設我剛纔寫下,我認爲你必須考慮以下幾點:

  1. 增加對MPMoviePlayerViewController頂部自定義背景畫面是(就我而言)只允許/可能的,如果標準的播放器控制設置爲none:

    [moviePlayerViewController.moviePlayer setControlStyle:MPMovieControlStyleNone]; 
    
  2. 添加自定義覆蓋在播放器上基本相同addSubview程序上的任何其他六EW

    [moviePlayerViewController.view addSubview:overlay]; 
    

上面的代碼/概念將工作在3.2和更高版本,因爲我剛剛看了現在你明明開發3.0

而不是刪除我的答案的第一部分我現在將解釋如何在3.0上實現相同效果3.0

在3.0上它有點棘手(正如您現在確定知道的那樣)。 MPMoviePlayerController不是視圖控制器,僅適用於全屏模式。 電影開始播放後,keyWindow更改爲!所以我們利用通過實施以下幾點:

1)你的類,它封裝了的MPMoviePlayerController內,開始做聽UIWindowDidBecomeKeyNotification如下:

 [[NSNotificationCenter defaultCenter] addObserver: self 
              selector: @selector(keyWindowChanged:) 
               name: UIWindowDidBecomeKeyNotification 
               object: nil]; 

2)withing您keyWindowChanged:方法,你可以添加您的覆蓋,下面snipplet是究竟如何,我實現它:再次

- (void)keyWindowChanged: (id) sender { 

//NSLog(@"keyWindowChanged"); 
[[NSNotificationCenter defaultCenter] removeObserver: self name: UIWindowDidBecomeKeyNotification object: nil]; 
UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow]; 

[moviePlayerWindow addSubview: overlayController.view]; 
[overlayController performSelector:@selector(fadeIn)]; 

} 

,這隻能如果MovieControllMode「隱藏」通過這樣做:

[newMPController setMovieControlMode: MPMovieControlModeHidden]; 

我希望我能幫上忙。

+0

它真的幫了我很多,這對你很好,謝謝你,好人〜 – ben 2010-06-30 07:51:34