这里的人们可能也在其他各种博客文章中看到了以下“获取电影播放器窗口”的方法 - 在索引= 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