我不确定我是否理解'MoviePlayerController'的子类是什么意思。 a)这是在创建新的视图控制器并在其中添加MPMoviePlayerController实例吗? b)其他的东西?一些代码示例会非常有帮助。如何继承MPMoviePlayer控制器
感谢
我不确定我是否理解'MoviePlayerController'的子类是什么意思。 a)这是在创建新的视图控制器并在其中添加MPMoviePlayerController实例吗? b)其他的东西?一些代码示例会非常有帮助。如何继承MPMoviePlayer控制器
感谢
这不能作为上面的评论,因为它占用了太多的字符。
好吧@ 1110我要假设你想要一个UITapGestureRecognizer添加到播放器视图,不要忘记已经支持手势捏全屏/删除全屏显示。 下面的代码假设您正在使用MPMoviePlayerController作为iVar的视图控制器。
您可能不想检测到一次敲击,因为它已经使用敲击检测计数为1来显示/隐藏玩家控制器。
下面是一个代码示例为你做了个手势识别为双击
代码PlayerViewController.h
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
@interface PlayerViewController : UIViewController {}
//iVar
@property (nonatomic, retain) MPMoviePlayerController *player;
// methods
- (void)didDetectDoubleTap:(UITapGestureRecognizer *)tap;
@end
代码PlayerViewController.m
#import "PlayerViewController.h"
@implementation PlayerViewController
@synthesize player;
- (void)dealloc
{
[player release];
[super dealloc];
}
- (void)viewDidLoad
{
// initialize an instance of MPMoviePlayerController and set it to the iVar
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://path/to/video.whatever"]];
// the frame is the size of the video on the view
mp.view.frame = CGRectMake(0.0, 0.0, self.view.bounds.size.width, self.view.bounds.size.height/2);
self.player = mp;
[mp release];
[self.view addSubview:self.player.view];
[self.player prepareToPlay];
// add tap gesture recognizer to the player.view property
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didDetectDoubleTap:)];
tapGesture.numberOfTapsRequired = 2;
[self.player.view addGestureRecognizer:tapGesture];
[tapGesture release];
// tell the movie to play
[self.player play];
[super viewDidLoad];
}
- (void)didDetectDoubleTap:(UITapGestureRecognizer *)tap {
// do whatever you want to do here
NSLog(@"double tap detected");
}
@end
仅供参考,我已经检查了这个代码,它的工作原理。
如果你不知道什么子类的手段,你应该研究的题目是“继承”。应该有很多材料覆盖iOS的主题,特别是当您在Xcode中创建任何文件时,很可能您已经对一个类进行了子类化。大多数情况下,您在创建视图时将继承NSObject或UIViewController等。
您可能不希望将MPMoviePlayerController子类化,因为它是一个非常适合流式传输的高级类。 MPMoviePlayerViewController像普通的视图控制器一样工作,只是它已经带有一个MPMoviePlayerController作为iVar。
凝结以下声明:
@interface MPMoviePlayerViewController : UIViewController {}
@property(nonatomic, readonly) MPMoviePlayerController *moviePlayer;
@end
你可以在苹果的文档中心这里的一些示例代码:
电影播放Xcode项目,你会发现这里:
从iOS设备播放电影非常简单,请确保您阅读了Apple的文档。检出这些类的头文件也会让你更深入地了解你正在处理的内容。
希望有所帮助。
我试图使用MPMoviePlayerViewController和一切工作正常,除了我需要检测点击和双击与自定义方法处理程序的球员。所以基本上,如果我使用“MPMoviePlayerController”实例在其子类中创建UIViewController类,对吧? – 1110
+ +1努力解决一个相当愚蠢的问题。 – Till
@till谢谢:) – anthonyherron
谢谢我做了类似的东西,但它的工作:)'与视图控制器与MPMoviePlayerController作为一个iVar',这是我的问题的真正答案,因为我不明白什么时候有人说'subclass mpmovieplayer'它的真正含义,继承或查看与iVar。谢谢。 – 1110