AVAudioRecorder录音的创建

使用AVAudioRecorder录音并保存为.WAV文件时可能会遇到一些问题。在这篇文章中,我将详细介绍如何解决这些问题,并提供相应的源代码示例。 以上就是使用AVAudioRecorder录制音频并保存为.WAV文件时可能遇到的问题的解决方法。通过正确设置音频会话、配置录音设置、创建AVAudioRecorder实例并使用AVAudioPlayer进行播放,您应该能够成功录制和保存音频文件。在上面的代码中,我们将录音文件保存在应用的文档目录下,并将文件名设置为"recording.wav"。下面是一种解决方法,可以帮助您解决使用AVAudioRecorder录音保存.WAV文件时遇到的问题。要停止录音并保存录音文件,可以调用。 阅读详情

AVAudioRecorder录音.zip

#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>

@interface ViewController ()<AVAudioRecorderDelegate> {
    NSTimer *timer; //定时器

}

@property (nonatomic,retain) AVPlayer *player; //音频播放器
@property (nonatomic,retain) NSURL *audioUrl; //录音的文件地址
@property (nonatomic,retain) AVAudioRecorder *recorder; //创建录音对象

@property (weak, nonatomic) IBOutlet UIButton *audioButton; //录音按钮

@property (weak, nonatomic) IBOutlet UILabel *timerLabel; //用于显示时间


@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    [self setAudio]; //先初始化录音器
}

#pragma mark 按下时点击事件
- (IBAction)audioClickDown:(UIButton *)sender {

    [sender setTitle:@"正在录音" forState:UIControlStateNormal];

    //创建录音文件,准备录音
    if ([self.recorder prepareToRecord]) {
        //开始
        [self.recorder record];
    }

    //设置定时检测
    timer = [NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(detectionVoice) userInfo:nil repeats:YES];
}

#pragma mark 刷新音频录制的时间
- (void)detectionVoice {

    self.timerLabel.text = [NSString stringWithFormat:@"录音时长 %f",self.recorder.currentTime];
}

#pragma mark 抬起时点击事件
- (IBAction)audioClickUp:(UIButton *)sender {

    [sender setTitle:@"开始录音" forState:UIControlStateNormal];

    double cTime = self.recorder.currentTime;
    if (cTime > 2) {//如果录制时间<2 不发送
        NSLog(@"发出去");
    }else {
        //删除记录的文件
        [self.recorder deleteRecording];
        //删除存储的
    }
    [self.recorder stop];
    [timer invalidate];
}

#pragma mark 播放录音
- (IBAction)palyAudioBtnClick:(UIButton *)sender {

#pragma mark 创建播放器
    AVPlayerItem *item = [[AVPlayerItem alloc] initWithURL:self.audioUrl];

    self.player = [[AVPlayer alloc] initWithPlayerItem:item];
    [self.player play];
}


#pragma mark 配置录音的各种信息
- (void)setAudio {

    //进行录音设置
    NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init];

    //设置录音格式
    [recordSetting setValue:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];

    //设置录音采样率(HZ) 如:AVSampleRateKey == 8000/44100/96000 (影响音频的质量)
    [recordSetting setValue:[NSNumber numberWithFloat:44100] forKey:AVSampleRateKey];

    //录音通道数 1或2
    [recordSetting setValue:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];

    //线性采样位数 8、16、24、32
    [recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];

    //录音的质量
    [recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityHigh] forKey:AVEncoderAudioQualityKey];

    NSString *strUrl = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

    NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/lll.aac",strUrl]];

    self.audioUrl = url;

    //初始化录音器
    NSError *error;
    self.recorder = [[AVAudioRecorder alloc] initWithURL:url settings:recordSetting error:&error];
    //开始录音检测
    self.recorder.meteringEnabled = YES;
    self.recorder.delegate = self;

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
vue-audio-recorder-Vue.js的音频记录器。 它允许在服务器上创建,播放,下载和存储记录-Vue.js开发 vue-audio-recorder Vue.js的音频记录器。 它允许在服务器上创建,播放,下载和存储记录。 实时演示功能漂亮的UI干净的Vue-audio-recorder Vue.js的音频记录器。 它允许在服务器上创建,播放,下载和存储记录。 实时演示功能精美干净的UI下载/上传/播放记录时间限制记录限制大量回调个人音频播放器MP3 / WAV支持在(台式机)Chrome OS Firefox中测试在Safari浏览器中的安装vue-audio-recorder-保存AudioRecorder道具Prop类型描述尝试次数记录尝试次数的头标对象HTTP标头 立即下载

