【问题标题】:How do I turn off the back and next buttons on MPMoviePlayerController in full-screen mode?如何在全屏模式下关闭 MPMoviePlayerController 上的后退和下一个按钮?
【发布时间】:2011-05-16 22:10:51
【问题描述】:

我的 iPad 应用程序中有一个 MPMoviePlayerController。当有视频要查看时,用户点击它,然后可以全屏显示。但是,如果用户在全屏模式下按下 NEXT 按钮,电影将变为空白并且无法再次播放视频!

反正我不需要后退和下一个按钮。如何摆脱它们,或对其进行排序,以免我的应用崩溃?

谢谢!

:-乔

【问题讨论】:

    标签: objective-c ipad mpmovieplayercontroller fullscreen ios32


    【解决方案1】:

    您可以尝试将其 controlStyle 设置为 MPMovieControlStyleEmbedded — 这将为您提供嵌入式样式的控件,它只是一个滑动条、一个播放/暂停按钮和一个全屏切换。

    【讨论】:

    • 如果我这样做,不幸的是我仍然在全屏模式下获得默认按钮,所以我仍然有返回和下一步按钮:(
    • 嗯。然后,您可能必须在 AVPlayerLayer 之上构建自己的一组控件,该 AVPlayer 承载从 AVURLAsset 读取的 AVPlayer。换句话说,开始研究 AVFoundation 框架。 :)
    • 真的吗?那么,如果您尝试跳过下一步,Apple 的默认电影播放器​​会崩溃吗?这不是bug吗?
    【解决方案2】:

    刚刚在 iOS 7 中遇到了这个问题。搜索按钮会触发 MPMoviePlaybackStateStopped 类型的 MPMoviePlayerPlaybackStateDidChangeNotification。因此,如果您想保留标准 UI 控件而不创建自定义控件,则可以侦听此案例并进行适当处理。

    【讨论】:

      【解决方案3】:

      这是不好的方式... 只需 foreach 播放器视图的所有子视图并按索引关闭所需的按钮

      [self listSubviewsOfView:playerVC.view andLevel: 0];
      
      
      
      - (void)listSubviewsOfView:(UIView *)view andLevel: (NSInteger)level {
      
          NSArray *subviews = [view subviews];
          if ([subviews count] == 0) return;
          for (UIView *subview in subviews) {
             NSString *str = NSStringFromClass([subview class]);
             if(subview.hidden == NO){
                if([str isEqualToString:@"MPKnockoutButton"] && (level== 15 || level== 17) ){
                     subview.hidden = YES;
                }
            }
           [self listSubviewsOfView:subview andLevel:level];
         }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-30
        • 1970-01-01
        • 2017-06-13
        • 1970-01-01
        相关资源
        最近更新 更多