`

IPhone之AVAudioRecorder

阅读更多
#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 开发 avtouch 代码

    在这里,我们将深入探讨如何在iPhone开发中使用AVFoundation,特别是与触摸事件相关的部分。 AVFoundation框架提供了广泛的媒体处理功能,包括播放、录制、编辑和分析音频和视频。在iPhone开发中,AVPlayer、...

    iphone 语音录入转mp4实例

    在iOS开发中,语音录入和转换是常见的功能需求,尤其对于iPhone应用来说,能够方便用户通过语音输入并保存为音频文件,可以极大地提升用户体验。在这个“iPhone语音录入转MP4实例”中,我们将探讨如何利用iOS SDK...

    iphone 开发播放歌曲文件并录制 边播边录

    在iOS开发中,实现“iPhone播放歌曲文件并录制 边播边录”的功能涉及到多媒体处理、音频框架以及多线程编程等多个技术点。这个功能可以让用户在听音乐的同时,将自己的声音录制下来,与原音乐合成一个新的音频文件。...

    iPhone/iPad 开发:录音及声音播放

    在iOS平台上,开发针对iPhone和iPad的应用时,录音和声音播放是常见的功能需求。这篇文章将深入探讨如何在iOS应用中实现这些功能,主要基于Apple的AVFoundation框架。AVFoundation是苹果提供的一套强大的多媒体处理...

    iphone 官方的例子

    这些压缩包文件包含的是苹果(Apple)官方提供的关于iPhone开发的一些示例项目,它们是学习iOS应用开发的宝贵资源。每个文件名代表了一个特定的应用或功能的实例,下面将逐一介绍这些示例项目的重点和涉及的知识点。...

    ios iphone 源码 语音对话 聊天代码

    在这个语音对话应用中,AVAudioRecorder和AVAudioPlayer类可能会被用到,前者用于录音,后者用于播放。 3. **MultipeerConnectivity框架**:在没有服务器的情况下,设备之间的实时通信可以使用...

    iphone 系统api录音功能实现(支持ios7)

    在iOS平台上,开发人员可以利用Apple提供的系统API来实现iPhone的录音功能。本文将深入探讨如何在iOS 7及以上版本中使用系统API实现这一功能,包括必要的知识背景、步骤和关键代码片段。 首先,我们需要了解iOS中的...

    IOS应用源码——录制音频 demo Recording.zip

    在设置好AVAudioRecorder后,需要调用`prepareToRecord`方法来准备录音,然后调用`record`或`record(forDuration:)`方法开始录音。如果需要暂停,可以调用`pause`,恢复则调用`resume`,结束录音则调用`stop`。 6. ...

    (0179)-iOS/iPhone/iPAD/iPod源代码-音频声效(Audio)-Sound Recorder

    - `AVAudioRecorder`是`AVFoundation`中的核心类,用于录音。它负责设置录音参数,如编码格式(如AAC或CAF)、采样率、声道数等,并管理录音过程。 2. **初始化录音器(Initializing the Recorder)**: - 在实现...

    iphone+官方的例子

    6. **SpeakHere.zip**:这可能是一个语音录音和播放的示例,利用了`AVFoundation`框架中的`AVAudioRecorder`和`AVAudioPlayer`类。开发者可以学习如何处理麦克风输入,录制音频文件,并回放声音。 7. **SQLiteBooks...

    IOS录音功能的实现

    录音功能主要依赖于`AVAudioRecorder`类。 2. **配置录音设置**:首先,你需要创建一个`AVAudioSession`实例,设置音频会话类别,例如`AVAudioSessionCategoryRecord`,确保应用可以在后台录音。然后,创建`...

    ios录音播放,包括录取的PCM转WAV播放

    要开始录音,我们需要创建一个AVAudioRecorder实例,配置其录音设置(如采样率、位深度、声道数等),然后调用`record()`方法。 ```swift let audioSession = AVAudioSession.sharedInstance() do { try ...

    简单声音 音量获取demo

    "简单声音 音量获取demo"这个项目,正如其标题所示,是为开发者提供一个简单的示例,教如何在iPhone上获取音频的音量信息。描述中提到的“苹果公司复杂的波形的代码”,可能是指苹果官方提供的音频处理框架,如Audio...

    语音记事本

    1. **音频捕获API**:了解iOS的AVFoundation框架,它是处理音频输入和输出的主要工具,包括使用AVAudioRecorder类来设置录音参数,如采样率、位深度和声道数。 2. **用户界面设计**:学习如何使用SwiftUI或UIKit来...

    mp3录音播放

    Arm64是Apple iOS设备上普遍使用的64位处理器架构,尤其在iPhone 5s及之后的设备中。 在iOS上,录音通常使用AVFoundation框架中的AVAudioRecorder类来完成。首先,我们需要配置AVAudioSession以设置合适的音频类别...

    《iOS语音功能知识与技术分享》工程与文档

    在项目中,AVAudioRecorder用于录音,AVAudioPlayer用于播放音频,它们都是AVFoundation的重要组件。 2. **语音录制**:通过AVAudioRecorder,开发者可以配置录音设置,如采样率、位深度、声道数等,实现高质量的...

    ios实时语音播放pcm数据和播放pcm文件

    在发送端,可以使用`AVAudioRecorder`捕获麦克风的实时音频数据,将其转换为PCM格式,然后发送给服务器。 5. **播放PCM文件**: 如果你有一个包含PCM数据的文件,如`.pcm`扩展名,可以读取文件内容到内存,然后...

    web页面对ios客户端采集信息的展示

    这包括设备型号(如iPhone X、iPhone 12等)、操作系统版本、处理器类型、内存容量等。在iOS中,开发者可以使用 UIDevice 类来获取设备的基本信息,如系统名称、系统版本和设备模型。对于更深入的硬件信息,可能需要...

    iOS声音采集与播放Object C

    在iOS、macOS以及iPhone平台开发中,声音的采集与播放是常见的功能需求。本教程主要聚焦于使用Objective-C语言实现这一过程,特别是在不需将声音数据写入文件的情况下,直接通过AudioQueue服务进行缓冲和播放。让...

Global site tag (gtag.js) - Google Analytics