相关推荐

vue使用js-audio-recorder实现一句话识别功能

vue使用js-audio-recorder实现一句话识别功能:以vue前端框架+腾讯云语音识别为基础,实现客户端长按录音,获取语音转换编译出来的识别码,传给后端去腾讯云语音识别库去换取识别回来的文本尽心客户端的文本查询!实现一句话查询效果!以vue前端框架+腾讯云语音识别为基础,实现客户端长按录音,获取语音转换编译出来的识别码,传给后端去腾讯云语音识别库去换取识别回来的文本尽心客户端的文本查询!实现一句话查询效果!以vue前端框架+腾讯云语音识别为基础,实现客户端长按录音,获取语音转换编译出来的识别码,传给后端去腾讯云语音识别库去换取识别回来的文本尽心客户端的文本查询!实现一句话查询效果!以vue前端框架+腾讯云语音识别为基础,实现客户端长按录音,获取语音转换编译出来的识别码,传给后端去腾讯云语音识别库去换取识别回来的文本尽心客户端的文本查询!实现一句话查询效果!以vue前端框架+腾讯云语音识别为基础,实现客户端长按录音,获取语音转换编译出来的识别码,传给后端去腾讯云语音识别库去换取识别回来的文本尽心客户端的文本查询!实现一句话查询效果!以vue前端框架+腾讯云语音识别为基础,实现客

【免费下载】 Vue-Audio-Recorder:前端录音神器,轻松集成音频录制功能

在Web开发中,用户体验是至关重要的,而实时交互功能如语音记录,为用户提供更直观便捷的沟通方式。Vue-Audio-Recorder就是这样一款专为Vue.js开发者打造的开源组件,它可以帮助你在项目中快速实现高质量的音频录制功能。 ## 项目简介 是一个轻量级且易于使用的Vue插件,它基于Web Audio API和MediaStream Recording API,让你能够在浏览器环境中...

gitblog_00080的博客 2880

低功耗模式下的看门狗使用

最近用国产芯片AT32在做一个低功耗的项目,为了实现低功耗模式下的定时唤醒,我选择的是使用相对比较简单的看门狗来做,下面就分享一下使用过程~ 为了最大限度的降低功耗,我用的是待机模式,先看看几种低功耗模式以及唤醒的区别: 而看门狗AT32提供了两种,分别是独立看门狗(IWDG)和窗口看门狗(WWDG),其区别大概有以下几点: 1、独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效;窗口看门狗由从 APB1 时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常

dc18883988396的博客 3028

【亲测免费】 Vue-Audio-Recorder 安装和配置指南

### 项目基础介绍 Vue-Audio-Recorder 是一个基于 Vue.js 的简单音频录制组件。它允许用户在 Vue.js 应用程序中创建、播放、下载和存储音频记录。该项目提供了美观的用户界面,支持多种音频格式(如 MP3 和 WAV),并且具有时间限制和记录限制等功能。 ### 主要编程语言 该项目主要使用 JavaScript 和 Vue.js 框架进行开发。 ## 2. 项目使...

gitblog_07220的博客 1037

风光储互补微电网在偏远地区的应用实践:从建模到仿真全解析

本文深入解析了风光储互补微电网在偏远地区的应用实践,从系统设计到仿真建模全流程。通过Simulink等工具进行动态仿真,验证了系统在多种工况下的可靠性,并结合实际案例展示了其显著的经济和环保效益。文章为从业者提供了从技术路径到实施优化的全面指导。

weixin_29047545的博客 269

智能排班考勤系统原型

可实现从业务预测,到工时预估,再到人员分配全流程自动智能排班。可应用于客服行业或工厂的智能排班系统。

gywm15111336483的专栏 995

vue使用js-audio-recorder实现录音功能

vue使用js-audio-recorder实现录音功能前言1.安装2.引用3.页面4.方法5.播放总结 前言 最近项目中需要实现一个录音上传功能,用于考试、作业中,学生可以上传朗读课文的录音,安排。 效果图 1.安装 npm i js-audio-recorder 2.引用 import Recorder from 'js-audio-recorder' this.recorder = new Recorder() 3.页面 <!-- 录音上传 --> <Moda

