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

22
Android DevCamp Produced by CSDN Website: http://devcamp.csdn.net/ Weibo: http://weibo.com/cmdnclub/

Upload: imshining-devcamp

Post on 11-Jul-2015

3.985 views

Category:

Technology


6 download

TRANSCRIPT

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

Android DevCamp Produced by CSDN Website: http://devcamp.csdn.net/ Weibo: http://weibo.com/cmdnclub/

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

李鹏军

爱图腾科技 架构师

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

音频解码

相关介绍

传输协议

音频输出

音频编码

音频输入

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

相关介绍

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

l 国内比较火的应该是拉卡拉手机刷卡支付

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

相关介绍

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

的事情。

l 比如 遥控信号指令发送器

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

传输协议

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

u ⼀一个成熟的规范可以满足很多的需求开发

u 传输协议可以自定义

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

简单的发送协议

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

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

u  Action command:需要执行的指令。

u  send command !

Accept device Accept type Ac#on

code command commandcommand (1 Byte) (1 Byte)(1 Byte)

0x03 0xA0 0x02

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

音频输出

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

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

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

可被遥控的设备 做出响应

输出流程

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

音频数据输出需要准备的参数

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  相关代码

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

音频数据输出需要准备的参数

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  相关代码

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

实例化 AudioTrack 实例化音频输出对象

u  相关代码

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

执行输出音频流 开始执行音频输出

配置 voiceData 数据的编码调制

u  相关代码

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

音频编码 调制编码

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

Encode的⼀一个过程

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

音频编码 将数字信号转换成模拟信号输出

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

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

音频输入 流程图

音频输入应用 将音频信号

转换成指令信息

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

设备信息 通过外接设备录入

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

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

音频输入需要准备的参数

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  相关代码

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

音频输入需要的参数对照

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

实例化 AudioRecord

获得音频接口数据的对象

u  相关代码

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

获得音频输入 监听音频接口是否有输入的音频流

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

u  相关代码

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

解码音频流

u  相关代码

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

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

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

爱图腾科技 Next App Generation

谢谢!