树莓派动态域名解析
因为想想买台VPS玩玩,跑个Flask应用或者当数据库用用, 结果逛了一圈,买了个5刀一个月的低配VPS, 结果分配的IP均处于长城外,而且其他阿里云或者腾讯的实在是买不起,所以放弃了这个想法.想起之前买的树莓派也有远程SSH过, 但是因为室友的联通网每天都强制断网而且IP地址每天都在变,所以直接用IP连上去会很麻烦.所以决定找找看有没有什么能够动态更新IP的方法.幸运的是前人已经完成了这项工作.
因为阿里云提供了更新DNS的API,所以直接使用这个API即可.思路就是
程序开机自启->启动应用
树莓派获取自己IP->准备更新
调用阿里云的API->进行更新
随时随地通过域名SSH上树莓派123456789101112131415161718...
Code FFmpeg on Android
移植FFmpeg到Android上
因为Mix Music解码的需求,所以得选择合适的解码工具.尝试了4种解码方式,最后还是FFmpeg的效果最好
MediaCodec配合MediaExtractor进行解码操作
这样的话,默认情况下MediaExtractor每次只传输1KB左右的数据给MediaCodec,速度实在是太慢
MediaCodec不用MediaExtractor进行解码操作
在给Bytebuffer填充数据后,MediaCodec处理数据的时候总出错,大概是因为没有跳过非帧数据的部分
使用LAME进行解码操作
不幸的是LAME中的hip_decode()也是只能处理帧数据,需要手动跳过非帧数据.当手动跳过非帧数据后,最终发现速度并没有提升多少(尽管已经设置了...
Code Kotlin学习笔记0x05
面向对象编程类与构造函数声明类和大部分语言类似,Kotlin使用class作为关键字
1class World
这样我们就声明了一个World类
构造函数在Kotlin中一个类只能有一个主构造函数和至少一个的次构造函数
1open class Student constructor(var name: String, var age: Int):Any(){}
与普通属性一样,主构造函数中声明类型的属性是可变(var)或只读(val)的主构造函数中不能包含任何的代码,初始化的代码需要放到以init关键字作为前缀的初始化块中
12345open class Student constructor(var name: String, var age: Int):Any...