Skip to content
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

关于 FeelUOwn 移动端 #804

Open
cosven opened this issue Feb 24, 2024 · 1 comment
Open

关于 FeelUOwn 移动端 #804

cosven opened this issue Feb 24, 2024 · 1 comment

Comments

@cosven
Copy link
Member

cosven commented Feb 24, 2024

  • 作者:@xxx
  • 创建时间:2024-02-24 11:50
  • 最近更新:2024-02-24 11:50
  • 最新状态:

简介与背景

每隔一段时间就会遇到 “是否支持移动端”、“移动端用哪个框架比较好”的问题。这里创建一个 issue,把一些想法和讨论给记录下来。

关于 “FeelUOwn 移动端“,有好几个话题可以讨论

  1. 是否要支持移动端?
  2. 假设支持
    1. 是基于现有的 FeelUOwn 代码开发,还是另起炉灶?
    2. 如果基于现有代码,用什么框架比较好?(比如 QML, Flutter 等)
    3. Client + Server 架构来支持移动端怎么样?(部署一个 feeluown 当作 data API)
  3. 假设不支持?

2.2 问题调研记录

这一小节之讨论 2.2 这个问题。

现有代码大体可以分为四大模块:

  1. UI
  2. library: 各个音乐平台的接口,以及抽象
  3. player: 播放媒体资源
  4. server: 提供 rpc 接口,和 nowplaying 集成等

如果要支持移动端,能够服用的主要是 library 模块,server 的 rpc 模块可能也有用。其它模块是无法复用的。现在是 Python 编写的,而 Python 要在 iOS 和 Android 上运行,都要花不少功夫。

看了几个选项

  1. QML + Pyside6 可以部署到 Android(看起来不能部署到 iOS)
  2. flet + python + mpv (flet 是基于 flutter 的封装)
  3. flutter + python + mpv

对于 2 这个选项,看了看 flet 的文档,本地也简单尝试了一下。总的来说,感受是能用,但目前肯定要踩很多坑。并且 UI 可定制程度是一个潜在的问题(风险)。具体来说,目前的主观感受如下:

  1. flet 确实可以把 python 打包到安卓上去运行,也能打包到 iOS 上运行
  2. flet gallery 里面的例子不是很多,例子的美感感觉一般(很主观的感受)
  3. flet 目前有一些打包 python 到安卓的例子,但没有一步一步的操作文档。
    如果想把 feeluown 的 library 用 flet 打包,估计要踩一些坑,但感觉是能行的。
@cosven
Copy link
Member Author

cosven commented Feb 25, 2024

其它模块是无法复用的

player 模块可能也能复用大部分。flet 团队的 media_kit 也是基于 libmpv 实现的。
https://pub.dev/packages/media_kit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant