不多说直接上代码
<pre name="code" class="objc">@interface VideoPlayerController ()
{
BOOL _shouldUpdatePreogressIndicator;//拖动进度控制
BOOL _isplay;
NSInteger _record;
UILabel *label;
}
- (void)updateProgressIndicator;//更新进度条及其时间
@end
@implementation VideoPlayerController//也可以初始化为一个单列变量,根据项目需求而定
- (instancetype)initWithContentURL:(NSURL *)url frame:(CGRect)frame title :(NSString *)title poster:(NSString *)posterString{
self = [super initWithContentURL:url];
if (self) {
_posterString = posterString;
_title =[NSObject setStringWithNULL: title];
_selfFrame = frame;
_record = 0;
}
return self;
}
初始化控制界面
<pre name="code" class="objc">- (void)setUpUserInterface{//界面空间就不一一赘述,这里提一下<span style="font-family: Arial, Helvetica, sans-serif;">subviews[0]可以拿到顶层界面,在这里可以添加你需要的控件</span><pre name="code" class="objc">
[self setControlStyle:MPMovieControlStyleNone]; self.scalingMode = MPMovieScalingModeAspectFit; self.view.gestureRecognizers = nil; self.view.userInteractionEnabled = YES; self.view.frame = _selfFrame; [self getControllView]; [self getposterImage]; _isplay = NO; _playPauseButton.selected = NO; [self processPlayButton:_playPauseButton]; UIWindow *window = [[[UIApplication sharedApplication] delegate] window]; _fontView = [[UIView alloc] initWithFrame:CGRectMake(0, 94, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds)-60)]; _fontView.center = self.view.center; [window addSubview:_fontView]; _fontView.hidden =YES; UITapGestureRecognizer * tapGe = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(pressPlayer)]; [_fontView addGestureRecognizer:tapGe]; UITapGestureRecognizer * tapGe2 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(pressPlayer)]; [self.view.subviews[0] addGestureRecognizer:tapGe2]; UITapGestureRecognizer * tapGe3 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(pressPlayer)]; [self.view addGestureRecognizer:tapGe3]; UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; [self.view.subviews[0] addGestureRecognizer:panGestureRecognizer]; UIPanGestureRecognizer *panGestureRecognizer2 = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; [_fontView addGestureRecognizer:panGestureRecognizer2]; }
快进快退
<pre name="code" class="objc">- (void) handlePan:(UIPanGestureRecognizer*) recognizer
{
CGPoint translation = [recognizer translationInView:self.view];
[recognizer setTranslation:CGPointZero inView:self.view];
if (recognizer.state == UIGestureRecognizerStateChanged) {
self.playScheduleSlider.value += translation.x;
[self setCurrentPlaybackTime:_playScheduleSlider.value];
}
if (recognizer.state == UIGestureRecognizerStateBegan) {
[self pause];
}
if (recognizer.state == UIGestureRecognizerStateEnded) {
[self play];
}
}
<pre name="code" class="objc">- (void)sliderTouchDown:(UISlider *)_sender
{
_shouldUpdatePreogressIndicator = NO;
}
- (void)sliderTouchUpInside:(UISlider *)_sender
{
_shouldUpdatePreogressIndicator = YES;
}
- (void)beginTimer
{