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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 拉氏变换应用_拉氏反变换公式表

    拉氏变换应用_拉氏反变换公式表由系统函数零、极点分别决定时域特性(一)零、极点分布与波形特征的对应的零、极点:典型情况极点分布与原函数波形对应关系极点位于s平面坐标原点,冲激响应为阶跃函数 极点位于s平面实轴上,冲激响应具有指数形式,正为指数增长,负为指数衰减 虚轴上共轭极点给出等幅振荡 极点落在s平面左平面内共轭极点对应衰减震荡(左平面衰减,共轭极点振荡)多重极点典型情况(一般几重极点就乘上t的几次方)位于s平面坐标原点的二阶或三阶极点分别给出时间函数为t或他(1/2)t^2 实轴上二阶极点给出t与指数函数的

    2025年7月9日
    2
  • 大数据分析应用领域有哪些[通俗易懂]

    大数据分析应用领域有哪些[通俗易懂]  软件和服务的大数据分析市场收入预计将从2018年的$42B增长到2027年的$103B,复合年增长率(CAGR)为10.48%。这就是为什么,大数据分析认证是业内最全神贯注的技能之一。在这个“大数据分析应用领域”文章中,我将带您进入各个行业领域,在这里我将解释大数据分析如何使它们发生革命性变化。  大数据分析应用  大数据分析应用程序的主要目标是通过分析大量数据来帮助公司做出更具信息量的业务决策。它可能包括Web服务器日志,Internet点击流数据,社交媒体内容和活动报告,来自客户电子邮

    2022年5月29日
    41
  • 反应java程序并行机制的特点_【单选题】Java语言具有许多优点和特点,反映了Java程序并行机制的特点的是( )…

    反应java程序并行机制的特点_【单选题】Java语言具有许多优点和特点,反映了Java程序并行机制的特点的是( )…【单选题】Java语言具有许多优点和特点,反映了Java程序并行机制的特点的是()更多相关问题妊娠小便不通,或频数量少,小腹胀急疼痛,坐卧不宁,面色晄白,头重眩晕,短气懒言,大便不爽,舌淡在WDM传输中,色散的有利和有害的影响有哪些?一般可采用什么方法抑制色散的负面影响?下述哪项与妊娠小便不通的特点不符()A.妊娠期间,小便频数量少B.小便不通C.小腹胀急而痛D.烦以下各项中,属于市场调查过程中…

    2022年7月7日
    29
  • [行为识别论文详解]TSN(Temporal Segment Networks)[通俗易懂]

    [行为识别论文详解]TSN(Temporal Segment Networks)[通俗易懂]摘要本文旨在设计有效的卷积网络体系结构用于视频中的动作识别,并在有限的训练样本下进行模型学习。TSN基于two-stream方法构建。论文主要贡献:提出了TSN(TemporalSegmentNetworks),基于长范围时间结构(long-rangetemporalstructure)建模,结合了稀疏时间采样策略(sparsetemporalsamplingstrat…

    2022年6月21日
    54
  • 闫学灿acwing_acm题

    闫学灿acwing_acm题在给定的 N 个整数 A1,A2……AN 中选出两个进行 xor(异或)运算,得到的结果最大是多少?输入格式第一行输入一个整数 N。第二行输入 N 个整数 A1~AN。输出格式输出一个整数表示答案。数据范围1≤N≤105,0≤Ai<231输入样例:31 2 3输出样例:3#include<bits/stdc++.h>using namespace std;const int N = 31e5 + 10;int trie[N][2],ctx,cnt[N];

    2022年8月9日
    4
  • winform窗体跳转代码_js在当前页面打开新页面

    winform窗体跳转代码_js在当前页面打开新页面在前台用JS写的脚本方法,除了可以直接用在前台控件的属性中,还可以在后台运用。即在后台页面加载时,调用JS方法。语法格式有两种,如下: 1.第一种写法:控件ID名.Attributes.Add(“事件名称”,“JS方法”);如:一个按钮控件Button1.Attributes.Add(“onclick”,“returnconfirm(‘确认?’)”);

    2022年9月26日
    3

发表回复

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

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