重要bug记录
导唱功能:需求点分析:本地已下载歌曲播放,判断是否有音频原唱伴奏版权,无版权按钮显示“导唱”,有版权显示“播原唱”。
程序实现逻辑:
1.下载歌曲时调用一个歌曲信息接口,返回歌曲的一些属性信息,其中包括伴奏原唱版权,有版权下发1,无版权下发0.
2.客户端下载歌曲时,歌曲信息下载下来后会写入本地缓存cache中,当播放歌曲时从缓存读取歌曲信息,根据服务器下发的歌曲的属性值判断导唱按钮的显示。
问题现象:新下载的歌曲播放时,播原唱/导唱 功能按钮判断正确,当杀死app重启后再播放,判断就出问题。
原因分析:歌曲下载后只写入了缓存cache中,但未同时更新到数据库中。所以重启app后缓存被清除,本地已下载歌曲判断时取到了之前的值,导唱按钮就出问题了。
2.用户未登录账号进入直播间,在公屏中选择用户头像长按进行@操作,并发送消息。
问题现象:游客身份用户出现了可@用户并发言的问题,发出去后显示用户头像和null
原因分析:代码逻辑处理未判断用户为游客时屏蔽@操作
3.在线歌友状态更新的bug
问题现象:歌友A和歌友B是好友关系,歌友A在直播间时,歌友B查看在线歌友列表中会出现歌友A正在房间的状态。当歌友A异常杀死app或断网(即调用退出房间接口失败)后,歌友B查看在线歌友列表中仍显示歌友A在直播间中。
原因分析:因歌友A的异常离开房间,客户端未能正常调用接口上报状态。服务器无法正确判断该用户已离开房间
处理方案:服务器定时扫描所有用户在线的房间列表,处理掉不在线的
1.本地作品集封面显示花屏。手机性能差的上面易出现。bitmap多线程问题。
操作步骤:在本地作品集中不断的刷新列表,让每个视频的封面每次重新加载显示
问题现象:不断刷新读取封面图,会越来越模糊,图片数据丢失导致花屏
问题原因分析:程序机制是:列表中的视频封面默认读取cache中存储的一张.jpg格式的封面图,如果cache中没有就会去读取默认图。
1.每次刷新列表,就会从cache中读取对应的封面图,当手机性能比较差,不停的刷新就会导致线程繁忙,每次读取的cache中图片文件当处于还在写入的状态时,此时就读取出来是不完整的bitmap data,就显示花了。
2.刷新列表读取缓存中的图片,会*98%进行压缩存储一个新图来做显示,同时保存了压缩后的图到缓存,导致下次刷新读取缓存取的是压缩后的,如此循环多次刷新,读取的图会越来越小不清晰,最后全花了。
解决办法:1.读取缓存时加判断,正在写的文件不读取。
2.增加remove,每次显示完后保存的那张压缩图会被移除,下次刷新重新读取缓存中的图片(未被压缩)。

