AVAudioSession
方法
(AVAudioSession *)sharedInstance;
参考代码:
func setupAudioSession() {
do {
let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord, options: [.defaultToSpeaker, .allowBluetooth])
try session.setActive(true)
} catch {
fatalError("Failed to configure and activate session.")
}
}
AVAudioApplication
管理属于应用程序的一个或多个音频会话的对象。
(void)requestRecordPermissionWithCompletionHandler:(void (^)(BOOL granted))response;
@property(readonly) AVAudioApplicationRecordPermission recordPermission;
AVAudioRoutingArbiter
用于配置macOS应用程序以参与AirPods自动切换的对象。
@interface AVAudioRoutingArbiter : NSObject
AVAudioPlayer
播放文件或缓冲区中音频数据的对象。
方法:
(instancetype)initWithContentsOfURL:(NSURL *)url
error:(NSError * _Nullable *)outError;
(instancetype)initWithContentsOfURL:(NSURL *)url
fileTypeHint:(NSString *)utiString
error:(NSError * _Nullable *)outError;
(instancetype)initWithData:(NSData *)data
error:(NSError * _Nullable *)outError;
(instancetype)initWithData:(NSData *)data
fileTypeHint:(NSString *)utiString
error:(NSError * _Nullable *)outError;
AVAudioRecorder
将音频数据记录到文件中的对象。
方法:
(instancetype)initWithURL:(NSURL *)url
settings:(NSDictionary<NSString *,id> *)settings
error:(NSError * _Nullable *)outError;
(instancetype)initWithURL:(NSURL *)url
format:(AVAudioFormat *)format
error:(NSError * _Nullable *)outError;
(BOOL)prepareToRecord;
(BOOL)record;
(BOOL)recordAtTime:(NSTimeInterval)time;
(BOOL)recordForDuration:(NSTimeInterval)duration;
(BOOL)recordAtTime:(NSTimeInterval)time
forDuration:(NSTimeInterval)duration;
(void)pause;
(void)stop;
@property(readonly, getter=isRecording) BOOL recording;
(BOOL)deleteRecording;
AVAudioRecorderDelegate
一种协议,定义了对音频录制事件和编码错误作出响应的方法。