Android 随笔

AudioRecord 管理音频对象
AudioRecord 此类一共提供了三个方法用来获取声音数据
构造一个AudioRecord对象,齐中熙要的最小录音缓存buffer大小可以通过getMinBufferSize 方法得到。如果buffer容量过小,将导致对象构造的失败。
初始化一个buffer该buffer大小等于AudioRecord用来读取数据的buffer的大小。
开始录音
创建一个数据流,一边从AudioRecord中读取声音数据到初始化的buffer,一遍将buffer中的数据导入到数据流。
关闭数据流
停止录音

private AudioRecord audioRecord = null;  // 声明 AudioRecord 对象
private int recordBufSize = 0; // 声明recoordBufffer的大小字段

recordBufSize = AudioRecord.getMinBufferSize((int)(采样率),(int)(描述音频通道的配置),(int)(音频数据的格式));
audioRecord = new AudioRecord(默认,采样率,描述音频通道的配置,音频数据的格式,数据buffer最小值);
FIleOutputStream out = new FileOutPutStream(filename);
byte[] byte = new byte[recordBufSize];
while(isRead){
int read = audioRecord.read(byte,0,recordBufSize);
if(read>0){
 try{
 out.write(byte)
 }
 catch(IoException e){
 }
}o 
}

RXAndorid 使用
Observable.create(emitter -> {})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
EditText 默认不显示光标,点击显示光标

int count = 0;

    mEditText.setCursorVisible(false);
    mEditText.setOnTouchListener((v, event)-{   
    count++;
    if(count == 2){
    mEditText.setCursorVisible(true)
   }
    })        

更改Android apk 输出路径

 newName = "KPC_Smart_${defaultConfig.versionName}_i5_${BUILD_TYPE}"
            variant.getPackageApplication().outputDirectory = new File(output.outputFile.parent.replace("release", "") + newName)

Android 自定义控件 需要在res目录下新建attrs文件
在 attrs文件下进行自定义属性 示例如下

<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- HeaderBar自定义属性 -->
<declare-styleable name="HeaderBar">
    <attr name="isShowBack" format="boolean"/>
    <attr name="titleText" format="string"/>
    <attr name="rightText" format="string"/>
</declare-styleable>
</resources>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值