qsya的博客 1万+

二十一、SAP-库存管理

业务逻辑、功能讲解、图文解析、章节总结

m0_72403327的博客 1808

vuejs录音_适用于VueJS应用程序的简单录音机

vuejs录音 Vue录音机 (vue-audio-recorder) Audio recorder for Vue.js. It allows to create, play, download and store records on a server. Vue.js的录音机。 它允许在服务器上创建,播放,下载和存储记录。 View demo 查看演示 Download Source 下...

cuk5239的博客 392

基于Simulink的风电系统背靠背变流器解耦控制仿真

本文完成了基于 Simulink 的风电背靠背变流器解耦控制仿真,实现了:✅掌握 dq 解耦控制的数学本质✅构建 MSC + GSC 完整控制链✅验证其在动态、扰动下的卓越性能✅达成高解耦度、低 THD、稳母线三大目标。

xiaoheshang_123的博客 79

剪映专业版关键帧完全教程:从原理到实战的动画必修课

关键帧是视频动画的核心原理。视频由连续静止画面(帧)构成,关键帧记录素材属性变化的起始与结束状态,中间过渡帧由软件自动计算生成。剪映专业版中,视频、音频、文本、贴纸等素材均支持关键帧动画,可调节位置、缩放、旋转、不透明度、音量等参数。操作为:在起始位置点击参数旁菱形按钮添加关键帧,移动播放头后调整参数,系统自动生成第二个关键帧。多属性可独立控制并叠加,实现放大同时淡出等复合效果。通过设定变化起点与终点,关键帧能让静止元素产生移动、缩放、淡入淡出等丰富动态,是视频剪辑从基础拼接进阶创意表达的核心技能。掌握关键

深耕计算机专业知识与技术。 2088

vue-audio-recorder 项目亮点解析

`vue-audio-recorder` 是一个基于 Vue.js 的开源音频录制组件。该组件为开发者提供了一个简单、易用的界面,用于在网页中实现音频录制功能。它支持多种浏览器,并具有良好的兼容性,使得用户可以方便地在各种设备上进行音频录制。 ## 2. 项目代码目录及介绍 项目的主要目录结构如下: - `src`:存放项目的源代码。 - `components`:包含 `AudioRe...

gitblog_01072的博客 1064

在 IW31 录入班次与当班负责人,并让 IW38 列表同步显示:基于 IWO10018 + IWOC0004 的一套可落地增强方案

摘要 本文详细介绍了在SAP PM模块中实现工厂设备维护订单增强的完整方案,重点解决两个核心需求:在订单创建时新增班次负责人和班次字段,并在订单列表中直接显示这些信息。文章从需求分析、技术设计到具体实现步骤进行了系统阐述。 关键实现步骤包括: 通过CI_AUFK结构扩展AUFK表,确保字段持久化存储 使用IWO10018增强在IW31/IW32/IW33事务中添加输入界面 通过IWOC0004增强在IW38订单列表中显示新增字段 采用优化的数据填充策略提升性能 该方案不仅满足业务需求,还考虑了用户体验和系统

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 174

AVAudioRecorder进行录音

