New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request] 希望可以添加在线朗读的离线预加载功能 #2071
Comments
这样占用手机存储会非常大,目前是缓存一章的音频 |
咦?已经可以缓存一章了吗可以告诉我在哪里缓存吗。这个我知道,不过按照我的使用来说,我在tts上设置的码率比较低,可以保证一句话只有几十kb这样子。占用存储并不是太多。而且这个可以给个提示,表明会占用比较大的内存。就像很多人会下载视频看一样。用户可以根据自己手机内存大小来决定要不要缓存呀,至少我手机256GB觉得应该还是可以缓存个几百章小说的 |
是这样的,我准备自己添加一下这个功能。但是整个app还是比较复杂的,一时间不太确定各个模块之间的关联。现在是知道这些该怎么做,但是不清楚该在哪里添加模块。所以想作者能够帮忙列出有哪些模块我需要改动和添加的。想必作者对整个APP应该是非常熟悉的了,稍微思考一下就能够给出大概思路了。 |
io.legado.app.service.HttpReadAloudService |
啊,是我没说清楚,我是想搞成和离线下载章节以便于没网的时候看小说一样,搞出来个离线下载听书内容,没网的时候可以继续听书这样,所以需要界面进行操作,比如开始缓存和停止缓存,以及进阶的选择哪些章节缓存,还有显示到底哪些章节已经缓存了等等 |
io.legado.app.ui.book.cache.CacheActivity |
好的,其他还有什么细节吗,比如缓存了之后应该会把已缓存的章节保存在数据库里面吧,这个数据库操作是在哪里完成的 |
没有数据库,这个是靠计算阅读文本的md5然后拼出路径来的。 |
好家伙,为什么要过滤掉呀,是不是暂时只开发了小说缓存功能。。另,这个音频我也不清楚,我是直接点进去发现没有云符号的点开都是可以直接播放的所以想着应该是下载下来了,就是不知道下哪里去了 |
更正,我断网试了一下,确实只缓存下来了url |
是的,音频只缓存了地址,所以过滤掉了 |
我暂时放弃写这个功能了。ReadAloudService是单线程的,和下载器的concurent并发严重冲突。(下载的内容混乱,或者干脆没下完就跑到下一章了)其中应该也有一些异步的问题。我想让它异步等待小说文本和声音一起下载完再下载下一章,但是基本上就是小说文本下载完了就下一章了。对于界面完全不了解,本来打算借用本来就有的缓存功能勉强实现一下的。但是发现我还是技术力不够。加上我对这个应用的异步处理不太了解。所以打算暂时放弃了。 大佬们如果有空闲时间可以帮我把这个功能实现一下吗,还是很想要这个功能的。过几天我再看看有什么思路吧 @gedoor @821938089 |
由于长期没有状态更新,该问题将于5天后自动关闭。如有需要可重新打开。 |
功能描述(请清晰的、详细的描述你想要的功能)
朗读分为系统离线朗读和在线朗读。离线的tts限于处理器性能等原因通常效果不尽如人意。在线的tts比如微软tts就可以达到很好的效果。
然而在线tts的性能会因为网络原因使体验感极差,比如突然网卡了,或者某个地区访问国外tts服务延迟非常大(会导致读完一句话之后要等好久才有第二句),又比如上飞机没网了就用不了了。
所以我在想tts既然是请求完了得到一段mp3或者是wav等音频文件,那何不写一个和离线下载章节一样的功能,按照顺序把请求的音频文件保存下来呢,这样也不会因为网络波动导致每一句话直接都要等上一会,在没有网络的情况下也可以获得在线版的良好体验。
期望实现方式(阅读应该如何实现该功能)
附加信息(其他的与功能相关的附加信息)
效果演示(可以手绘一些草图,或者提供可借鉴的图片)
The text was updated successfully, but these errors were encountered: