工作随笔2018-03-06
2018-03-06 18:05
369 查看
今天的主要工作在于写播放器的音量调节,昨晚解决了多线程的问题。
是事件类型而非键值;一次按键会触发多个事件,我们只需要捕捉按下的事件即可,否则会导致异常按键的default分支多次执行。
看了一下,在output函数中判断flag改变输出值,可以打断播放,但是无法恢复
目前只能在一首歌放完后才会判断下一首是什么,比较合理的方法是,在播放过程中不断的判断当前歌曲,如果不一致,则跳出播放,改为播放新的歌曲。
说到底,用现成的函数,就无法掌控解码播放的全过程,不清楚其工作原理。
目前看到的暂停的修改方式是不断改continue打断input的解码
又看了一篇博客,加深了对机制的理解,考虑将input和output分离开
中间可以插入控制,即控制指令只在帧的间隔生效。
目前实现了播放和解码的分离,但是多曲连播不正常,原因待查
接手了查找程序崩溃原因的任务,拿到了core_dump和使用-g编译的gdb程序
发现崩溃发生在uClibc中,无法查看对应的库代码,也找不到对应的顶层代码
1.考虑先确认发生在哪个线程中,思路是程序初始化创建线程时,记录下对应线程号和功能供后续查看。【经确认,gdb中的线程号ID和实际的tid是不同的,暂时未找到如何一一对应的办法,需确认程序是否只在一开始的时候进行线程的创建——配网过程会起线程,配网结束则销毁,可确认并非该线程导致的错误】
2.因为使用了动态库,程序中没有对应的符号表,导致无法定位,考虑改用静态编译方法,需要准备好对应的静态库,若已有对应的静态库,则需要修改makefile文件。
目前已经有的线索只有该崩溃时间不定,已经确认该崩溃发生在网关模块
配网问题
失败以后
A:nr B:reboot C:firstboot D:修改config/wireless中的wifi信息
交叉测试A,0 AD,0 B,0 BD,0 C,1
对比了配网前后的wireless文件,发现存在三处不同:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/cc5e57bea59bce494c84166780531410)
第一处是auto的单引号有无
第二处 hidden是单双引号
第三处 ssid的顺序
从origin出发单变量依次全部排除
发现是脚本ssid和passwd反了,发现ios app 端写反了,导致ikcc端写反。
1.如何获取键盘输入?
方法是使用linux/input.h 用read /dev/input/event1的方式获取键盘事件,注意,event.type是事件类型而非键值;一次按键会触发多个事件,我们只需要捕捉按下的事件即可,否则会导致异常按键的default分支多次执行。
2.如何在播放过程中,实现播放器音量的调节?
查到一条指令amixer set Master XX,但这调节的是全局声音而非播放器音量。播放器修改音量需要调用scale函数,由于这部分层层嵌套调用,底层函数scale需要传新的参数时改动量大,而且部分顶层函数以函数作为参数,是黑箱的情况下其参数表难以擅自改动,解决办法是在对应的头文件中声明全局变量。3.如何在播放过程中实现暂停,播放,上一曲下一曲?
目前的机制是计算要播放的音乐,开始解码播放,完毕后计算下一曲应播放什么音乐,其缺点在于播放过程中无法利用键盘端的事件进行调节看了一下,在output函数中判断flag改变输出值,可以打断播放,但是无法恢复
目前只能在一首歌放完后才会判断下一首是什么,比较合理的方法是,在播放过程中不断的判断当前歌曲,如果不一致,则跳出播放,改为播放新的歌曲。
说到底,用现成的函数,就无法掌控解码播放的全过程,不清楚其工作原理。
目前看到的暂停的修改方式是不断改continue打断input的解码
又看了一篇博客,加深了对机制的理解,考虑将input和output分离开
中间可以插入控制,即控制指令只在帧的间隔生效。
目前实现了播放和解码的分离,但是多曲连播不正常,原因待查
接手了查找程序崩溃原因的任务,拿到了core_dump和使用-g编译的gdb程序
发现崩溃发生在uClibc中,无法查看对应的库代码,也找不到对应的顶层代码
1.考虑先确认发生在哪个线程中,思路是程序初始化创建线程时,记录下对应线程号和功能供后续查看。【经确认,gdb中的线程号ID和实际的tid是不同的,暂时未找到如何一一对应的办法,需确认程序是否只在一开始的时候进行线程的创建——配网过程会起线程,配网结束则销毁,可确认并非该线程导致的错误】
2.因为使用了动态库,程序中没有对应的符号表,导致无法定位,考虑改用静态编译方法,需要准备好对应的静态库,若已有对应的静态库,则需要修改makefile文件。
目前已经有的线索只有该崩溃时间不定,已经确认该崩溃发生在网关模块
配网问题
失败以后
A:nr B:reboot C:firstboot D:修改config/wireless中的wifi信息
交叉测试A,0 AD,0 B,0 BD,0 C,1
对比了配网前后的wireless文件,发现存在三处不同:
第一处是auto的单引号有无
第二处 hidden是单双引号
第三处 ssid的顺序
从origin出发单变量依次全部排除
发现是脚本ssid和passwd反了,发现ios app 端写反了,导致ikcc端写反。
相关文章推荐
- 工作随笔(1)
- 工作随笔-mysql
- 工作随笔
- [20110218]工作随笔
- 因为某种原因,又开始接触研发工作了。事情比较繁杂,写些随笔,权当是工作日记了。
- 生活随笔:1000元的工作你做吗?
- 20171209 生活随笔-让自己的工作和生活都能够有所好转
- [20110221]工作随笔
- 工作随笔——贰(关于字符串非空判断与数据库中日期时间问题)
- [20110315]工作随笔
- 海康威视网络监控摄像头常见设置-工作随笔
- 产品工作随笔(二)
- javaweb随笔(一)------struts工作流程
- 工作随笔---WiFi开发(4)---WIFISavedList类
- [工作随笔]关于马戏团的故事
- 工作随笔:SQL Server随机取数
- 工作随笔——Intellij_idea-14官方快捷键中文版
- 事关Animation Tree的工作随笔(二)
- [20110301]工作随笔
- 工作随笔——mysql子查询删除原表数据