import UIKit import AVFoundation /** AVAudioRecorder也需要强引用防止其被意外释放 并且需要告诉用户使用NSMicrophoneUsageDescription权限,否则会导致崩溃 */ class ViewController: UIViewController { var audioRecorder:AVAudioR...

quanhaoH的专栏 472

9 硬件工程师笔面试高频知识考点真题解析——运算放大器

运算放大器(运放)摘要 运放是一种高增益、差分输入的模拟集成电路,具有虚短(线性区输入电压相等)和虚断(输入电流为零)特性,支持负反馈(线性放大)和开环/正反馈(饱和区比较)两种工作模式。关键特性包括高输入阻抗、低输出阻抗,理想运放参数(如无限增益)与实际参数(如有限带宽)的差异。 选型要点: 信号特性:直流/低频信号关注失调电压(Vos)、温漂;高频信号侧重带宽(GBW)和压摆率(SR)。 电源条件:单/双电源供电、电压范围及功耗需求(如电池设备需低静态电流)。 精度与噪声:微弱信号需低噪声运放,高精度场

XU157303764的博客 1673

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

swift 录音 AVAudioRecorder

https://blog.youkuaiyun.com/msmwncx/article/details/80336973 版权声明:本文为博主原创文章,未经博主允许不得转载。如有问题,请联系QQ547394765 https://blog.youkuaiyun.com/msmwncx/article/details/80336973 距离上次写博客已经好久好久了ZZZzzzzzzz。 首先交代下用处,做的IM项目,...

sundaysme的博客 688

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

iOS实现录音与播放功能

可以实现模拟器与真机都能够录音与播放,并且吧录音文件存储到沙盒里.

zhaoguodongios的专栏 3041

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

iOS音频与视频的开发(二)- 使用AVAudioRecorder进行录制音频

1、使用AVAudioRecorder录制视频   AVAudioRecorder与AVAudioPlayer类似,它们都属于AVFoundation的类。AVAudioRecorder的功能类似于一个录音器,使用AVAudioRecorder录制音频十分简单,当程序控制AVAudioRecorder对象创建完成之后,可以调用AVAudioRecorder的如下方法进行录制。   1、prepa...

Landen2011的博客 633

IOS开发之AVAudioRecorder

在AVFoundation框架中还要一个AVAudioRecorder类专门处理录音操作,它同样支持多种音频格式。与AVAudioPlayer类似,你完全可以将它看成是一个录音机控制类,下面是常用的属性和方法: 属性 说明 @property(readonly, getter=isRecording) BOOL recording; 是否正在录音,只读

ciwei_numberOne的博客 3767

iOS--AVAudioRecorder如何录制MP3

AVAudioRecorder简介 录音机,提供了在应用程序中的音频记录能力。作为与 AVAudioPlayer 相对应的 API,AVAudioRecorder 是将音频录制为文件的最简单的方法。除了用一个音量计接受音量的峰值和平均值以外,这个 API 简单粗暴,如果你的使用场景很简单的话,这可能恰恰就是你想要的方法。 录音配置 创建AVAudioSession 想要录音首先要创建一个AVAud...

叫我龙哥的优快云 4804

AVAudioSession、AVAudioRecorder、AVAudioPlayer

按钮显示为“录音”,点击显示为“停止”,再点击显示为“录音” 实现代码: - (IBAction)onRecordButtonPressed:(id)sender { UIButton button = (UIButton )sender; [sender setTitle:([button.titleLabel.text isEqualToString:@”录音”] ?

kitty_dqq的博客 4256

使用AVAudioRecorder,AVAudioPlayer构建简单录音笔应用

在iOS的基础类库中, 提供了AVFoundation FrameWork,即Audio/Video基础类库,通过使用这个类库,可以非常容易的在应用程序录制,播放视频,音频等。本文将通过一个简单的录音笔应用,介绍如何在iOS应用程序中使用AVAudioRecorder,AVAudioPlayer。录音笔的界面以及功能都非常简单,如下: [img]http://dl2.iteye.com/uplo...

ningandjin的专栏 381

AVAudioRecorder录音和AVAudioPlayer播放

利用AVAudioRecorder和AVAudioPlayer实现录音及播放功能

默默无语的博客 716

ios录音功能的实现

这两天也调了一下ios的录音,原文链接:http://www.iphoneam.com/blog /index.php?title=using-the-iphone-to-record-audio-a-guide&more=1&c=1&tb=1&pb=1 这里ios的录音功能主要依靠AVFoundation.framework与CoreAudio.framework来实现 在工程内添

dean19900504的专栏 1192

AVFoundation之录音及播放

录音在开始录音前,要把会话方式设置成AVAudioSessionCategoryPlayAndRecord//设置为播放和录音状态,以便可以在录制完之后播放录音 AVAudioSession *session = [AVAudioSession sharedInstance]; NSError *setCategoryError = nil; [session setCate

yanyanforest的专栏 2308

IOS学习 AVAudioRecorder 录音 存储在沙盒中

#import "HomeViewController.h" #import   //添加框架文件 @interface HomeViewController () @property (nonatomic,strong)AVAudioRecorder *recorder; @end @implementation Ho

ridxmc的博客 1487
上一篇: 将图片保存到相册中
下一篇: 3DTouch测试
瓦怕落地
博客等级 码龄11年 16粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值