参考的这个:Audio Processing Graph(AUGraph)完成即時錄音與播放功能
应该是台湾的哥们写的,我给翻译整理了下,尽量给每句代码都写了注释,因初学故不一定对。
这个app功能很简单,就是获取到声音,然后做个静音处理就播放。
界面:
首先上个原理流程图:
我们的静音处理就写在Processing里,本例中为: PerformThru
//
// CDYViewController.m
// SimpleRemoteIO
//
// Created by danny on 2014/4/14.
// Copyright (c) 2014年 danny. All rights reserved.
//
#import "CDYViewController.h"
#import <AVFoundation/AVFoundation.h>
//需带耳机运行本例,否则会有回声(啸音)
@interface CDYViewController ()
{
AVAudioSession *audioSession;
AUGraph auGraph;
AudioUnit remoteIOUnit;
AUNode remoteIONode;
AURenderCallbackStruct inputProc;
BOOL isMute;
}
@end
@implementation CDYViewController
//依照Apple提供的结果,PerformThru以C语言的Static Function存在的,所以放在上端
//对声音更复杂的处理在PerformThru中完成,本例仅做静音处理
static OSStatus PerformThru(
void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStam