`
re_reference
  • 浏览: 236694 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ipad 视频播放器的渐变播放效果

阅读更多
实现视频播放的渐变切换效果,可以修改代码在iphone上使用。
//
//  FLWPlayer.h
//
//  Created by scott.8an@gmail.com on 11-10-28.
//  Copyright 2011 littleWorn inc. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
@class FLWPlayer;

@protocol FLWPlayerDelegate <NSObject>
-(void)singleTapView:(FLWPlayer*)view;
@end

//interface
@interface FLWPlayer : UIView{
@private
	id<FLWPlayerDelegate>_delegate;
	MPMoviePlayerController *_player;
	NSURL *_url;
}
@property(assign)			id<FLWPlayerDelegate> delegate;
@property(nonatomic,retain) NSURL *url;
@property(nonatomic,retain) MPMoviePlayerController *player;

-(id)initWithURL:(NSURL*)url;
-(id)initWithFrame:(CGRect)frame url:(NSURL*)url;

-(void)play;
-(void)stop;
-(void)pause;
@end


//
//  FLWPlayer.m
//
//  Created by scott.8an@gmail.com on 11-10-28.
//  Copyright 2011 littleWorn inc. All rights reserved.
//
#import "FLWPlayer.h"

@implementation FLWPlayer
@synthesize delegate = _delegate;
@synthesize url = _url;
@synthesize player = _player;

#pragma mark life cycle
- (void)dealloc {
	[_delegate release];
	[_url release];
	[_player release];
    [super dealloc];
}

//init
-(id)init{
	if (self = [super init]) {
		//去掉状态栏
		[[UIApplication sharedApplication] setStatusBarHidden:YES];
		
		UITapGestureRecognizer *tg = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap)];
		tg.numberOfTapsRequired = 2;
		[self addGestureRecognizer:tg];
		[tg release];
	}
	return self;
}

-(id)initWithFrame:(CGRect)frame{
	if (self = [super initWithFrame:frame]) {
		//去掉状态栏
		[[UIApplication sharedApplication] setStatusBarHidden:YES];
		
		UITapGestureRecognizer *tg = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap)];
		tg.numberOfTapsRequired = 2;
		[self addGestureRecognizer:tg];
		[tg release];
	}
	return self;
}

-(id)initWithURL:(NSURL*)url{
	if (self = [super init]) {
		self.url = url;
		
		//去掉状态栏
		[[UIApplication sharedApplication] setStatusBarHidden:YES];
		
		UITapGestureRecognizer *tg = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap)];
		tg.numberOfTapsRequired = 2;
		[self addGestureRecognizer:tg];
		[tg release];
	}
	return self;
}

-(id)initWithFrame:(CGRect)frame url:(NSURL*)url{
	if (self = [super initWithFrame:frame]) {
		self.url = url;
		
		//去掉状态栏
		[[UIApplication sharedApplication] setStatusBarHidden:YES];
		
		UITapGestureRecognizer *tg = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap)];
		tg.numberOfTapsRequired = 2;
		[self addGestureRecognizer:tg];
		[tg release];
	}
	return self;
}

-(void)singleTap{
	[self.delegate singleTapView:self];
}

#pragma mark overide
//-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
//	[self.delegate singleTapView:self];
//}


//播放视频
-(void)play{
	//覆盖
	UIView *cover = [[UIView alloc] initWithFrame:CGRectMake(0,0, 1024, 768)];
	cover.tag = 100;
	cover.backgroundColor = [UIColor blackColor];
	cover.alpha = 0.0f;
	//添加覆盖视图实现渐变退出效果
	[UIView beginAnimations:nil context:nil];
	[UIView setAnimationDuration:0.4f];
	[UIView setAnimationDelay:0.2f];
	[UIView setAnimationDelegate:self];
	[UIView setAnimationDidStopSelector:@selector(stopPlaying)];
	cover.alpha = 1.0f;
	[UIView commitAnimations];
	[self addSubview:cover];
	[cover release];
	self.backgroundColor = [UIColor blackColor];
}
//开始播放
-(void)startToPlay{
	if (nil == self.url) {
		return;
	}
	
	//清除覆盖
	UIView *cover = [self viewWithTag:100];
	if (cover) {
		[cover removeFromSuperview];
	}
	//加载视频
	if (_player) {
		[_player setContentURL:self.url];
	}else {
		self.player = [[MPMoviePlayerController alloc] initWithContentURL:self.url];
		_player.view.frame = CGRectMake(0, 0, 1024, 768);
		_player.controlStyle= MPMovieControlStyleNone;
		_player.repeatMode = MPMovieRepeatModeOne;
		[_player setFullscreen:YES];
		[self addSubview:_player.view];
		[_player release];
	}
	//开始播放
	[_player prepareToPlay];
	[_player play];
	
	//渐变进入
	_player.view.alpha = 0.0f;
	_player.backgroundView.backgroundColor = [UIColor blackColor];
	[UIView beginAnimations:nil context:nil];
	[UIView setAnimationDuration:1.0f];
	_player.view.alpha = 1.0f;
	[UIView commitAnimations];
}

//停止正在播放的视频
-(void)stopPlaying{
	[self stop];
	[self startToPlay];
}

//停止播放
-(void)stop{
	if (_player) {
		[_player stop];
	}
}

//暂停播放
-(void)pause{
	if (_player) {
		[_player pause];
	}
}
@end

分享到:
评论

相关推荐

    HTML5+CSS3视频播放器

    在视频播放器设计中,CSS3可以用于美化播放器界面,例如,通过伪类选择器实现按钮的悬停效果,通过渐变和阴影增加视觉层次感,或者利用Flexbox或Grid布局实现元素的灵活对齐。CSS3的过渡和动画特性则可以用来制作...

    jquery html5视频播放器插件.zip

    在视频播放器插件中,CSS3用于美化界面,如创建自定义播放/暂停按钮、进度条、控制栏等视觉效果,以及动态改变元素状态的动画。 4. **自定义控制**:jQuery HTML5视频播放器插件往往允许开发者自定义播放器的外观和...

    Flash页面渐变交替效果

    当播放头在时间轴上移动时,对象会根据关键帧间的差异进行动画过渡,从而实现渐变交替的效果。 3. **ActionScript编程**:除了图形和动画编辑,Flash还支持ActionScript,一种基于ECMAScript的脚本语言。通过编写...

    WPF 视频播放器

    这使得开发者能够轻松地创建功能丰富且视觉效果出众的视频播放界面。 ### 二、XAML代码解析 #### 1. **背景设置** 在提供的XAML代码中,我们可以看到对窗口背景进行的渐变色设置。通过使用`LinearGradientBrush`...

    Android 图片、视频播放器

    综上所述,"Android 图片、视频播放器"项目是一个涵盖了Android多媒体处理多个方面的实例,对于学习和实践Android应用开发,尤其是涉及到图片和视频播放的场景,是非常有价值的参考资料。通过深入研究和理解源码,...

    HTML5视频播放器美化

    JavaScript可以用来增强播放器的功能,例如添加自定义的事件监听器,实现视频的自动播放、暂停、全屏切换等。例如,我们可以使用`addEventListener`来监听播放和暂停按钮的点击事件: ```javascript var playBtn = ...

    简洁的视频播放器UI特效.zip

    在这个视频播放器中,CSS3可能用于创建现代、响应式的布局,以及实现诸如渐变、阴影、过渡和动画等视觉效果。边框进度条的动态更新、播放按钮的状态变化以及全屏模式下的布局调整,都离不开CSS3的支持。 在压缩包中...

    HTML5实现音视频播放器

    CSS3提供了丰富的选择器和动画效果,可以实现动态UI,例如按钮悬停效果、渐变背景和过渡效果,以增强用户交互体验。 3. **JavaScript 控制**: Audio_main.js 和 video_main.js 是两个JavaScript文件,用于处理...

    易语言渐变字效果

    易语言渐变字效果源码,渐变字效果,分离

    炫酷的html5视频播放器

    CSS3允许开发者创建更丰富、更动态的视觉效果,例如动画、过渡和渐变。在这个播放器中,可能使用了CSS3来定制播放器的外观,如按钮样式、进度条设计以及响应式布局,确保在不同设备上都能保持一致的用户体验。CSS3...

    带渐变色 效果的柱形图

    当柱形图结合了渐变色效果时,不仅可以增强视觉吸引力,还能更有效地传达数据间的差异和趋势。本篇文章将深入探讨如何创建带有渐变色效果的柱形图,并基于提供的文件"BarChartManager.java",以及可能使用的库...

    Jquery图片渐变效果

    在网页设计中,jQuery 图片渐变效果是一种增强用户体验的常见技术。这种效果可以使图片在加载或切换时平滑地过渡,为用户带来更流畅、更动态的视觉体验。jQuery 是一个广泛使用的JavaScript库,它简化了DOM操作、...

    UnityShader 实现3D模型颜色渐变效果

    本教程将探讨如何利用Unity Shader实现3D模型的颜色渐变效果。颜色渐变是一种常见的视觉表现手法,它可以让模型看起来更加生动和有层次感。 首先,我们需要理解Unity中的Standard Shader,这是Unity默认提供的一个...

    HTML5视频播放器美化插件.zip

    此外,插件可能还会包含一些额外的JavaScript库,如Video.js、 Plyr 或 JW Player等,这些专业级的视频播放器框架提供了更高级的功能,如字幕支持、广告集成、流媒体处理等。开发者可以根据项目需求选择合适的框架,...

    jquery+UI渐变提示效果日历

    【jQuery + UI 渐变提示效果日历】是一种在网页中实现美观且互动性强的日历组件,它结合了jQuery库的高效性和UI框架的界面设计,为用户提供了一种优雅的方式来展示和选择日期。这个组件通常包含一个日历视图,用户...

    HTML5+CSS3视频播放器.zip

    2. 背景和边框:使用CSS3的背景图像、渐变、阴影和边框 radius,可以创建出丰富的视觉效果。 3. 动画和过渡(Transitions & Animations):通过`transition`和`animation`属性,可以实现平滑的过渡效果,如播放/...

    网页粉色渐变音乐播放器效果html源码.txt

    网页粉色渐变音乐播放器效果html源码

    js渐变图标效果广告代码

    【标题】"js渐变图标效果广告代码"指的是使用JavaScript编程语言实现的一种视觉效果,它在图标上应用了颜色渐变,以制作出吸引人的广告元素。这种效果通常用于提升用户体验,增加网页互动性,以及增强广告的视觉吸引...

    Android 仿微信底部渐变Tab效果

    Android 仿微信底部渐变Tab效果知识点总结 在 Android 开发中,实现仿微信底部渐变 Tab 效果是一项非常有趣的挑战。通过本文,我们将逐步实现这个功能,包括自定义 View 的设计、颜色渐变的实现、图标的绘制、文字...

Global site tag (gtag.js) - Google Analytics