iOS-音頻和視頻,iOS-音頻視頻
一、視頻
MPMoviePlayerController播放本地視頻資源
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播放網路資源(伺服器為自己搭建,地址不可使用)
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];
可以加一個通知,在視頻播放完畢的時候發出通知,將視圖從介面上移除。
- (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];
:
-(BOOL)shouldAutorotate{ return YES;}-(NSUInteger)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskLandscape;}
然後在實現下面代碼:
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/media/root.mp4"];myMPMoviePlayerViewController *player = [[myMPMoviePlayerViewController alloc]initWithContentURL:url];[self presentViewController:player animated:YES completion:nil];
為:
@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]; }}
: