#import <AVFoundation/AVFoundation.h> 需要引入
//获取document目录的路径
view plain
- (NSString*) documentsPath {
if (! _documentsPath) {
NSArray *searchPaths =
NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
_documentsPath = [searchPaths objectAtIndex: 0];
[_documentsPath retain];
}
return _documentsPath;
}
//(document目录的路径)
NSString *destinationString = [[self documentsPath]
stringByAppendingPathComponent:filenameField.text];
NSURL *destinationURL = [NSURL fileURLWithPath: destinationString];
//初始化AVAudioRecorder
NSError *recorderSetupError = nil;
AVAudioRecorder audioRecorder = [[AVAudioRecorder alloc] initWithURL:destinationURL
settings:recordSettings error:&recorderSetupError];
[recordSettings release];
第二个参数 settings是一个容纳键值对的NSDictionary有四种一般的键
1:一般的音频设置
2:线性PCM设置
3:编码器设置
4:采样率转换设置
NSMutableDictionary 需要加入五个设置值(线性PCM)
v
iew plain
NSMutableDictionary *recordSettings =
[[NSMutableDictionary alloc] initWithCapacity:10];
//1 ID号
[recordSettings setObject:
[NSNumber numberWithInt: kAudioFormatLinearPCM] forKey: AVFormatIDKey];
float sampleRate =
[pcmSettingsViewController.sampleRateField.text floatValue];
//2 采样率
[recordSettings setObject:
[NSNumber numberWithFloat:sampleRate] forKey: AVSampleRateKey];
//3 通道的数目
[recordSettings setObject:
[NSNumber numberWithInt:
(pcmSettingsViewController.stereoSwitch.on ? 2 : 1)]
forKey:AVNumberOfChannelsKey];
int bitDepth =
[pcmSettingsViewController.sampleDepthField.text intValue];
//4 采样位数 默认 16
[recordSettings setObject:
[NSNumber numberWithInt:bitDepth] forKey:AVLinearPCMBitDepthKey];
//5
[recordSettings setObject:
[NSNumber numberWithBool:
pcmSettingsViewController.bigEndianSwitch.on]
forKey:AVLinearPCMIsBigEndianKey];
//6 采样信号是整数还是浮点数
[recordSettings setObject:
[NSNumber numberWithBool:
pcmSettingsViewController.floatingSamplesSwitch.on]
forKey:AVLinearPCMIsFloatKey]
;
AVAudioRecorder成功创建后,使用他非常直接.它的三个基本方法如下
view plain
-(void) startRecording {
[audioRecorder record];
}
-(void) pauseRecording {
[audioRecorder pause];
recordPauseButton.selected = NO;
}
-(void) stopRecording {
[audioRecorder stop];
}
分享到:
相关推荐
在这里,我们将深入探讨如何在iPhone开发中使用AVFoundation,特别是与触摸事件相关的部分。 AVFoundation框架提供了广泛的媒体处理功能,包括播放、录制、编辑和分析音频和视频。在iPhone开发中,AVPlayer、...
在iOS开发中,语音录入和转换是常见的功能需求,尤其对于iPhone应用来说,能够方便用户通过语音输入并保存为音频文件,可以极大地提升用户体验。在这个“iPhone语音录入转MP4实例”中,我们将探讨如何利用iOS SDK...
在iOS开发中,实现“iPhone播放歌曲文件并录制 边播边录”的功能涉及到多媒体处理、音频框架以及多线程编程等多个技术点。这个功能可以让用户在听音乐的同时,将自己的声音录制下来,与原音乐合成一个新的音频文件。...
在iOS平台上,开发针对iPhone和iPad的应用时,录音和声音播放是常见的功能需求。这篇文章将深入探讨如何在iOS应用中实现这些功能,主要基于Apple的AVFoundation框架。AVFoundation是苹果提供的一套强大的多媒体处理...
这些压缩包文件包含的是苹果(Apple)官方提供的关于iPhone开发的一些示例项目,它们是学习iOS应用开发的宝贵资源。每个文件名代表了一个特定的应用或功能的实例,下面将逐一介绍这些示例项目的重点和涉及的知识点。...
在这个语音对话应用中,AVAudioRecorder和AVAudioPlayer类可能会被用到,前者用于录音,后者用于播放。 3. **MultipeerConnectivity框架**:在没有服务器的情况下,设备之间的实时通信可以使用...
在iOS平台上,开发人员可以利用Apple提供的系统API来实现iPhone的录音功能。本文将深入探讨如何在iOS 7及以上版本中使用系统API实现这一功能,包括必要的知识背景、步骤和关键代码片段。 首先,我们需要了解iOS中的...
在设置好AVAudioRecorder后,需要调用`prepareToRecord`方法来准备录音,然后调用`record`或`record(forDuration:)`方法开始录音。如果需要暂停,可以调用`pause`,恢复则调用`resume`,结束录音则调用`stop`。 6. ...
- `AVAudioRecorder`是`AVFoundation`中的核心类,用于录音。它负责设置录音参数,如编码格式(如AAC或CAF)、采样率、声道数等,并管理录音过程。 2. **初始化录音器(Initializing the Recorder)**: - 在实现...
6. **SpeakHere.zip**:这可能是一个语音录音和播放的示例,利用了`AVFoundation`框架中的`AVAudioRecorder`和`AVAudioPlayer`类。开发者可以学习如何处理麦克风输入,录制音频文件,并回放声音。 7. **SQLiteBooks...
录音功能主要依赖于`AVAudioRecorder`类。 2. **配置录音设置**:首先,你需要创建一个`AVAudioSession`实例,设置音频会话类别,例如`AVAudioSessionCategoryRecord`,确保应用可以在后台录音。然后,创建`...
要开始录音,我们需要创建一个AVAudioRecorder实例,配置其录音设置(如采样率、位深度、声道数等),然后调用`record()`方法。 ```swift let audioSession = AVAudioSession.sharedInstance() do { try ...
"简单声音 音量获取demo"这个项目,正如其标题所示,是为开发者提供一个简单的示例,教如何在iPhone上获取音频的音量信息。描述中提到的“苹果公司复杂的波形的代码”,可能是指苹果官方提供的音频处理框架,如Audio...
1. **音频捕获API**:了解iOS的AVFoundation框架,它是处理音频输入和输出的主要工具,包括使用AVAudioRecorder类来设置录音参数,如采样率、位深度和声道数。 2. **用户界面设计**:学习如何使用SwiftUI或UIKit来...
Arm64是Apple iOS设备上普遍使用的64位处理器架构,尤其在iPhone 5s及之后的设备中。 在iOS上,录音通常使用AVFoundation框架中的AVAudioRecorder类来完成。首先,我们需要配置AVAudioSession以设置合适的音频类别...
在项目中,AVAudioRecorder用于录音,AVAudioPlayer用于播放音频,它们都是AVFoundation的重要组件。 2. **语音录制**:通过AVAudioRecorder,开发者可以配置录音设置,如采样率、位深度、声道数等,实现高质量的...
这包括设备型号(如iPhone X、iPhone 12等)、操作系统版本、处理器类型、内存容量等。在iOS中,开发者可以使用 UIDevice 类来获取设备的基本信息,如系统名称、系统版本和设备模型。对于更深入的硬件信息,可能需要...
在发送端,可以使用`AVAudioRecorder`捕获麦克风的实时音频数据,将其转换为PCM格式,然后发送给服务器。 5. **播放PCM文件**: 如果你有一个包含PCM数据的文件,如`.pcm`扩展名,可以读取文件内容到内存,然后...
在iOS、macOS以及iPhone平台开发中,声音的采集与播放是常见的功能需求。本教程主要聚焦于使用Objective-C语言实现这一过程,特别是在不需将声音数据写入文件的情况下,直接通过AudioQueue服务进行缓冲和播放。让...