這裏的人們可能也在其他各種博客文章中看到了以下「獲取電影播放器窗口」的方法 - 在索引= 1處。儘管這種方法(參見下面的片段)也可能有點「脆弱「,它可能有點」更安全「,因爲它不會而不是使用MPMoviePlayerController中的任何未公開的或非公開的方法。
還要注意的是,你應該等待,直到你得到一個MPMoviePlayerContentPreloadDidFinishNotification,使電影播放器窗口(IDX = 1)確實會存在;-)
注意,我還指定任意(整數值)在這裏查看「標籤」myOverlayView - 以便我可以重新使用視圖時,即檢查它是否已被添加到父播放器窗口。
安美居,這裏的相關代碼片段:
// use slight "hack" to get our (parent) movie-player window, should always (?) be the UIWindow at index = 1
//
UIWindow *moviePlayerWindow= [[[UIApplication sharedApplication] windows] objectAtIndex:1];
myOverlayView.center = CGPointMake(
moviePlayerWindow.bounds.size.width - (myOverlayView.bounds.size.height/2) - myOverlayView.display_origin.y,
moviePlayerWindow.center.y
); // center our overlay-view
myOverlayView.hidden = NO; // and show it
if([moviePlayerWindow viewWithTag: MY_OVERLAY_VIEW_TAG] == nil) {
// haven't added our overlay-view as a sub-view to the main MoviePlayer window yet... so do that now
myOverlayView.tag = MY_OVERLAY_VIEW_TAG;
[moviePlayerWindow addSubview: myOverlayView];
}
[moviePlayerWindow bringSubviewToFront: myOverlayView]; // in any case, bring it to the foreground
我剛剛一直在尋找相同的東西。好工作。 +1 – Akusete 2009-03-24 11:42:00
你們是否碰巧知道你是否可以在mediaplayer中創建自定義控件以外的其他控件?例如,逐幀播放? – keuminotti 2009-07-02 22:02:17
您可以創建控件,但這些控件的作用僅限於您可以使用SDK執行的操作。例如,我有一個評級控制,我會顯示評級,並在評級時將其發送給服務器。你想要的是要能夠告訴玩家前進1幀並停止,目前你不能。如果需要,請在bugreporter.apple.com上提交功能請求。 – kdbdallas 2009-07-07 04:49:34