文档
注册
评分
提单
论坛
小智

启动recvData逻辑线程

场景介绍

预先启动接收的逻辑线程,并注册音频和录音的回调对象。

前提条件

指令流引擎对象已创建。

开发流程

  1. 封装好逻辑线程对象UpstreamReceiveDispatcher,循环调用指令流引擎的recvData接口。
  2. 注册音频数据回调和录音回调函数。
  3. 启动逻辑线程。

编码实例

public class Activity implements BaseActivity {
   protected void onCreate(Bundle savedInstanceState) {
        upstreamReceiveDispatcher = UpstreamReceiveDispatcher.getInstance();
        upstreamReceiveDispatcher.setInstructionEngine(engine);
        // 音频数据回调
        audioPlayerCallback = new AudioPlayerCallback();
        // 注册音频回调
        upstreamReceiveDispatcher.addNewPacketCallback((byte) InstructionWrapper.AUDIO, audioPlayerCallback);
        // 启动逻辑线程接收音频数据
        upstreamReceiveDispatcher.start();
    }
}
public class UpstreamReceiveDispatcher extends Thread {
    @Override
    public void run() {
        byte[] recvBuf = new byte[MAX_BUF_LEN];
        while (!stopFlag) {
            // 循环调用recvData接收数据
            int packetLen = engine.recvData(mtype, recvBuf, recvBuf.length);
            if (packetLen > 0) {
                byte[] copyData = new byte[packetLen];
                System.arraycopy(recvBuf, 0, copyData, 0, packetLen);
                // 将数据回调给钩子函数
                callback.onNewPacket(copyData);
                continue;
            }
        }
    }
}
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词