KSYBgmReader Class Reference

Inherits from NSObject
Declared in KSYBgmReader.h

Overview

背景音乐文件解码

提供背景音乐文件解码的功能,将解码后的音频数据通过回调送出
输出数据的格式满足如下规律:

* 一定是S16的线性PCM
* 如果是双通道,一定是交织的数据

– initWithFile:isLoop:

构造音乐文件对应的reader

- (id)initWithFile:(NSString *)path isLoop:(BOOL)loop

Parameters

path

本地音乐的路径

loop

是否循环播放此音乐

Return Value

self

Declared In

KSYBgmReader.h

– reloadFile:

reload 一个新的文件到reader中

- (BOOL)reloadFile:(NSString *)path

Parameters

path

本地音乐的路径

Return Value

path对应的文件是否有效

Declared In

KSYBgmReader.h

– closeFile

关闭文件

- (void)closeFile

Declared In

KSYBgmReader.h

– seekTo:

seek到指定时间 (拖动进度条)

- (BOOL)seekTo:(float)time

Parameters

time

时间, 请参考 bgmDuration (单位,秒)

Return Value

是否seek 成功

Declared In

KSYBgmReader.h

  bgmFmt

音乐的格式信息 (一定为S16的数据格式)

@property (nonatomic, readonly) AudioStreamBasicDescription bgmFmt

Declared In

KSYBgmReader.h

– readPCMData:nbSample:

从文件中读取一段音频数据 (二选一)

- (int)readPCMData:(AudioBufferList *)buf nbSample:(UInt32)cnt

Parameters

buf,

待填充的音频数据 请保证buf.mDataByteSize 先设置为需要读取的字节数

Return Value

-1: 解码遇到错误, 请检查音乐文件是否有效 0: 文件读取完毕, 无法提供更多数据 (loop时不会返回0) 1: 读取正常

Declared In

KSYBgmReader.h

– readPCMData:capacity:

从文件中读取一段音频数据 (二选一)

- (int)readPCMData:(void *)buf capacity:(UInt32)cap

Parameters

buf,

待填充的音频数据(只会输出交织后的数据, 因此只有一个数据指针)

cap,

buf的空间大小

Return Value

-1: 解码遇到错误, 请检查音乐文件是否有效 >0: 读取正常, 数值为实际取到的数据字节数

Declared In

KSYBgmReader.h

  bgmDuration

背景音的duration信息(总时长, 单位:秒)

@property (nonatomic, readonly) float bgmDuration

Declared In

KSYBgmReader.h

  bgmPlayTime

背景音的已经播放长度 (单位:秒)

@property (nonatomic, readonly) float bgmPlayTime

Discussion

从0开始,最大为bgmDuration长度

Declared In

KSYBgmReader.h

  bgmProcess

音频的播放进度

@property (nonatomic, readonly) float bgmProcess

Discussion

取值从0.0~1.0,大小为bgmPlayTime/bgmDuration;

Declared In

KSYBgmReader.h

  bLoop

单曲循环

@property (nonatomic, assign) BOOL bLoop

Declared In

KSYBgmReader.h