1、导入系统库和视频,如下图
2、在ViewController.m文件中
#import "ViewController.h"
//音频播放框架
#import <AVFoundation/AVFoundation.h>
//视频播放框架
#import <MediaPlayer/MediaPlayer.h>
@interface ViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
{
AVAudioPlayer *_player;//声明一个音频播放,通常音频播放对象都是为全局变量,如果局部声明,可能造成音频无法播放
MPMoviePlayerController *movie;//(View的方式呈现)视频播放需要命名全局变量
MPMoviePlayerViewController *moviewVC;//视图控制器的呈现
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//音频播放
[self playerAudio];
//视频播放
[self playerMovie];
//视频播放试图控制器
[self playerMoviewController];
//图片选择,弹出相册
[self showImagePicker];
}
//*******************弹出相册******************************
-(void)showImagePicker
{
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//弹出图片选择方式
// UIImagePickerControllerSourceTypePhotoLibrary //相册
// UIImagePickerControllerSourceTypeCamera //调用相机
// UIImagePickerControllerSourceTypeSavedPhotosAlbum //相薄
imagePicker.delegate = self;
[self presentViewController:imagePicker animated:YES completion:^{
}];
}
//照片选择完成回调代理
//-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
//{
//
//}
//选择图片回调,iOS 8以前的
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
//选择图片完成回调的方法,会往回传递选择照片,或者摄像头拍摄的图片,但是这种方法只能传递一张图片
UIImageView *view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
[view setImage:image];
[self.view addSubview:view];
}
//**************************************************************
//********************播放器弹出方式*******************************
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self playerMoviewController];
[self showImagePicker];
}
//**************************************************************
//***************视频播放试图控制器***************************
-(void)playerMoviewController
{
//通过路径读取视频mp4
NSString *path = [[NSBundle mainBundle] pathForResource:@"dzs" ofType:@"mp4"];
NSURL *url = [NSURL fileURLWithPath:path];
moviewVC = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
[self presentViewController:moviewVC animated:YES completion:^{
}];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(moviePlayerFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
}
-(void)moviePlayerFinish:(NSNotification *)noti
{
NSLog(@"视频播放完成");
}
//-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
//{
// [self playerMoviewController];
//}
//********************************************************************
//********************视频播放******************************
//(View的方式呈现)视频播放需要命名全局变量
-(void)playerMovie
{
// MPMoviePlayerController
// MPMoviePlayerViewController
//视频播放两种方式,一种直接通过试图控制器弹出,一种直接用View方式呈现的
//在iOS里面视频播放,支持mp4/MOV/AVI但是rmvb格式不支持
//在ios里面视频播放可以直接播放,http远程视频
//在iOS开发里面,特别是现在iOS 8以后开发一播放远程视频都是直接视频播放到,html页面上直接播放
NSString *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"mp4"];
movie = [[MPMoviePlayerController alloc] init];
[movie setContentURL:[NSURL fileURLWithPath:path]];
movie.view.frame = CGRectMake(10, 10, 352, 228);
movie.movieSourceType = MPMovieSourceTypeFile;
[self.view addSubview:movie.view];
//视频准备播放
[movie prepareToPlay];
//视频开始播放
[movie play];
}
//********************************************************************
//********************************************************************
//音乐播放
-(void)playerAudio
{
//iOS里面多媒体 包括音频播放,视频播放,照片选择
NSString *path = [[NSBundle mainBundle] pathForResource:@"lalala" ofType:@"mp3"];
//创建音频播放器
_player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];
//准备好播放
[_player prepareToPlay];
//播放
[_player play];
//暂停
[_player pause];
//停止
[_player stop];
//音频播放,音量设置
_player.volume = 1.0;
//创建定时器
[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(playerrun) userInfo:nil repeats:YES];
}
-(void)playerrun
{
//_player.currentTime
//音频播放的当前时间
//通常通过当前播放时间,和音频的总时间来计算歌曲的进度条
//歌曲的歌词是lrc文件
// 1、通常歌词显式也是通过着两个值计算
// 2、lrc歌词自带时间
NSLog(@"音频的当前时间%lf",_player.currentTime);
NSLog(@"音频的总时间%lf",_player.duration);
}
//********************************************************************
//视图控制器是否支持旋转
-(BOOL)shouldAutorotate
{
return YES;
}
//视图控制器支持旋转的方向
-(NSUInteger)supportedInterfaceOrientations
{
// UIInterfaceOrientationPortrait
// UIInterfaceOrientationPortraitUpsideDown
// UIInterfaceOrientationMaskLandscape
// UIInterfaceOrientationLandscapeLeft
// UIInterfaceOrientationLandscapeRight
// UIInterfaceOrientationMaskAll
return UIInterfaceOrientationPortrait | UIInterfaceOrientationLandscapeRight;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end