babel/蓝田
前置操作: A
, B
, C
同时打开应用,A
启动内核服务,A
B
C
连接 A
内核即可加入会话
- 文件传输助手
可以在会话中发送文件/文字,发送的文件点击可下载 - nas
可以访问
A
中的文件
- 视频文件点击即可在应用内播放
- 文件下载
- 文件上传
可以访问
A
连接的外接usb存储设备中文件 - 视频观看
- 文件上传
- 文件下载
- 工作/学习陪伴
- 循环播放《名侦探柯南》前500集(自用)
- 支持自定义数据源
- backend
- phone-monitor-backend: rust写的服务端,作为服务器(废弃)
- rust-server-android-lib: rust写的服务端,然后打包成so给Android用
- frontend
- swithunApp:主角
- myDependencyBuild: 需要自己编译的一些第三方依赖
- myIjkplayer:app使用的视频播放器
- myPracticeDemo:测试一些方案
- done
- 拆分前后端为两个app
- 坑
- exfat文件系统硬盘还是无法支持
- done
- 能观看usb连接的硬盘里的视频里,但是多次跳转时间会崩溃 借助asyn stream实现
- done
- 上传文件解决崩溃问题 -> server响应收到某个 package 然后 client 发下一个package
- 提升上传文件速率
- done
- 解决自动下一集画面不会自动更新
- done
- 会话可以发送文件,下载会话文件
- 整理Android代码,迁移MVI架构,View和Viewmodel间已经实现单向数据流,但是viewmodel间交互还需要思考一下,目前是通过public方法,这样会违反单向数据流的设计原则,考虑通过Action实现,在Action中添加callback,我在思考这样是否违背原则,我倾向于不违反,reduce作为对viewmodel的数据,uiSateFlow作为viewmodel的输出,前者理解为request,后者理解为response,在Action中添加callback也可以理解为response,但是这样感觉不太收敛。
- flutter 成功对接 rust(初试)
- done
- 成功使用websocket分片发送文件到服务器,服务器保存文件,但是后续需要增加出错重传的处理。
- done
- 升级
compose
依赖之后,AndroidView
导致其他view
黑屏。 - 并发
ping LAN
,加速局域网内server
查找。
- 升级
- done
- 搜索局域网内启动的server,目前使用ping过滤有LAN内设备ip,太慢需要优化
- 界面布局调整
- done
- 支持播放server的视频,随意跳转 实现跳转: Content-Range
- done
- client
-http request->
server-websocket->
android-websocket->
server-http response->
client
- client
- done
- 将rust服务端成功打包成so,Android app可作为服务端
- done
- Android端开启服务,可以分享文件,ijkplayer可以在线播放分享的文件, 参考文章搭建Android上的服务器 实现"隔空取物"
- bug
- FTP协议:FTP服务可以部署,但是ijkplayer对于FTP协议支持有问题,尝试重新编译仍然失败,目前改成使用HTTP协议获取视频文件
- HTTP协议:Android作为服务端,给服务端上传文件,如何获取还有问题,目前先使用FTP上传文件
- mkv电影播放卡顿/卡住,不确定是大文件造成(10+GB)还是MVK文件造成
- todo
- 文件列表展示
- done
- 切到后台,自动暂停
- 循环播放前500集
- bug
- 前后台切换,黑屏只有声音
- done
- 能接收电脑复制的文本,app端显示翻译
- 可以播放番剧
- bug
- surfaceView保存在静态变量导致内存泄漏
- 播放完成会crash
- 坑