IOS开发之AVAudioPlayer的基本使用

IOS开发之AVAudioPlayer的基本使用

1.这是播放效果,可以按下play和pause播放和暂停,进度条自动改变进度

,我用的是mac mini产生很多错误,没有声音,换个耳机就可以了!!

滑动条拖动的时候,音乐播放改变会有噪音,解决方法如下

100343_Q3ZL_2683146.png

不要勾这个就行

2.改变声音的方法,设置当前音量和最小音量0-1的数值

101208_Rc1F_2683146.png

以下实现音乐播放的代码:

//

//  ViewController.m

//  01-AVAudiioPlayer

//

//  Created by 鹿微微鹿. on 16/5/6.

//  Copyright (c) 2016 鹿微微鹿. All rights reserved.

//

//AVAudioPlayer:专门用来播放音频的工具

//1.导入import <AVFoundation/AVFoundation.h>

//2.声明一个音频全局变量AVAudioPlayer *_player

#import “ViewController.h”

#import <AVFoundation/AVFoundation.h>

@interface ViewController ()<AVAudioPlayerDelegate>

{

    //声明一个音频播放器对象

    AVAudioPlayer *_player;

    

 

}

@property (weak, nonatomic) IBOutlet UISlider *progressSlider;

@end

@implementation ViewController

– (void)viewDidLoad {

 

    [super viewDidLoad];

    //定时器

    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateSlider) userInfo:nil repeats:YES];

 

    [self preparePlay];

}

//更新进度

– (void)updateSlider{

    //获取当前进入

    //当前进度就是当前播放的时刻/总的时间

    self.progressSlider.value = _player.currentTime/_player.duration;

}

#pragma mark – 按钮点击

– (IBAction)play:(id)sender {

    //播放

    [_player play];

}

– (IBAction)pause:(id)sender {

    //暂停

    [_player pause];

}

– (IBAction)sliderChangeValue:(UISlider *)sender {

    //改变播放进度

    

    //获取当前音乐的总时间

    CGFloat duration = _player.duration ;

    

    //设置当前的播放进度

    _player.currentTime =  duration * sender.value;

    

    

}

– (IBAction)stpperChangeValue:(UIStepper *)sender {

    

  //  NSLog(@”%lf”,sender.value);

    _player.volume = sender.value;

    

}

#pragma mark –音乐播放完毕的时候

//一个音频播放结束的时候调用这个方法

– (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{

    

    NSLog(@”播放结束);

}

//打断的时候会调用这个方法

– (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player{

    [player pause];

}

//打断结束的时候调用该方法

– (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withOptions:(NSUInteger)flags{

    //一般在这个方法中继续播放

    [_player play];

    

}

#pragma mark – 准备音频播放器

– (void)preparePlay{

    

    NSString *path = [[NSBundle mainBundle]pathForResource:@”亡灵序曲.mp3″ ofType:nil];

    

    

    //1.实例化音频播放器(既可以播放网上的也可以播放本地的)

    _player = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];

    

    //2.准备播放

    [_player prepareToPlay];

    

    //3.开始播放

    [_player play];

    

    //设置代理

    _player.delegate =self;

    

    NSLog(@”1″);

}

@end



转载于:https://my.oschina.net/luhoney/blog/670703

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109038.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • microsoft office visio2003产品密钥[通俗易懂]

    microsoft office visio2003产品密钥[通俗易懂]WFDWY-XQXJF-RHRYG-BG7RQ-BBDHM

    2022年6月24日
    406
  • 多项分布和的分布_bernoulli多项式

    多项分布和的分布_bernoulli多项式摘要纠错编辑摘要二项分布的典型例子是扔硬币,硬币正面朝上概率为p,重复扔n次硬币,k次为正面的概率即为一个二项分布概率。(严格定义见伯努利实验定义)  把二项分布公式再推广,就得到了多项分布。比如扔骰子,不同于扔硬币,骰子有6个面对应6个不同的点数,这样单次每个点数朝上的概率都是1/6(对应p1~p6,它们的值不一定都是1/6,只要和为1且互斥即可,比如一个形状不规则的骰子),重复扔n

    2022年10月11日
    0
  • Mac 双系统之windows坏了咋办

    Mac 双系统之windows坏了咋办1背景Macmini装了个双系统。windows系统太慢,准备重装,本来想着直接恢复出厂,结果根本不能这么操作。由于默认启动盘设置的是windows系统,然后就出现了,起不来的情况,其实之前也遇到过,就是忘了,折腾了好久这里记录一下。2解决方案重启系统听到声响后,按住win+r知道出现相关的操作界面,接下来迎刃而解!!!!是按住win+r,不是ctrl也不是alt+r…

    2022年10月6日
    1
  • Spring boot Value注入 未整理 待完善

    Spring boot Value注入 未整理 待完善Spring boot Value注入 未整理 待完善

    2022年4月21日
    52
  • PHPstrom中关闭提示信息

    PHPstrom中关闭提示信息

    2021年11月9日
    46
  • 推荐几个SQL在线学习网站

    推荐几个SQL在线学习网站适合的群体:SQL初学者,想要复习一下SQL基础知识的朋友,能无障碍阅读基础英文的朋友。SQL算是声明式的数据操纵语言,基本上感觉是对着数据库管理系统在喊:给我什么样的数据!似乎大部分人都不认为SQL十分困难。的确,入门十分简单。这里整理推荐几个我自己学习时用过的在线学习网站,可以帮助初学者快速入门SQL,在交互式的环境里学习,不用自己劳神搭建一个数据库,也不用担心损坏别人的数据库,就可…

    2022年8月20日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号