TMAudioDataCallback Class Referenceabstract
在TMModeCallback模式下的回调接口. 一般模式下可以忽略. More...
#include <TMAudioDataCallback.h>
Public Member Functions | |
virtual int | onDataLoopBufferAllocated (unsigned int recordBufferSize, unsigned int playBufferSize)=0 |
virtual void | onDataLoopBufferFree ()=0 |
virtual int | onDataLoopStarted (int recordSampleRate, int recordChannels, int recordFormat, TMInputSource recordDeviceType, int playSampleRate, int playChannels, int playFormat)=0 |
virtual void | onDataLoopPaused ()=0 |
virtual int | onRecordDataReady (const char *buf, unsigned int bufsz)=0 |
virtual int | onPlayDataNeeded (char **bufptr, unsigned int bufsz)=0 |
Detailed Description
在TMModeCallback模式下的回调接口. 一般模式下可以忽略.
在TMModeCallback模式下的回调接口
Client应该继承这个接口并且实现相应的函数, 混音线程会在每个特定的时间去调用这些接口. 具体什么时候请参见每个参数的文档.
在Callback模式下, Client可以最大限度的控制声音 混音线程所做的事情只是从
- See also
- TMControllerMode
... Implement is ignored.
};
assert(controller->probe() == 0); // this must be called after KaraokeController#createReverb, otherwise will failed.
assert(controller->getMode() == TMModeControl);
controller->registerDataCallback(new Callback());
Member Function Documentation
|
pure virtual |
这个函数会在混音线程buffer分配完毕以后调用, 子类在这个回调里面主要做的是子类的buffer 分配 和Stared的主要区别就是这个回调在暂停的时候不会调用
|
pure virtual |
这个回调会在混音线程buffer释放以后被调用.
|
pure virtual |
这个函数会在混音线程暂停时候被调用 被调用表示混音线程因为某种原因,也许是系统需要Audio设备之类的原因暂停。
|
pure virtual |
这个函数会在混音线程开始混音的时候调到 参数分别是录音以及放音设备的一些属性, 会在混音线程开始活着恢复运行的时候调用。
- Parameters
-
recordDeviceType 表示输入设备是外置麦克风还是遥控上的麦克风,遥控上的麦克风需要做降噪处理。
- Returns
- > 0 表示成功 < 0 表示失败, 将不进行其他的Data调用
|
pure virtual |
这个函数是混音线程让Client去填数据的 这些buffer会被放到音频设备中播放
- Parameters
-
[out] bufptr 需要实现把下一个要播放的buffer指针。 [in] bufsz 是混音线程需要的buffer的大小, 混音线程控制buffer的大小,但是buffer的分配要由Client来做。
- Returns
- >= 0 表示成功,并且表示填写了多少数据 < 0 表示失败,不会播放该数据
|
pure virtual |
这个函数会在每次录音数据好了以后被调用
- Returns
- 返回值等于0表示成功, -1 表示处理失败
The documentation for this class was generated from the following file:
- /Users/jiejing/Developer/project/kalaok/libDirectAudio/public-include/TMAudioDataCallback.h