//
// MediaViewController.m
// 左右健康
//
// Created by 何 江 on 12-8-25.
//
//
#import "MediaViewController.h"
@interfaceMediaViewController (){
UIImageView *backImageView;
}
@end
@implementation MediaViewController
@synthesize moviePlayer=_moviePlayer;
@synthesize file_name;
@synthesize movieControlStyle;
@synthesize showNums = _showNums ;
@synthesize stype;
@synthesize isNeedStopMusic;
-(id)init
{
if(self=[superinit])
{
stype=MPMovieControlStyleFullscreen;
isNeedStopMusic=YES;
}
returnself;
}
- (void)viewDidLoad
{
[superviewDidLoad];
// Do any additional setup after loading the view.
[self.view setFrame:CGRectMake(0, 0, 1024, 768)];
// self.view.backgroundColor=[UIColor redColor];
if (file_name == nil) {
file_name = @"LOGO";
}
if(isNeedStopMusic)
[[NSNotificationCenterdefaultCenter] postNotificationName:@"StopBackGroundMusic"object:nil];
// NSString *loc_Path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@.mp4",file_name] ofType:nil inDirectory:RESOURCES_PATH];
//
// if (!loc_Path) {
// [self performSelector:@selector(moviePlayBackDidFinish:) withObject:nil afterDelay:0.8];
// return;
// }
// [self playLocalVideo:loc_Path];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleReturnBackGround) name:@"applicationDidBecomeActive_SS" object:nil];
backImageView = [[UIImageViewalloc]initWithFrame:CurrentDeviceBounds];
backImageView.userInteractionEnabled = YES;
backImageView.tag = 1 ;
[self.viewaddSubview:backImageView];
[selfplayLocalVideo];
// [self performSelector:@selector(playLocalVideo) withObject:nil afterDelay:0.1];
}
- (void)handleReturnBackGround{
NSLog(@"handleReturnBackGround");
if( _moviePlayer ){
[_moviePlayer play];
}
}
-(void)playLocalVideo
{
NSString *loc_Path = [[NSBundlemainBundle] pathForResource:[NSStringstringWithFormat:@"%@.mp4",file_name] ofType:nilinDirectory:RESOURCES_PATH];
if (!loc_Path) {
[self performSelector:@selector(moviePlayBackDidFinish:) withObject:nil afterDelay:0.8];
return;
}
// NSLog(@"播放本地视频:%@",_path);
//加载视频
// MPMoviePlayerController *mp;
//播放的路径
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:loc_Path];
_moviePlayer = [[MPMoviePlayerControlleralloc] initWithContentURL:fileURL];
//设置大小
CGRect frame;
frame=CGRectMake(0, 0, 1024, 768);
_moviePlayer.view.frame = frame;
// self.view.frame = frame;
//把加载到的视频传递到页面播放器上
// self.moviePlayer = mp;
//[mp release];
//设置大小
// [moviePlayer.view setFrame:self.view.bounds];
// _moviePlayer.shouldAutoplay = YES;
_moviePlayer.controlStyle = stype;// movieControlStyle;
_moviePlayer.fullscreen = YES;
_moviePlayer.scalingMode = MPMovieScalingModeFill;
[backImageViewinsertSubview:_moviePlayer.viewatIndex:0];
if( _showNums == StartMovieControl){
// _moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
_moviePlayer.fullscreen = YES;
_moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
_moviePlayer.repeatMode = MPMovieRepeatModeOne ;
}
[_moviePlayerplay];
// CGAffineTransform landscapeTransform;
//landscapeTransform = CGAffineTransformMakeRotation(degreesToRadian(90));//控制视频画面的朝向,也就是旋转角度
//landscapeTransform = CGAffineTransformTranslate(landscapeTransform, 80, 80);
//[self.moviePlayer.view setTransform: landscapeTransform];
// //加载条
// [self ForLoading];
// activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
// activityView.frame = CGRectMake((self.view.frame.size.width-37.0)/2, (self.view.frame.size.height-37.0)/2, 37.0f, 37.0f);
// [self.view addSubview:activityView];
// [activityView startAnimating];
//完成播放消息
[[NSNotificationCenterdefaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
[[NSNotificationCenterdefaultCenter] addObserver:self
selector:@selector(moviePlayBackDidChange:)
name:MPMoviePlayerPlaybackStateDidChangeNotification
object:nil];
// //加载完成
// [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieStartCallback:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil];
// [self performSelector:@selector(startShow) withObject:_path afterDelay:0.1];
// if (self.movieControlStyle != MPMovieControlStyleFullscreen) {
// UIButton *loc_btn = [[UIButton alloc] initWithFrame:CGRectMake(900, 700, 100, 40)];
//// loc_btn.backgroundColor = [UIColor redColor];
// [loc_btn setTitle:@"跳 过" forState:UIControlStateNormal];
// [loc_btn addTarget:self action:@selector(stopMediaEvent) forControlEvents:UIControlEventTouchUpInside];
// [self.view addSubview:loc_btn];
// }
// [self addBackButtonInView:self.view];
}
-(void)stopMediaEvent{
[selfmoviePlayBackDidFinish:nil];
}
- (void) moviePlayBackDidChange:(NSNotification*)notification
{
NSLog(@"hejiang:%@-----%d",[notification userInfo],self.moviePlayer.playbackState);//MPMoviePlaybackState
if (MPMoviePlaybackStateInterrupted == _moviePlayer.playbackState) {
[_moviePlayer play];
}
}
- (void) moviePlayBackDidFinish:(NSNotification*)notification
{
NSLog(@"=====播放结束=====");
// [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
[selfhiddenOrNoStausBar:YES];
[[NSNotificationCenterdefaultCenter] removeObserver:self];
[[NSNotificationCenterdefaultCenter] postNotificationName:@"StartBackGroundMusic"object:nil];
[selfbackButtonAction:nil];
return;
if (self.movieControlStyle == MPMovieControlStyleFullscreen) {
[selfdismissModalViewControllerAnimated:YES];
[_moviePlayer stop];
[_moviePlayer.viewremoveFromSuperview];
_moviePlayer=nil;
[self.viewremoveFromSuperview];
}else{
[_moviePlayer stop];
[_moviePlayer.viewremoveFromSuperview];
_moviePlayer=nil;
[self.viewremoveFromSuperview];
}
[[NSNotificationCenterdefaultCenter] postNotificationName:@"StartBackGroundMusic"object:nil];
return;
NSNumber* reason = [[notification userInfo] objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey];
switch ([reason intValue])
{
caseMPMovieFinishReasonPlaybackEnded:
{
NSLog(@"playbackFinished. Reason: Playback Ended");
// [self performSelector:@selector(stopPlay) withObject:nil afterDelay:0.1];
}
break;
caseMPMovieFinishReasonPlaybackError:
{
NSLog(@"playbackFinished. Reason: Playback Error");
//回到之前的导航界面
// [self.navigationController popViewControllerAnimated:YES];
// [self performSelector:@selector(backEvent) withObject:nil afterDelay:0.3];
// [self backEvent];
}
break;
caseMPMovieFinishReasonUserExited:
{
NSLog(@"playbackFinished. Reason: User Exited");
//回到之前的导航界面
// [self.navigationController popViewControllerAnimated:YES];
// [self performSelector:@selector(stopPlay) withObject:nil afterDelay:0.1];
}
break;
default:
break;
}
}
- (void)viewDidUnload
{
[superviewDidUnload];
// Release any retained subviews of the main view.
}
-(void)dealloc{
NSLog(@"-------1231231231231");
[[NSNotificationCenterdefaultCenter] removeObserver:self];
}
@end
//
// MediaViewController.h
// 左右健康
//
// Created by 何 江 on 12-8-25.
//
//
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
#import "BuildingShowbaseViewController.h"
typedefenum{
GMZearo,
StartMovieControl,
}ControlMoviePlayerMode;
@interface MediaViewController : BuildingShowbaseViewController {
NSString *file_name;
}
@property (nonatomic,strong) NSString *file_name;
@property (nonatomic,strong) MPMoviePlayerController *moviePlayer;
@property (nonatomic,assign) MPMovieControlStyle movieControlStyle;
@property (nonatomic , assign) int showNums;
@property(nonatomic,assign)MPMovieControlStyle stype;
@property(nonatomic,assign)BOOL isNeedStopMusic;
@end