导入框架:
#import <AVFoundation/AVFoundation.h>
声明全局变量:
@interface ViewController ()<AVAudioRecorderDelegate> { AVAudioRecorder *audioRecorder; } @end
在ViewDidLoad中:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(100, 100, 100, 100); [button setTitle:@"TICK" forState:UIControlStateNormal]; button.backgroundColor = [UIColor brownColor]; [button addTarget:self action:@selector(startAudioRecoder:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button];
按钮的触发事件
- (void)startAudioRecoder:(UIButton *)sender{ sender.selected = !sender.selected; if (sender.selected != YES) { [audioRecorder stop]; return; } // URL是本地的URL AVAudioRecorder需要一个存储的路径 NSString *name = [NSString stringWithFormat:@"%d.aiff",(int)[NSDate date].timeIntervalSince1970]; NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:name]; NSError *error; // 录音机 初始化 audioRecorder = [[AVAudioRecorder alloc]initWithURL:[NSURL fileURLWithPath:path] settings:@{AVNumberOfChannelsKey:@2,AVSampleRateKey:@44100,AVLinearPCMBitDepthKey:@32,AVEncoderAudioQualityKey:@(AVAudioQualityMax),AVEncoderBitRateKey:@128000} error:&error]; [audioRecorder prepareToRecord]; [audioRecorder record]; audioRecorder.delegate = self; /* 1.AVNumberOfChannelsKey 通道数 通常为双声道 值2 2.AVSampleRateKey 采样率 单位HZ 通常设置成44100 也就是44.1k 3.AVLinearPCMBitDepthKey 比特率 8 16 24 32 4.AVEncoderAudioQualityKey 声音质量 ① AVAudioQualityMin = 0, 最小的质量 ② AVAudioQualityLow = 0x20, 比较低的质量 ③ AVAudioQualityMedium = 0x40, 中间的质量 ④ AVAudioQualityHigh = 0x60,高的质量 ⑤ AVAudioQualityMax = 0x7F 最好的质量 5.AVEncoderBitRateKey 音频编码的比特率 单位Kbps 传输的速率 一般设置128000 也就是128kbps */ NSLog(@"%@",path); }
代理方法:
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag{ NSLog(@"录音结束"); // 文件操作的类 NSFileManager *manger = [NSFileManager defaultManager]; NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; // 获得当前文件的所有子文件subpathsAtPath NSArray *pathlList = [manger subpathsAtPath:path]; // 需要只获得录音文件 NSMutableArray *audioPathList = [NSMutableArray array]; // 遍历所有这个文件夹下的子文件 for (NSString *audioPath in pathlList) { // 通过对比文件的延展名(扩展名 尾缀) 来区分是不是录音文件 if ([audioPath.pathExtension isEqualToString:@"aiff"]) { // 把筛选出来的文件放到数组中 [audioPathList addObject:audioPath]; } } NSLog(@"%@",audioPathList); }
本文向大家介绍iOS开发实现音频播放功能,包括了iOS开发实现音频播放功能的使用技巧和注意事项,需要的朋友参考一下 音频播放 1、介绍 - 功能介绍 用于播放比较长的音频、说明、音乐 ,使用到的是AVFoundation - 框架介绍 * AVAudioPlayer * 初始化: 注意 : (3)必须声明全局变量的音乐播放对象、或者是属性的音乐播放对象 才可以播放 (4)在退出播放页
本文向大家介绍iOS开发实现下载器的基本功能(1),包括了iOS开发实现下载器的基本功能(1)的使用技巧和注意事项,需要的朋友参考一下 今天,做了一个下载器的Demo,即从本地配置的Apache服务器上,下载指定的文件。这次,我们下载服务器根目录下的html.mp4文件。 按照惯例,我们先创建一个URL对象和请求。 NSURL *url = [NSURL URLWithString:@"http
本文向大家介绍微信开发之微信jssdk录音功能开发示例,包括了微信开发之微信jssdk录音功能开发示例的使用技巧和注意事项,需要的朋友参考一下 项目需求简单描述 用户长按录音,松手后直接结束录音,结束录音后,用户可以选择重新录音、播放刚才的录音,上传录音(这里的上传录音指上传到自己服务器,上传步骤是,前端调用wx.uploadVoice,后台再到微信服务器下载音频文件,上传到自己的服务器)。注意,
本文向大家介绍怎么使用HTML5实现录音的功能?相关面试题,主要包含被问及怎么使用HTML5实现录音的功能?时的应答技巧和注意事项,需要的朋友参考一下 navigatior.getUserMedia() 这个接口已经被废弃了,请使用 MediaDevices.getUserMedia()
本文向大家介绍Android App调用MediaRecorder实现录音功能的实例,包括了Android App调用MediaRecorder实现录音功能的实例的使用技巧和注意事项,需要的朋友参考一下 MediaRecorder Android的MediaRecorder包含了Audio和video的记录功能,在Android的界面上,Music和Video两个应用程序都是调用MediaReco
本文向大家介绍python实现播放音频和录音功能示例代码,包括了python实现播放音频和录音功能示例代码的使用技巧和注意事项,需要的朋友参考一下 音频预处理 这一讲主要介绍些音频基本处理方式,为接下来的语音识别打基础。 三种播放音频的方式 使用 python 播放音频有以下几种方式: os.system() os.system(file) 调用系统应用来打开文件,file 可为图片或者音频文件。