object-c之音频视频的播放

来源:互联网 发布:网络安全法考试单选 编辑:程序博客网 时间:2024/05/20 18:48

1.播放视频。首先要引入关于音频和视频的框架

#import <AVFoundation/AVFoundation.h>#import <AVKit/AVKit.h>

2.初始化播放器准备播放

//初始化    self.player = [[AVPlayerViewController alloc]init];    //设置播放内容    NSString *filePath = [[NSBundle mainBundle]pathForResource:@"宣传资料.mp4" ofType:nil];    NSURL *url = [NSURL fileURLWithPath:filePath];    self.player.player = [AVPlayer playerWithURL:url];//打开后自动播放    [self.player.player play];

3.音乐的播放,这里写了一个播放音乐的方法。然后只需要把要播放的歌曲名字传过来然后就播放就绪了。

//播放音乐方法- (void) musicPlayWithName:(NSString *)musicName{    NSString *filePath = [[NSBundle mainBundle]pathForResource:musicName ofType:@"mp3"];    NSURL *url = [NSURL fileURLWithPath:filePath];    if(musicName==nil || url==nil || musicName.length==0)    {        return;    }    self.txtMusicName.text = musicName;    //初始化播放对象    AVAudioPlayer *player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];    self.player = player;    [player prepareToPlay];    self.player.delegate = self;}//调用方法之后[self.player play];//就可以播放了//暂停[self.player pause];
4.音乐播放有关播放进度的。需要加一个UISlider来显示播放进度然后配合上UITimer定时器来使用

//定时器的简单实例化- (NSTimer *)timer{    if(!_timer)    {        //默认添加到运行循环        _timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(refrishScreen) userInfo:nil repeats:YES];    }    return _timer;}
5.跟新播放进度

//定时器调用方法- (void) refrishScreen{    //获得已经播放的时间    NSTimeInterval current = self.player.currentTime;    //计算分钟数    NSInteger minute = current/60;    //获取秒    NSInteger s = (NSInteger)current%60;    self.txtPlayTime.text = [NSString stringWithFormat:@"%02ld:%02ld",minute,s];        NSTimeInterval endcurrent = self.player.duration;    //计算分钟数    NSInteger endminute = endcurrent/60;    //获取秒    NSInteger ends = (NSInteger)endcurrent%60;    //获得歌曲总时间    self.txtEndPlayTime.text = [NSString stringWithFormat:@"%02ld:%02ld",endminute,ends];    //设置进度条时间    self.slider.maximumValue = endcurrent;    self.slider.value = current;}

6.音乐播放还有一个代理方法是要用到的。就是当播放完成的时候自定播放下一曲

#pragma mark --代理- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{    [self btnNextMusic:nil];//这里直接调用下一曲的方法就行了。    [self.player play];}




0 0
原创粉丝点击