如何隐藏电影播放器中的音量条并保持其他控件出现(播放,前进......)?我想展示一些没有声音的视频,所以音量条完全没用。
我可以这样做吗?
提前致谢
如何隐藏电影播放器中的音量条并保持其他控件出现(播放,前进......)?我想展示一些没有声音的视频,所以音量条完全没用。
我可以这样做吗?
提前致谢
将 的 controlStyle
设置MPMoviePlayer
为MPMovieControlStyleNone
。
moviePlayer.controlStyle = MPMovieControlStyleNone;
但这将隐藏视图中的所有控件。
设置为 后MPMovieControlStyleNone
,如果要显示播放/暂停选项和搜索栏,则需要添加自定义控件。(我之前做过,我使用滑块作为搜索栏,并将其与工具栏按钮一起放在一个UIToolBar
。按钮用于播放/暂停选项)
MPMovieControlStyle
描述播放控件样式的常量。
枚举 { MPMovieControlStyleNone, MPMovieControlStyleEmbedded,
MPMovieControlStyleFullscreen, MPMovieControlStyleDefault = MPMovieControlStyleFullscreen }; typedef NSInteger MPMovieControlStyle;常数
MPMovieControlStyleNone
No controls are displayed. Available in iOS 3.2 and later. Declared in MPMoviePlayerController.h.
MPMovieControlStyleEmbedded
Controls for an embedded view are displayed. The controls include a start/pause button, a scrubber bar, and a button for toggling
全屏和嵌入式显示模式之间。
Available in iOS 3.2 and later. Declared in MPMoviePlayerController.h.
MPMovieControlStyle全屏
Controls for fullscreen playback are displayed. The controls include a start/pause button, a scrubber bar, forward and reverse
搜索按钮,一个用于在全屏和嵌入式显示模式之间切换的按钮,一个用于切换纵横比填充模式的按钮,以及一个完成按钮。点击完成按钮会暂停视频并退出全屏模式。
Available in iOS 3.2 and later. Declared in MPMoviePlayerController.h.
MPMovieControlStyleDefault
Fullscreen controls are displayed by default. Available in iOS 3.2 and later. Declared in MPMoviePlayerController.h.
除了“破解”子视图之外,没有其他方法可以做到这一点。您可以继承 MPMoviePlayerViewController 并迭代子视图。在我的一个应用程序中,我使用这样的代码来删除媒体控件之类的东西:
- (void)removeMediaControls
{
@try
{
// Search for the MPSwipeableView
for (UIView *view1 in [self.view subviews])
{
// Check for the MPSwipeableView
if ([[[view1 class] description] isEqualToString:@"MPSwipableView"])
{
// Search for the MPVideoBackgroundView
for (UIView *view2 in [view1 subviews])
{
// Check for the MPVideoBackgroundView
if ([[[view2 class] description] isEqualToString:@"MPVideoBackgroundView"])
{
// Search for the UIView
for (UIView *view3 in [view2 subviews])
{
// Check for the MPWildcatFullScreenVideoOverlay
if ([[[view3 class] description] isEqualToString:@"MPWildcatFullScreenVideoOverlay"])
{
// Search for the MPWildcatFullScreenNavigationBar
for (UIView *view4 in [view3 subviews])
{
// Check for the UIImageView
if ([[[view4 class] description] isEqualToString:@"UIImageView"])
{
// Remove the overlay
[view4 removeFromSuperview];
}
}
}
}
}
}
}
}
}
@catch (NSException * e)
{
}
}
上面的代码太旧了,它适用于 iOS 4.3。在 iOS 5 和 iOS 6 上,视图层次结构发生了变化,因此您可能必须使用每个新的 iOS 版本更新代码。另请参阅:MPMoviePlayerController 隐藏音量滑块