2

MPMoviePlayerViewController在iPad上處於全屏模式時,默認情況下,其控件默認在其上具有上一個和下一個按鈕。在我的項目中,我需要捕獲該覆蓋按鈕的點擊並相應地處理它。由於我不確定如何調用播放列表,所以沒有下一個項目,點擊按鈕後,會退出全屏模式。不知何故,它只是不知道該怎麼做,我沒有得到任何錯誤。如何在iPad上以全屏模式捕捉MPMoviePlayer的下一個按鈕點擊事件?

我想知道的是,如果有方法從fullscreen下一個按鈕和上一個按鈕中收聽/捕獲該事件?

我也嘗試使用我自己的控件覆蓋MPMoviePlayerMPMoviePlayerControllerMPMoviePlayerViewController,但沒有成功。一旦玩家進入fullscreen模式,任何出現的疊加都將被忽略,並且不隨屏幕變焦一起進行。

fullscreen模式下是否有可靠的覆蓋方式?我已經看過來自Apple的樣品,但這似乎不適用於我在fullscreen模式下實際添加任何視圖。

任何幫助,將不勝感激。

回答

2

這是我偶然發現的另一種可能性。全屏模式下的MPMoviePlayerController可能正在發送遠程控制事件。通過在視圖控制器啓用遠程控制事件消息捕獲這些(iOS 4的只由的方式):

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
[self becomeFirstResponder]; 

,然後實現

[UIResponder remoteControlReceivedWithEvent:(UIEvent*)event]; 

並且當視圖消失,註銷在viewWillDisappear:

[[UIApplication sharedApplication] endReceivingRemoteControlEvents]; 
[self resignFirstResponder]; 

我不確定這會起作用,但它值得一試。

+0

Ack。您正在爲iPad開發...還沒有iOS 4。 – 2010-08-04 21:08:21

+0

是的,但是真的,非常感謝你爲此付出瞭如此多的努力。當我準備好iOS 4時,我會保存這些信息,希望這會讓我做到這一點。 我看了一下ABC應用程序,他們用自定義視圖解決了這個問題,所以這就是我將不得不使用它的原因。我真的希望避免這種情況,因爲它只是增加了更多的時間和更多的地方出現問題。 即使我們沒有最終解決方案,我該如何給你信用? – Liam 2010-08-07 23:31:43

8

我還沒有使用MPMoviePlayerViewController,但這裏有一些想法是基於偷看文檔。

它看起來像MPMoviePlayerController有一些可能相關的通知,雖然我沒有看到「下一個和上一個按鈕」的具體引用。他們可能會尋求按鈕?

註冊與

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

而這個功能添加到您的對象的通知:

-(void)moviePlayerPlaybackStateChanged:(NSNotification *)notification { 
    MPMoviePlayerController *moviePlayer = notification.object; 
    MPMoviePlaybackState playbackState = moviePlayer.playbackState; 
    // ... 
} 

我懷疑你會發現,你得到MPMoviePlaybackStateSeekingForward和......爲SeekingBackward更新那些按鈕。

+1

感謝您的回覆,這幾乎就在那裏。爲了到達MPMoviePlayerController,我必須像這樣強制轉換它: [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackStateDidChangeNotification object:(MPMoviePlayerController *)[delegateMoviePlayer moviePlayer]]; 我能看到的是,當我點擊下一個和上一個按鈕時,是一個MPMoviePlaybackStateStopped播放狀態。 這有效,我收到通知,我需要確定上一個和下一個按鈕點擊之間的差異。這將是完整的解決方案。 – Liam 2010-08-02 23:37:37

+0

澄清:我得到一個MPMoviePlaybackStateStopped播放狀態,但這不是按鈕,我似乎還沒有辦法告訴哪個按鈕被按下。 – Liam 2010-08-03 00:55:46

+0

您可以爲http://developer.apple.com/iphone/library/documentation/mediaplayer/reference/MPMoviePlayerController_Class/MPMoviePlayerController/MPMoviePlayerController.html中定義的其他通知添加偵聽器,並在點擊這些通知時查看是否有任何通知正在觸發鈕釦。 – 2010-08-03 01:47:04

相關問題