Android DevCamp




Produced by CSDN

Website: http://devcamp.csdn.net/
Weibo: http://weibo.com/cmdnclub/
李鹏军
爱图腾科技 架构师
相关介绍

传输协议

音频输出

音频编码

音频输入

音频解码
相关介绍




l  目前国外知名的有 Square支付,coin支付。

l  国内比较火的应该是拉卡拉手机刷卡支付
相关介绍




l  手机的音频接口除了移动支付外还可以做很多

 的事情。

l  比如 遥控信号指令发送器
传输协议


u  传输协议可以自定义

u  音频接口的传输协议很重要


u  ⼀一个成熟的规范可以满足很多的需求开发
简单的发送协议

      u  send command!

         Accept device   Accept type    Ac#on
             code        command       command
          command         (1 Byte)     (1 Byte)
           (1 Byte)
             0x03           0xA0       0x02




u     Accept device Code command :接受指令的硬件设备代码!

u     Accept type command :接收指令的硬件设备类型!

u     Action command:需要执行的指令。
音频输出
    输出流程


              音频
             通过
               音频
                    信号
                  接口
                     发送

 音频输出应用
将指令转换成音频信号

                            外接硬件设备
                          解码音频信号获得原始指令



                                         可被遥控的设备
                                          做出响应
音频数据输出需要准备的参数



sampleRateInHz: 录音采样率 (单位Hz, 44100, 22050,16000,11025)
channelConfig: 录音通道数(声道) (12, 16) CHANNEL_IN_MONO,CHANNEL_IN_STEREO.
audioFormat: 线性采样位数 (8, 16,) PCM 16 bit per sample
bufferSizeInBytes:使用值小于getMinBufferSize()将导致初始化失败


    u  相关代码
音频数据输出需要准备的参数



sampleRateInHz: 录音采样率 (单位Hz, 44100, 22050,16000,11025)
channelConfig: 录音通道数(声道) (12, 16) CHANNEL_IN_MONO,CHANNEL_IN_STEREO.
audioFormat: 线性采样位数 (8, 16,) PCM 16 bit per sample
bufferSizeInBytes:使用值小于getMinBufferSize()将导致初始化失败


    u  相关代码
实例化 AudioTrack
 实例化音频输出对象

u  相关代码
执行输出音频流
 开始执行音频输出
u  相关代码




配置 voiceData 数据的编码调制
音频编码
调制编码


将需要发送的指令数据转换成模拟音频信号



Encode的⼀一个过程
音频编码
将数字信号转换成模拟信号输出




这里的voiceData就可以作为音频输出流播放了
音频输入
     流程图


               设备
需要读取的设备       通过
                外接
                     信息
                   设备
将信息录入到硬件设备中           录入




                             外接硬件设备
                           将传入的信息编码成音频信号



                                           音频输入应用
                                            将音频信号
                                           转换成指令信息
音频输入需要准备的参数

sampleRateInHz: 录音采样率 (单位Hz, 44100, 22050,16000,11025)
channelConfig: 录音通道数(声道) (12, 16) CHANNEL_IN_MONO,CHANNEL_IN_STEREO.
audioFormat: 线性采样位数 (8, 16,) PCM 16 bit per sample
bufferSizeInBytes:使用值小于getMinBufferSize()将导致初始化失败


u  相关代码
音频输入需要的参数对照
实例化 AudioRecord
 获得音频接口数据的对象

u  相关代码
获得音频输入
  监听音频接口是否有输入的音频流

u  相关代码




   对获得的音频流 buffer 进行解码
解码音频流


u  将音频流的模拟信号转换成数字信号后识别指令


u  相关代码




u  解码出来的RecvData数据就可以根据协议解析指令了
谢谢!

    爱图腾科技
Next App Generation

Android音频口数据通信开发 | 爱图腾 李鹏军