蓝懿IOS学习音频播放

  // 准备歌曲数据

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Alan Walker - Fade.mp3" ofType:nil];

    NSData *musicData = [NSData dataWithContentsOfFile:path];

    

    // 初始化音频播放器(依据 NSData 初始化)

    NSError *errorMsg = nil;

    self.player = [[AVAudioPlayer alloc] initWithData:musicData error:&errorMsg];

    errorMsg == nil ?: NSLog(@"%@", errorMsg);

    

    self.player.meteringEnabled = YES;  // 启用电平

    self.player.enableRate = YES;       // 启用播放变速

    self.player.numberOfLoops = -1;     // 0只播放一次, -1无限循环, 正数是几播放几次

    // NSLog(@"%@", self.player.settings); // 显示音频文件最基础信息

    // Timer 更新播放进度条

    [NSTimer scheduledTimerWithTimeInterval:.1

                                     target:self

                                   selector:@selector(updateProgressView)

                                   userInfo:nil

                    ;

    self.slid.minimumValu                repeats:YES];

    

    // 重新设置 Slider 的初值

    self.slid.value = 0e = 0;

    self.slid.maximumValue = self.player.duration;

}

- (void)updateProgressView {

//   progress 的进度范围是 0~1

    // 当前播放进度 = 当前播-放时间 ÷ 总时间

    // duration 音频总时间

    // currentTime 当前的播放时间

    self.jindu.progress = self.player.currentTime / self.player.duration;

  

     // 电平

     [self.player updateMeters];

     [self.pv0 setProgress:([self.player averagePowerForChannel:0] + 160) / 160 animated:YES];

     [self.pv1 setProgress:([self.player averagePowerForChannel:1] + 160) / 160 animated:YES];

   

}

- (IBAction)bofang:(UIButton *)sender {

    // 延时播放 (当前设备播放时间 + 延时时间)

    // [self.player playAtTime:[self.player currentTime] + 10];

    // 一个按钮实现暂停、播放功能

    if (self.player.playing) {

        [self.player pause];

        [sender setImage:[UIImage imageNamed:@"1"] forState:UIControlStateNormal];

    } else {

        [self.player play];

        [sender setImage:[UIImage imageNamed:@"2"] forState:UIControlStateNormal];

    }

 

}

- (IBAction)sli:(UISlider *)sender {

//    // self.player.volume = sender.value;   // 0~1, 1以后等效于增益, 音质下降

//    // self.player.rate = sender.value;     // 0.5~2, 播放速度系数, 1是默认值(原速度)

//    self.player.currentTime = sender.value;

//    self.player.rate = 50;

    

    // ---------------------- 功能分区 -----------------------------

//     self.player.volume = sender.value;   // 音量控制[0,1], 1以后等效于增益, 音质下降, 负的会变最大

//     self.player.rate = sender.value;     // 播放速度系数(0,+∞], 需要大于0, 0~1是降速、1~+∞是加速.对应着要把slidert的初始化最大值gaiyixia

    self.player.currentTime = sender.value; // 当前播放时间 (通过 Slider 来修改播放进度)

 

 

}

 

转载于:https://www.cnblogs.com/lanyisanqqi/p/5176577.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值