6期__AVFoundation-AVAudioPCMBuffe

2023-11-09  本文已影响0人  萧修

AVAudioPCMBufferAVAudioBuffer的子类,用于PCM音频格式。其中AVAudioBuffer是苹果最新音频框架AVFAudio中最基础的音频缓存帧结构。

通过AVAudioFormat和音频采样帧数(等于采样率乘以时长)构建AVAudioPCMBuffer,并且通过AVAudioFile.read把音频数据解码到AVAudioPCMBuffer,获取到解码后的PCM Buffer。

将音频数据解码到AVAudioPCMBuffer

- (BOOL)readIntoBuffer:(AVAudioPCMBuffer *)buffer error:(NSError **)outError;
@interface AVAudioPCMBuffer : AVAudioBuffer

/*! @method initWithPCMFormat:frameCapacity:
    @abstract Initialize a buffer that is to contain PCM audio samples.
    初始化一个包含PCM音频样本的缓冲区
    @param format
        The format of the PCM audio to be contained in the buffer.
        要包含在缓冲区中的PCM音频的格式
    @param frameCapacity
        The capacity of the buffer in PCM sample frames.
        PCM采样帧中缓冲区的容量。
    @discussion
        An exception is raised if the format is not PCM.
 
        Returns nil in the following cases:
        - if the format has zero bytes per frame (format.streamDescription->mBytesPerFrame == 0)
        - if the buffer byte capacity (frameCapacity * format.streamDescription->mBytesPerFrame)
          cannot be represented by an uint32_t
*/
- (nullable instancetype)initWithPCMFormat:(AVAudioFormat *)format frameCapacity:(AVAudioFrameCount)frameCapacity;

/*! @property frameCapacity
    @abstract
        The buffer's capacity, in audio sample frames.
        音频采样帧的容量
*/
@property (nonatomic, readonly) AVAudioFrameCount frameCapacity;
@end
上一篇 下一篇

猜你喜欢

热点阅读