天天看点

系统音频、音、视频播放器

……………………………………………………………………………

第1记 系统音频、音、视频播放器

……………………………………………………………………………

Login登陆;Register注册。

一、图片

1、为图片视图添加一组图片

    NSMutableArray * imagesArr = [[NSMutableArray alloc]init];

    for(int i = 0;i<25;i++)

    {

获取图片的路径

        NSString * path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"cat_angry00%.2d",i + 1] ofType:@"jpg"];

        UIImage * image = [UIImage imageWithContentsOfFile:path];

        [imagesArr addObject:image];

    }

2、为imageView视图添加动画效果

    [imageView setAnimationImages:imagesArr];

    [imageView setAnimationDuration:3];

    [imageView setAnimationRepeatCount:1];

    [imageView startAnimating];

}

二、系统音频

使用系统音频的时候要导入这个系统库:AudioToolbox.framework

系统音频的特点:系统音频小于30s,急速、不能暂停,不能循环播放、不能播放立体音、不能播放混音。

<1>获取播放的系统音频的路径

    NSString * path = [[NSBundle mainBundle] pathForResource:@"angry" ofType:@"m4a"];

<2>将字符串路径转化成NSURL

    NSURL * url = [NSURL fileURLWithPath:path];

将本地路径转化成NSURL 使用的方法是fileURLWithPath:

将网络路径转化成NSURL 使用的方法是URLWithString:

<3>播放本地音频 需要向系统注册一个系统音频ID

    SystemSoundID SID;   

<4>创建系统音频

系统音频 调用的函数都是C语言函数 而且函数的函数名都是以AudioServices开头

CFURLRef类型和NSURL类型原理相同 只是表示的方式不同而已 

    AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &SID);   

<5>播放系统音频

    AudioServicesPlaySystemSound(SID);    

<6>系统音频播放结束

    AudioServicesAddSystemSoundCompletion(SID, nil, nil, finish, nil);

三、简单的音乐播放器

使用长音频(歌曲)的时候要导入这个系统库:AVFoundation.framework

传值方法:代理、通知、KVC、block语法

四、视频播放器(完整)

视频播放导入这个系统库:MediaPlayer.framework

#import <MediaPlayer/MediaPlayer.h>

@interface XLViewController ()

{

    //创建视频播放器对象

    MPMoviePlayerViewController * moviePlayer;

}

@end

- (void)viewDidLoad

{

    [super viewDidLoad];

    UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];

    btn.frame = CGRectMake(100, 100, 100, 100);

    [btn setTitle:@"播放" forState:UIControlStateNormal];

    [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

    [btn addTarget:self action:@selector(pressBtn:) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:btn];

}

-(void)pressBtn:(id)sender

{

    //<1>获取视频资源的路径

    NSString * path = [[NSBundle mainBundle] pathForResource:@"dzs" ofType:@"mp4"];

    //<2>将字符串路径转化成NSURL

    NSURL * url = [NSURL fileURLWithPath:path];

    //<3>创建视频播放器对象

    moviePlayer = [[MPMoviePlayerViewController alloc]initWithContentURL:url];

    //<4>跳转到视图播放器的视图

    [self presentMoviePlayerViewControllerAnimated:moviePlayer];

    //<5>视频播放器没有协议 所有视频播放器的所有方法必须借助通知完成

    //通知的名称是特殊的字符串 系统提供好的

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(finishPlaying:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];

}

-(void)finishPlaying:(NSNotification *)notif

{

    [self dismissMoviePlayerViewControllerAnimated];

}