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


相关推荐

  • 终于,我感受到了IDEA的强大[通俗易懂]

    Java开发者千千万,开发者用的开发工具目前主流却只有2种:eclipse和IDEA,我入行以来一直用的eclipse,听过IDEA很好很强大,但是也只是处于听说的阶段,基本没用过,自然没怎么体会过。

    2022年2月16日
    39
  • python wxpython菜鸟教程_wxpython新手向教程

    python wxpython菜鸟教程_wxpython新手向教程wxpython教程手写wxpython会有各种问题,可以去下载wxformbuilder布局管理器然后去百度一下这个布局管理器的教程,这里太多了不多赘述。两种创建窗口方式:classMyFrame(wx.Frame)和classMyPanel(wx.Panel)来继承wx.Frame和wx.Panel,但是用wxformbuilder来创建布局和窗口会自动帮忙写好。继承wx.Frame的结尾…

    2022年5月22日
    23
  • 微软hlk服务器密码,Windows HLK 安装程序疑难解答「建议收藏」

    微软hlk服务器密码,Windows HLK 安装程序疑难解答「建议收藏」WindowsHLK安装程序疑难解答10/15/2017本文内容本文包含的信息可帮助你解决Windows硬件实验室工具包(WindowsHLK)安装和设置问题。无法在Studio或客户端计算机上浏览\\\HLKInstall\如果无法从WindowsHLKStudio或客户端浏览到HLKInstall文件夹,请查看在测试服务器上的”步骤1:安装控制器和工作室”主题中…

    2022年5月5日
    87
  • php替换字符串中,PHP 替换字符串中的一些字符方法介绍

    php替换字符串中,PHP 替换字符串中的一些字符方法介绍在php中替换字符串我们都会使用到str_replace函数了,此函数还可以使用正则,下面小编来给大家介绍一下替换字符串中的一些字符或替换第一次出现的字符实例。现在有个需求:字符串A与字符串B,字符串B中包含字符串A,利用字符串A将字符串B中的A替换成其他字符串或删除。利用PHP函数,str_ireplace()与str_replace()可以做到。一、str_ireplace(find,r…

    2022年5月10日
    39
  • 如何使用串口调试助手(调试串口)

    如何使用串口调试助手(调试串口)转载自:https://jingyan.baidu.com/article/54b6b9c0b3c8c02d583b4707.html如何使用串口调试助手(调试串口)很多时候,调试硬件需要用串口输出一些调试信息,用电脑USB口接收十分方便,串口调试软件很多,用习惯了还是觉得串口调试助手最为方便,这个也是因人而异吧,接下来带大家了解一下串口调试助手如何使用。工具/原料 windows电脑一台 USB接口线一根(用于连接硬件和电脑USB接口) 方法/步骤 1 下载.

    2022年6月9日
    69
  • 按键精灵2014微信群内给好友轮流发私信[通俗易懂]

    按键精灵2014微信群内给好友轮流发私信[通俗易懂]给微信群内好友轮流发私信1,界面如图2,程序中要找的图片为3,程序源码如下:/** *此版本适合windows版微信,电脑的分辨率需要调到1366*768 */x=387//第一行第一列的横坐标y=94//第一行第一列的纵坐标h=Form1.InputBox1.Text //每页的行数,超过一页的一律填5行page=For

    2022年6月4日
    51

发表回复

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

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