object-c之音频视频的播放

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值