在 iPhone 3.0 SDK 中为 MoviePlayer 添加自定义控件

Posted

技术标签:

【中文标题】在 iPhone 3.0 SDK 中为 MoviePlayer 添加自定义控件【英文标题】:Add Custom Controls to MoviePlayer in iPhone 3.0 SDK 【发布时间】:2009-08-06 18:08:21 【问题描述】:

我想像这个提问者一样向 mediaPlayer 控件视图添加自定义控件:

Add Custom Controls to MoviePlayer

但是,上述问题中发布的解决方案在 3.0.0 中已折旧。有人知道使用新 SDK 的方法吗?

到目前为止,我已经在moviePlayer 视图中添加了一个overlayView,并且可以在触摸时显示我自己的控件,但我似乎无法将触摸传递给moviePlayer 视图以使其显示本机控件。

我一直在使用 touchesBegan 和 touchesEnded 无济于事。任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

看看这个示例项目http://developer.apple.com/iphone/library/samplecode/MoviePlayer_iPhone/它在里面做了它

【讨论】:

谢谢丹尼尔,但我已经广泛研究了那个项目,它并没有像我想要的那样显示自定义控件。正如提问者在我发布的链接中所问的那样,我想向媒体播放器添加控件,就像在 Youtube 应用程序中一样,当用户触摸屏幕时(即在 Prev/Play/Next 旁边)出现本机控件。您链接到的 MoviePlayer 项目肯定不会这样做。 电影播放器​​显示您可以在屏幕上添加控件,具体由您实现,您可以在电影播放器​​中隐藏默认控件并将自己的控件放在那里,就像把2个按钮放在那里你可以使用相同的方法来添加你想要的控件... 所以,您建议最简单的方法是重新实现滚动位置指示器、音量滑块、播放/下一个/上一个等...以及我自己的自定义控件? 但您不必这样做,您可以将自定义控件放在视频顶部,不幸的是您无法访问当前在电影播放器​​上显示的栏,Apple 制作了您的 Tube 应用程序,所以他们可以访问他们想要的任何东西,但你不能...... 我明白丹尼尔的观点,谢谢。但是,我希望有人可能对如何以编程方式显示本机控件提出建议。有人吗?【参考方案2】:

从http://blogs.oreilly.com/iphone/2008/11/the-joys-of-vertical-audio.html找到我自己的问题的答案

也就是说,我正在使用:

id internal;
object_getInstanceVariable( mVideoPlayer, "_internal", (void*)&internal);
id videoViewController;
object_getInstanceVariable(internal, "_videoViewController", (void*)&videoViewController);
id vvController = videoViewController;

那我可以做:

[[vvController _overlayView] addSubview:controlImage];

它仍然很老套,但希望这对其他人有帮助...

【讨论】:

以上是关于在 iPhone 3.0 SDK 中为 MoviePlayer 添加自定义控件的主要内容,如果未能解决你的问题,请参考以下文章

iPhone - 在 3.0 和 4.0 操作系统/SDK 上播放视频?

在 iPhone SDK 3.0 中链接静态库

iPhone SDK 3.0 针对 2.2.1 SDK

升级到 iPhone SDK 3.0 导致 UIKit 问题

iPhone 3G/2G, sdk 3.0 内存问题

如何在 iPhone SDK 3.0 中使用 Shake API?