Люди здесь, вероятно, также видели в различных других сообщениях в блоге следующий подход «получить окно проигрывателя фильмов» - при index = 1. Хотя этот подход (см. Фрагмент ниже) также, возможно, немного «хрупок», скорее всего, это немного «безопаснее», поскольку не использует любые недокументированные или непубличные методы в MPMoviePlayerController.
Обратите внимание, что вам следует подождать, пока вы не получите MPMoviePlayerContentPreloadDidFinishNotification, так что окно проигрывателя фильмов (idx = 1) действительно будет существовать; -)
Примечание. Я также назначаю произвольный (целочисленный) вид "тега" для myOverlayView здесь - так, чтобы я мог повторно использовать вид, когда это возможно, то есть проверить, был ли он уже добавлен в окно родительского проигрывателя.
anyhoo, вот соответствующий фрагмент кода:
// 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