MPMoviePlayerController播放本地視頻資源(本地資源URL出現漢字不能編碼)服務器
NSString *path = [[NSBundle mainBundle]pathForResource:@"root" ofType:@"mp4"]; NSURL *url = [NSURL fileURLWithPath:path]; _playcontroller = [[MPMoviePlayerController alloc]initWithContentURL:url]; _playcontroller.view.frame = CGRectMake(0, 100, 320, 300); [_playcontroller play]; [self.view addSubview:_playcontroller.view];
MPMoviePlayerController播放網絡資源(服務器爲本身搭建,地址不可以使用,鏈接服務器的URL,出現漢字須要編碼)網絡
str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]//編碼方法框架
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/media/root.mp4"]; _playcontroller.view.frame = CGRectMake(0, 100, 320, 300);
[_playcontroller play]; [self.view addSubview:_playcontroller.view];
能夠加一個通知,在視頻播放完畢的時候發出通知,將視圖從界面上移除。ide
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(removeMedia) name:MPMoviePlayerPlaybackDidFinishNotification object:nil]; } -(void)removeMedia { [_playcontroller.view removeFromSuperview]; }
MPMoviePlayerViewController播放視頻資源編碼
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/media/root.mp4"]; MPMoviePlayerViewController *player = [[MPMoviePlayerViewController alloc]initWithContentURL:url]; [self presentViewController:player animated:YES completion:nil];
效果圖:url
MPMoviePlayerViewController如何讓視頻橫屏播放。spa
橫屏播放,須要繼承MPMoviePlayerViewController這個類。假設myMPMoviePlayerViewController繼承這個類。orm
咱們須要在myMPMoviePlayerViewController中實現兩個方法。視頻
-(BOOL)shouldAutorotate { return YES; } -(NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscape; }
而後在實現下面代碼:server
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/media/root.mp4"]; myMPMoviePlayerViewController *player = [[myMPMoviePlayerViewController alloc]initWithContentURL:url]; [self presentViewController:player animated:YES completion:nil];
效果圖爲:
音頻的話,咱們須要框架AVFoundation.framework
音頻的話,通常須要使用進度條顯示音頻播放的進度。
@interface ViewController : UIViewController { //音頻播放器 AVAudioPlayer * _audioPalyer; IBOutlet UISlider *_slider; float currentProgress; NSTimer *_timer; } - (IBAction)playButton:(id)sender; - (IBAction)stopButton:(id)sender; @end
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. _slider.value = 0.0; } - (IBAction)playButton:(id)sender { _timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(moveSlide) userInfo:nil repeats:YES]; NSString *path = [[NSBundle mainBundle]pathForResource:@"1" ofType:@"mp3"]; NSData *data = [NSData dataWithContentsOfFile:path]; _audioPalyer = [[AVAudioPlayer alloc]initWithData:data error:nil]; [_audioPalyer play]; _slider.maximumValue = _audioPalyer.duration; [_slider addTarget:self action:@selector(changeSlide) forControlEvents:UIControlEventValueChanged]; } -(void)changeSlide { _audioPalyer.currentTime = _slider.value; } -(void)moveSlide { _slider.value = _audioPalyer.currentTime; } - (IBAction)stopButton:(id)sender { UIButton *button = (UIButton *)sender; if (button.tag == 0) { [_audioPalyer pause]; [button setTitle:@"繼續播放" forState:UIControlStateNormal]; button.tag = 1; [_timer invalidate]; _timer = nil; } else { [_audioPalyer play]; [button setTitle:@"暫停" forState:UIControlStateNormal]; button.tag = 0; [_slider addTarget:self action:@selector(changeSlide) forControlEvents:UIControlEventValueChanged]; } }
效果圖: