0

如何隐藏电影播放器​​中的音量条并保持其他控件出现(播放,前进......)?我想展示一些没有声音的视频,所以音量条完全没用。

我可以这样做吗?

提前致谢

4

2 回答 2

1

将 的 controlStyle设置MPMoviePlayerMPMovieControlStyleNone

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.

参考MPMoviePlayerController

于 2012-10-31T08:14:17.187 回答
0

除了“破解”子视图之外,没有其他方法可以做到这一点。您可以继承 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 隐藏音量滑块

于 2012-10-31T09:02:05.420 回答