文档章节

IOS利用AVFoundation框架实现录音和播放(AVAudioSession、AVAudioRecorder、AVAudioPlayer)

 杨勇汉
发布于 2015/02/01 14:03
字数 387
阅读 74
收藏 0

最近实现了一个简单功能,类似微信发送语音,按下录音,松开结束录音;并且可播放;

效果图:


Demo下载地址:

http://download.csdn.net/download/rhljiayou/6535125

需要导入

#import <AVFoundation/AVFoundation.h>

利用此框架中的

AVAudioRecorder和AVAudioPlayer来录音和播放

以下是AVAudioRecorder录音的使用方法:

- (IBAction)downAction:(id)sender {
    //按下录音
    if ([self canRecord]) {

        NSError *error = nil;
        //必须真机上测试,模拟器上可能会崩溃
        recorder = [[AVAudioRecorder alloc] initWithURL:[NSURL URLWithString:playName] settings:recorderSettingsDict error:&error];
        
        if (recorder) {
            //是否允许刷新电平表,默认是off
            recorder.meteringEnabled = YES;
            //创建文件,并准备录音
            [recorder prepareToRecord];
            //开始录音
            [recorder record];
            
            //启动定时器,为了更新电平
            timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(levelTimer:) userInfo:nil repeats:YES];
            
        } else
        {
            int errorCode = CFSwapInt32HostToBig ([error code]);
            NSLog(@"Error: %@ [%4.4s])" , [error localizedDescription], (char*)&errorCode);
            
        }
    }
   
}

- (IBAction)upAction:(id)sender {
    //松开 结束录音
    
    //录音停止
    [recorder stop];
    recorder = nil;
    //结束定时器
    [timer invalidate];
    timer = nil;
    //图片重置
    soundLodingImageView.image = [UIImage imageNamed:[volumImages objectAtIndex:0]];
    
}

以下是AVAudioPlayer播放器的使用方法:

- (IBAction)playAction:(id)sender {
    
    NSError *playerError;
    
    //播放
    player = nil;
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:playName] error:&playerError];
    
    if (player == nil)
    {
        NSLog(@"ERror creating player: %@", [playerError description]);
    }else{
        [player play];
    }
    
}

如果是7.0,第一次运行会提示,是否允许使用麦克风:


7.0需要设置:

if ([[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending)
    {
        //7.0第一次运行会提示,是否允许使用麦克风
        AVAudioSession *session = [AVAudioSession sharedInstance];
        NSError *sessionError;
        //AVAudioSessionCategoryPlayAndRecord用于录音和播放
        [session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];
        if(session == nil)
            NSLog(@"Error creating session: %@", [sessionError description]);
        else
            [session setActive:YES error:nil];
    }


ok!完美,perfect!


转载来自任海丽博客





本文转载自:http://blog.csdn.net/rhljiayou/article/details/15339335

粉丝 2
博文 69
码字总数 0
作品 0
东城
私信 提问
IOS利用AVFoundation框架实现录音和播放(AVAudioSession、AVAudioRecorder、AVAudioPlayer)

最近实现了一个简单功能,类似微信发送语音,按下录音,松开结束录音;并且可播放; 效果图: Demo下载地址: http://download.csdn.net/download/rhljiayou/6535125 需要导入 #import 利用此...

长平狐
2013/12/25
8.3K
0
iOS录音和播放 上传和下载 动画 满足60秒内的需求

录音功能研究了一周 总结的简单的录音和播放 满足录音60秒以内的上传和下载 用的AVFoundation框架中的 AVAudioRecorder 进行录音 用 AVAudioPlayer进行的播放 录音的格式选用的是AAC的,iOS...

道明白
2016/11/06
0
0
AVFoundation开发秘籍笔记-02播放和录制音频

一、音频会话 AVAudioSession 音频会话在应用程序和操作系统之间扮演着中间人的角色,提供一种简单实用的方法是OS得知应用程序应该如何与iOS音频环境进行交互。 有框架引入。每个iOS应用程序...

竹与豆
2018/05/25
0
0
iOS: 使用AVAudioRecorder中遇到的问题

此博客解决了我在开发时所遇到的问题 转载与此处:http://www.cnblogs.com/mgen/p/3374987.html 目录 1. 关于录音和Audio Session Categories 2. 分贝数据的处理 3. iOS 7中默认配置的变化 ...

长平狐
2013/12/25
2.1K
0
iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jianxin160/article/details/47753241 --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话、发...

KenshinCui
2015/08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 女装大佬被拆穿是妹子假扮

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐:《All of the Stars》- Ed Sheeran 《All of the Stars》- Ed Sheeran 手机党少年们想听歌,请使劲儿戳(这里) @Leon_swool ...

小小编辑
18分钟前
45
3
3. 彤哥说netty系列之Java BIO NIO AIO进化史

你好,我是彤哥,本篇是netty系列的第三篇。 欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识。 简介 上一章我们介绍了IO的五种模型,实际上Java只支持其中的三种,即BIO/NIO/AIO。 本...

彤哥读源码
21分钟前
7
0
02.日志系统:一条SQL更新语句是如何执行的?

我们还是从一个表的一条更新语句说起,我们创建下面一张表: create table T(ID int primary key, c int); 如果要将ID=2这一行c的值加1,SQL可以这么写: update T set c=c+1 where ID=2; 前...

scgaopan
今天
9
0
【五分钟系列】掌握vscode调试技巧

调试前端js 准备一个前端项目 index.html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1......

aoping
今天
8
0
PhotoShop 高级应用:USM锐化/S锐化/防抖

、 高反差锐化+混合模式:叠加模式 【将更多的边缘细节添加到图像中】

东方墨天
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部