iOS音频录制基础
来源:互联网 发布:怎么在淘宝买伟哥 编辑:程序博客网 时间:2024/06/05 07:00
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
@interface ViewController ()<AVAudioRecorderDelegate>
{
AVAudioRecorder *audioRecorder;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSString *path = [NSTemporaryDirectory()stringByAppendingPathComponent:@"rec.caf"];
NSLog(@"%@",path);
// settings录制 音频设置
// NSDictionary *setting = @{AVNumberOfChannelsKey:@(2),AVEncoderAudioQualityKey:@(AVAudioQualityHigh),AVEncoderBitRateKey:@(32),AVSampleRateKey:@(40000)};
audioRecorder = [[AVAudioRecorder alloc]initWithURL:[NSURL fileURLWithPath:path] settings:nil error:nil];
// 录音的当前时间
// audioRecorder.currentTime
// 预录制
audioRecorder.delegate = self;
[audioRecorder prepareToRecord];
[audioRecorder record];
NSLog(@"----%@", audioRecorder.settings);
UIButton *button = [UIButton buttonWithType:0];
button.frame = CGRectMake(100, 100, 100, 100);
button.backgroundColor = [UIColor redColor];
[button addTarget:self action:@selector(stopRec) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
#pragma mark ------AudioRecorderDelegate的代理方法----------
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag
{
NSLog(@"...........");
// NSFileManager文件管理类 创建文件 移动 复制 删除
// 判断文件是否存在
// 是否可以读取 写入
// subpathsAtPath得到指定目录下的子文件
// 初始化文件管理类(单例)
NSFileManager *manager = [NSFileManager defaultManager];
// path指定文件创建的目录 contents指定文件的内容 attributes文件的属性
NSString *path = [NSTemporaryDirectory()stringByAppendingPathComponent:@"DFSW"];
//创建文件
NSString *image = [[NSBundle mainBundle]pathForResource:@"王菲3.jpg" ofType:nil];
NSData *data = [NSData dataWithContentsOfFile:image];
BOOL success = [manager createFileAtPath:path contents:data attributes:nil];
if (success) {
NSLog(@"~~~~~%@",path);
}
// 移动文件
// 目标目录
NSString *newPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:@"DFSW"];
// 删除文件
// [manager removeItemAtPath:path error:nil];
if ([manager fileExistsAtPath:newPath] == YES) {
NSLog(@"文件存在");
}
// [manager moveItemAtPath:path toPath:newPath error:nil];
NSLog(@"!!!!%@",newPath);
// 获得目录里面的子文件
// 返回值是一个数组里面存的是所有子文件的名字
// NSArray *all = [manager subpathsAtPath:newPath];
}
- (void)stopRec
{
[audioRecorder stop];
}
@end
- iOS音频录制基础
- ios 录制音频
- iOS录制音频
- iOS 音频录制
- IOS AVAudioRecorder 录制音频
- IOS录制AAC音频
- IOS音频录制相关笔记
- iOS audio queue 播放和录制音频
- iOS 使用AVAudioRecorder实现音频的录制
- IOS 音频录制与播放简单演示
- ios音频录制和播放,文件很小
- 录制音频(AVAudioRecorder)for iOS
- ios 视频,音频播放,录制操作
- 音频录制
- 音频录制
- 录制音频
- 录制音频
- 音频录制
- codeforces 584E
- usaco月赛trapped
- ACM学习-动态规划-三角形最大面积问题
- Android 双击返回键退出功能的实现
- zookeeper介绍(一)
- iOS音频录制基础
- 二、风险和收益成正比
- 游戏开发设计模式之命令模式(unity3d 示例实现)
- [51MCU] Chapter1:芯片引脚
- BufferedReader的用法
- 友元函数
- difference between qemu-kvm and qemu-system-x86_64
- 软件测试过程
- UIStoryboardSegue