PLAudioStreamingConfiguration.h
2.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//
// PLAudioStreamingConfiguration.h
// PLCameraStreamingKit
//
// Created on 15/8/4.
// Copyright (c) 2015年 Pili Engineering. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "PLTypeDefines.h"
/*!
@class PLAudioStreamingConfiguration
@abstract 音频编码推流的相关配置
@since v1.0.0
*/
@interface PLAudioStreamingConfiguration : NSObject <NSCopying>
/**
@brief 音频编码的采样率, 默认为设备采样率
*/
@property (nonatomic, assign) PLStreamingAudioSampleRate encodedAudioSampleRate;
/**
@brief 音频编码比特率,默认为 96kbps
*/
@property (nonatomic, assign) PLStreamingAudioBitRate audioBitRate;
/**
@brief 编码的声道数,默认为1
*/
@property (nonatomic, assign) UInt32 encodedNumberOfChannels; // default as 1
/**
@brief 编码模式,默认为 PLAACEncoderType_iOS_AAC
*/
@property (nonatomic, assign) PLAACEncoderType audioEncoderType;
/**
@brief 输入的音频流描述,默认为单路音频 @[kPLAudioChannelDefault]
@discussion 目前提供两路音频流混音功能,对于ReplayKit录屏推流,若要实现 App Audio 与 Mic Audio 的混音,需设置该属性为 @[kPLAudioChannelApp, kPLAudioChannelMic]
*/
@property (nonatomic, copy) NSArray *inputAudioChannelDescriptions;
/// kPLAudioStreamingQualityHigh2 as default
+ (instancetype)defaultConfiguration;
/*!
* 指定可选分辨率和推流质量生成一个配置
*/
+ (instancetype)configurationWithAudioQuality:(NSString *)quality;
/**
@brief 提供一个能支持的编码采样率
@param sampleRate 想要的编码采样率
@return PLStreamingAudioSampleRate 如果能支持 sampleRate,则原样返回 sampleRate。如果不能支持 sampleRate,返回一个比 sampleRate 大但最接近 sampleRate 的可以被支持的编码采样率。
*/
+ (PLStreamingAudioSampleRate)mostSimilarSupportedValueWithEncodedAudioSampleRate:(NSUInteger)sampleRate;
- (instancetype)initWithAudioQuality:(NSString *)quality;
- (instancetype)initWithEncodedAudioSampleRate:(PLStreamingAudioSampleRate)sampleRate
encodedNumberOfChannels:(UInt32)numberOfChannels
audioBitRate:(PLStreamingAudioBitRate)audioBitRate;
- (instancetype)initWithEncodedAudioSampleRate:(PLStreamingAudioSampleRate)sampleRate
encodedNumberOfChannels:(UInt32)numberOfChannels
audioBitRate:(PLStreamingAudioBitRate)audioBitRate
inputAudioChannelDescriptions:(NSArray *)inputAudioChannelDescriptions;
- (instancetype)initWithEncodedAudioSampleRate:(PLStreamingAudioSampleRate)sampleRate
encodedNumberOfChannels:(UInt32)numberOfChannels
audioEncoderType:(PLAACEncoderType)audioEncoderType
audioBitRate:(PLStreamingAudioBitRate)audioBitRate
inputAudioChannelDescriptions:(NSArray *)inputAudioChannelDescriptions;
@end