#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使用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,让你能够在浏览器环境中...
低功耗模式下的看门狗使用
最近用国产芯片AT32在做一个低功耗的项目,为了实现低功耗模式下的定时唤醒,我选择的是使用相对比较简单的看门狗来做,下面就分享一下使用过程~ 为了最大限度的降低功耗,我用的是待机模式,先看看几种低功耗模式以及唤醒的区别: 而看门狗AT32提供了两种,分别是独立看门狗(IWDG)和窗口看门狗(WWDG),其区别大概有以下几点: 1、独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效;窗口看门狗由从 APB1 时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常
【亲测免费】 Vue-Audio-Recorder 安装和配置指南
### 项目基础介绍 Vue-Audio-Recorder 是一个基于 Vue.js 的简单音频录制组件。它允许用户在 Vue.js 应用程序中创建、播放、下载和存储音频记录。该项目提供了美观的用户界面,支持多种音频格式(如 MP3 和 WAV),并且具有时间限制和记录限制等功能。 ### 主要编程语言 该项目主要使用 JavaScript 和 Vue.js 框架进行开发。 ## 2. 项目使...
风光储互补微电网在偏远地区的应用实践:从建模到仿真全解析
本文深入解析了风光储互补微电网在偏远地区的应用实践,从系统设计到仿真建模全流程。通过Simulink等工具进行动态仿真,验证了系统在多种工况下的可靠性,并结合实际案例展示了其显著的经济和环保效益。文章为从业者提供了从技术路径到实施优化的全面指导。
智能排班考勤系统原型
可实现从业务预测,到工时预估,再到人员分配全流程自动智能排班。可应用于客服行业或工厂的智能排班系统。
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
二十一、SAP-库存管理
业务逻辑、功能讲解、图文解析、章节总结
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 下...
基于Simulink的风电系统背靠背变流器解耦控制仿真
本文完成了基于 Simulink 的风电背靠背变流器解耦控制仿真,实现了:✅掌握 dq 解耦控制的数学本质✅构建 MSC + GSC 完整控制链✅验证其在动态、扰动下的卓越性能✅达成高解耦度、低 THD、稳母线三大目标。
剪映专业版关键帧完全教程:从原理到实战的动画必修课
关键帧是视频动画的核心原理。视频由连续静止画面(帧)构成,关键帧记录素材属性变化的起始与结束状态,中间过渡帧由软件自动计算生成。剪映专业版中,视频、音频、文本、贴纸等素材均支持关键帧动画,可调节位置、缩放、旋转、不透明度、音量等参数。操作为:在起始位置点击参数旁菱形按钮添加关键帧,移动播放头后调整参数,系统自动生成第二个关键帧。多属性可独立控制并叠加,实现放大同时淡出等复合效果。通过设定变化起点与终点,关键帧能让静止元素产生移动、缩放、淡入淡出等丰富动态,是视频剪辑从基础拼接进阶创意表达的核心技能。掌握关键
vue-audio-recorder 项目亮点解析
`vue-audio-recorder` 是一个基于 Vue.js 的开源音频录制组件。该组件为开发者提供了一个简单、易用的界面,用于在网页中实现音频录制功能。它支持多种浏览器,并具有良好的兼容性,使得用户可以方便地在各种设备上进行音频录制。 ## 2. 项目代码目录及介绍 项目的主要目录结构如下: - `src`:存放项目的源代码。 - `components`:包含 `AudioRe...
在 IW31 录入班次与当班负责人,并让 IW38 列表同步显示:基于 IWO10018 + IWOC0004 的一套可落地增强方案
摘要 本文详细介绍了在SAP PM模块中实现工厂设备维护订单增强的完整方案,重点解决两个核心需求:在订单创建时新增班次负责人和班次字段,并在订单列表中直接显示这些信息。文章从需求分析、技术设计到具体实现步骤进行了系统阐述。 关键实现步骤包括: 通过CI_AUFK结构扩展AUFK表,确保字段持久化存储 使用IWO10018增强在IW31/IW32/IW33事务中添加输入界面 通过IWOC0004增强在IW38订单列表中显示新增字段 采用优化的数据填充策略提升性能 该方案不仅满足业务需求,还考虑了用户体验和系统
AVAudioRecorder进行录音
import UIKit import AVFoundation /** AVAudioRecorder也需要强引用防止其被意外释放 并且需要告诉用户使用NSMicrophoneUsageDescription权限,否则会导致崩溃 */ class ViewController: UIViewController { var audioRecorder:AVAudioR...
9 硬件工程师笔面试高频知识考点真题解析——运算放大器
运算放大器(运放)摘要 运放是一种高增益、差分输入的模拟集成电路,具有虚短(线性区输入电压相等)和虚断(输入电流为零)特性,支持负反馈(线性放大)和开环/正反馈(饱和区比较)两种工作模式。关键特性包括高输入阻抗、低输出阻抗,理想运放参数(如无限增益)与实际参数(如有限带宽)的差异。 选型要点: 信号特性:直流/低频信号关注失调电压(Vos)、温漂;高频信号侧重带宽(GBW)和压摆率(SR)。 电源条件:单/双电源供电、电压范围及功耗需求(如电池设备需低静态电流)。 精度与噪声:微弱信号需低噪声运放,高精度场
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
swift 录音 AVAudioRecorder
https://blog.youkuaiyun.com/msmwncx/article/details/80336973 版权声明:本文为博主原创文章,未经博主允许不得转载。如有问题,请联系QQ547394765 https://blog.youkuaiyun.com/msmwncx/article/details/80336973 距离上次写博客已经好久好久了ZZZzzzzzzz。 首先交代下用处,做的IM项目,...
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
iOS实现录音与播放功能
可以实现模拟器与真机都能够录音与播放,并且吧录音文件存储到沙盒里.
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
iOS音频与视频的开发(二)- 使用AVAudioRecorder进行录制音频
1、使用AVAudioRecorder录制视频 AVAudioRecorder与AVAudioPlayer类似,它们都属于AVFoundation的类。AVAudioRecorder的功能类似于一个录音器,使用AVAudioRecorder录制音频十分简单,当程序控制AVAudioRecorder对象创建完成之后,可以调用AVAudioRecorder的如下方法进行录制。 1、prepa...
IOS开发之AVAudioRecorder
在AVFoundation框架中还要一个AVAudioRecorder类专门处理录音操作,它同样支持多种音频格式。与AVAudioPlayer类似,你完全可以将它看成是一个录音机控制类,下面是常用的属性和方法: 属性 说明 @property(readonly, getter=isRecording) BOOL recording; 是否正在录音,只读
iOS--AVAudioRecorder如何录制MP3
AVAudioRecorder简介 录音机,提供了在应用程序中的音频记录能力。作为与 AVAudioPlayer 相对应的 API,AVAudioRecorder 是将音频录制为文件的最简单的方法。除了用一个音量计接受音量的峰值和平均值以外,这个 API 简单粗暴,如果你的使用场景很简单的话,这可能恰恰就是你想要的方法。 录音配置 创建AVAudioSession 想要录音首先要创建一个AVAud...
AVAudioSession、AVAudioRecorder、AVAudioPlayer
按钮显示为“录音”,点击显示为“停止”,再点击显示为“录音” 实现代码: - (IBAction)onRecordButtonPressed:(id)sender { UIButton button = (UIButton )sender; [sender setTitle:([button.titleLabel.text isEqualToString:@”录音”] ?
使用AVAudioRecorder,AVAudioPlayer构建简单录音笔应用
在iOS的基础类库中, 提供了AVFoundation FrameWork,即Audio/Video基础类库,通过使用这个类库,可以非常容易的在应用程序录制,播放视频,音频等。本文将通过一个简单的录音笔应用,介绍如何在iOS应用程序中使用AVAudioRecorder,AVAudioPlayer。录音笔的界面以及功能都非常简单,如下: [img]http://dl2.iteye.com/uplo...
AVAudioRecorder录音和AVAudioPlayer播放
利用AVAudioRecorder和AVAudioPlayer实现录音及播放功能
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来实现 在工程内添
AVFoundation之录音及播放
录音在开始录音前,要把会话方式设置成AVAudioSessionCategoryPlayAndRecord//设置为播放和录音状态,以便可以在录制完之后播放录音 AVAudioSession *session = [AVAudioSession sharedInstance]; NSError *setCategoryError = nil; [session setCate
IOS学习 AVAudioRecorder 录音 存储在沙盒中
#import "HomeViewController.h" #import //添加框架文件 @interface HomeViewController () @property (nonatomic,strong)AVAudioRecorder *recorder; @end @implementation Ho
2880



被折叠的 条评论
为什么被折叠?



