国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

iOS-音頻和視頻

2019-11-14 18:16:59
字體:
供稿:網(wǎng)友

一、視頻

  1. 視頻播放器需要添加MediaPlayer.framework.
  2. 視頻播放主要提供了兩個(gè)類,一個(gè)MPMoviePlayerController, 另一個(gè)是MPMoviePlayerViewController.
  3. 視頻資源可以從本地獲得,也可以從服務(wù)器獲得。

MPMoviePlayerController播放本地視頻資源(本地資源URL出現(xiàn)漢字不能編碼)

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播放網(wǎng)絡(luò)資源(服務(wù)器為自己搭建,地址不可使用,連接服務(wù)器的URL,出現(xiàn)漢字需要編碼)

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];

 可以加一個(gè)通知,在視頻播放完畢的時(shí)候發(fā)出通知,將視圖從界面上移除。

- (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];

 效果圖:

MPMoviePlayerViewController如何讓視頻橫屏播放。

橫屏播放,需要繼承MPMoviePlayerViewController這個(gè)類。假設(shè)myMPMoviePlayerViewController繼承這個(gè)類。

我們需要在myMPMoviePlayerViewController中實(shí)現(xiàn)兩個(gè)方法。

-(BOOL)shouldAutorotate{    return YES;}-(NSUInteger)supportedInterfaceOrientations{    return  UIInterfaceOrientationMaskLandscape;}

 然后在實(shí)現(xiàn)下面代碼:

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

音頻的話,一般需要使用進(jìn)度條顯示音頻播放的進(jìn)度。

@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:@"繼續(xù)播放" 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];    }}

 效果圖:

 

 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 广灵县| 章丘市| 宁晋县| 麻城市| 滨海县| 灵川县| 临澧县| 明水县| 阜康市| 石林| 额济纳旗| 沾益县| 合阳县| 泊头市| 武城县| 平原县| 兴业县| 英山县| 乡宁县| 涞源县| 洪江市| 浮山县| 辉县市| 新竹市| 南安市| 济宁市| 松桃| 敦化市| 蕉岭县| 澳门| 定安县| 花莲县| 日喀则市| 怀安县| 剑河县| 厦门市| 萝北县| 仁布县| 河源市| 阳朔县| 石阡县|