首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向MoviePlayer添加自定义控件

向MoviePlayer添加自定义控件
EN

Stack Overflow用户
提问于 2008-10-10 08:14:10
回答 5查看 16.3K关注 0票数 14

我正在尝试弄清楚如何向iPhone MoviePlayer添加自定义控件。有关我正在尝试执行的操作的示例,请参见下图。

我正在尝试添加一些类似于基本电影控件右侧和左侧的控件。

我在Open SDK中通过在playerview中添加一个子类来做到这一点,但现在在官方SDK和苹果移动到MPMoviePlayerController中,我不确定如何做到这一点。

同样,使用旧的1.x固件方式,它需要我自己捕获触摸事件并隐藏/显示控件。我希望有一种方法可以用标准控件做到这一点,但如果没有,那也没问题。

提前谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-10-11 21:08:04

我找到了做这件事的最好方法!

您可以像普通一样创建电影播放器,然后执行以下操作:

代码语言:javascript
运行
复制
id vvController = [theMovie videoViewController];
[[vvController _overlayView] addSubview:mainView];

其中'mainView‘是您的自定义覆盖。这样做,这样你的自定义覆盖将显示和隐藏与正常覆盖,因为他们现在是一个在同一!

请注意,这仍然使用标准框架,但在框架中没有文档。所以它应该是100%的appstore安全的,但是在以后的框架中“可能”会在没有苹果通知的情况下改变。

票数 10
EN

Stack Overflow用户

发布于 2009-10-24 09:17:57

这里的人可能还在其他博客文章中看到了以下“获取电影播放器窗口”的方法--在索引= 1处。虽然这种方法(参见下面的代码片段)也可能有点“脆弱”,但它可能更“安全”,因为它没有使用MPMoviePlayerController中任何未记录的或非公共的方法。

还要注意,你应该等到你得到一个MPMoviePlayerContentPreloadDidFinishNotification,,这样电影播放器窗口(idx=1)才会真正存在;-)

注意,我在这里也给myOverlayView分配了一个任意的(整数值)视图“标签”--这样我就可以在可能的情况下重用视图,即检查它是否已经被添加到父播放器窗口中。

不管怎样,下面是相关的代码片段:

代码语言:javascript
运行
复制
// 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
票数 10
EN

Stack Overflow用户

发布于 2008-10-10 13:27:36

苹果提供的This sample application应该会有所帮助。从描述中可以看出:

演示了如何使用媒体播放器框架全屏播放电影。该示例包含通过内置的Settings应用程序配置影片背景颜色、播放控件和缩放模式的代码。还演示了如何在播放过程中在电影顶部绘制自定义覆盖控件。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/190493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档