重要bug记录的更多相关文章
- 【bug记录】OS Lab3 踩坑记
OS Lab3 踩坑记 Lab3在之前Lab2的基础上,增加了进程建立.调度和中断异常处理.其中测试包括进程建立以及进程调度部分. 由于是第一次做bug记录,而且是调试完bug后再做的记录,所以导致记 ...
- 微信小程序bug记录与解决
微信小程序bug记录 textarea textarea在模拟器上没有padding,可是在真机上会自带padding,而且在外部改不了,并且在安卓和IOS上padding还不一样 第一张图是在开发工 ...
- BUG 记录:移位运算与扩展欧几里得算法
BUG 记录:移位运算与扩展欧几里得算法 起因 上个月就开始打算用C++写一个ECC的轮子(为什么?折磨自己呗!),奈何自己水平有点差,拖到现在才算写完底层的大数运算.在实现欧几里得算法的时候,我开始 ...
- ArcGIS 10.1 BUG记录
声明:笔者使用ARCGIS 10.1 XXX版,YYY版可能没有此处描写的问题 1. 关于注册数据库 发布启用FA的服务,需要为数据库进行ArcGIS Server注册,若通过ArcMap执行注册,会 ...
- 前端bug记录---不定时更新
在项目的开发中难免遇到各种各样的bug,我觉得还是有必要记录一下的,方便日后查询. safari window resize 为满足日常轮播需求,做一个符合当前业务的轮播插件,其中需要考虑windo ...
- bug记录-setTimeout、setInterval之IOS7
本篇文章主要讲查找并分析bug的思路,相关的函数不是本文的重点. 众所周知,setTimeout和setInterval是用来做延迟调用以及周期性调用的方法,他们支持的参数都差不多. setTimeo ...
- CDH:5.14.0 中 Hive BUG记录
CDH5.14.0使用的HIVE版本: 自建表log: +----------------------------------------------------+--+ | createtab_st ...
- 【bug记录】OS Lab4 踩坑记
OS Lab4 踩坑记 Lab4在之前Lab3的基础上,增加了系统调用,难度增加了很多.而且加上注释不详细,开玩笑的指导书,自己做起来困难较大.也遇到了大大小小的bug,调试了一整天. 本文记录笔者在 ...
- 前端bug记录
记录一下前端入门时期遇到的一些bug. 1.同步.异步问题 背景:Javascript语言的执行环境是单线程.即一次只能完成一个任务.若有多个任务则需排队逐个执行——前一个任务完成,再执行后一个任务. ...
- dubbo服务使用spring-data-mongodb进行时间查询的bug记录
一.项目情况:spring-boot+mongodb+dubbo. 二.问题:调用dubbo服务并使用spring-data-mongodb的gte,lte时间段比较查询, @Reference(re ...
随机推荐
- Docker入坑指南之EXEC
容器启动之后,如果我们需要进入容器内修改配置,比如mysql修改启动配置 我们启动的附加参数是不是shell,这个时候就可以用docker exec了,docker除了对image参数以外,大部分命令 ...
- Nginx的基本使用和配置
2.1什么是Nginx Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师伊戈尔·西索夫(Igor Sysoev)所开发,官方 ...
- Python | 面试的常客,经典的生产消费者模式
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第23篇文章,我们来聊聊关于多线程的一个经典设计模式. 在之前的文章当中我们曾经说道,在多线程并发的场景当中,如果我 ...
- 几行python代码实现钉钉自动打卡,网友:终于告别缺勤了
前言 众所周知因为疫情的原因大家都没有办法上学和上班,“钉钉”这个app起到了重大的作用.学校为了学生成绩开启“钉钉”之路.老师也成一个“合格”的主播,感谢XXX童鞋的礼物.666扣起来 老师为了营造 ...
- 仅需1秒!搞定100万行数据:超强Python数据分析利器
前言 使用Python进行大数据分析变得越来越流行.这一切都要从NumPy开始,它也是今天我们在推文介绍工具背后支持的模块之一. 2 Vaex Vaex是 一种更快.更安全.总体上更方便的方法,可以使 ...
- Python turtle库的画笔控制说明
turtle.penup() 别名 turtle.pu() :抬起画笔海龟在飞行 turtle.pendown() 别名 turtle.pd():画笔落下,海龟在爬行 turtle.pensize(w ...
- object detection 总结
1.基础 自己对于YOLOV1,2,3都比较熟悉. RCNN也比较熟悉.这个是自己目前掌握的基础2.第一步 看一下2019年的井喷的anchor free的网络3.第二步 看一下以往,引用多的网路4. ...
- C#LeetCode刷题之#933-最近的请求次数(Number of Recent Calls)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4134 访问. 写一个 RecentCounter 类来计算最近的 ...
- Vue 自定义VueRouter-简版
主要是思路,自己定义组件的时候可以借鉴 Vue-router的 类图 name options: ==> 记录构造函数中传入的对象,在 new VueRouter的时候传了一个对象( route ...
- python设计模式之原型模式
python设计模式之原型模式 对于原型模式而言,其中最主要的部分就是关于一个对象的复制,其中就包含两个方面:1.浅复制:2.深复制.具体的区别请看我相关的随笔.这里简略的说明一下,浅复制就等于对 ...