首页 > 编程语言 > 详细

蓝懿IOS学习音频播放

时间:2016-02-01 23:56:11      阅读:422      评论:0      收藏:0      [点我收藏+]

  // 准备歌曲数据

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

    NSData *musicData = [NSData dataWithContentsOfFile:path];

    

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

    NSError *errorMsg = nil;

    self.player = [[AVAudioPlayer allocinitWithData: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 的进度范围是 01

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

    // 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 来修改播放进度)



}


蓝懿IOS学习音频播放

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!