Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings
amll-dev

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

AMLL Player 插件扩展范围拟定#250

Steve-xmh started this conversation inIdeas
Discussion options

如题,本讨论主要围绕如何给 AMLL Player 设计插件系统。
目前已知情况如下:

  • 会考虑使用Extism 作为插件系统的框架(因复杂度不考虑添加)
  • 将会分为 Rust 端插件和 JavaScript 端插件
    • JavaScript 端可以扩展和前端页面有关的大部分东西,同时向 Rust 播放后端做简单播放交互
    • Rust 端可以扩展音乐播放源,或者访问系统接口提供更多能力

词汇定义:

  • 前端:指 AMLL Player 的窗口内容,属于浏览器内的一部分,可以使用 JavaScript/HTML/CSS 等技术栈
  • 后端:指承担音乐播放和前端窗口管理和消息管理的原生代码,使用 Rust 语言编写

目前需要考虑的问题:

  • 需要开放多少功能或接口?
    • 前端可以开放哪些接口?
    • 后端可以开放哪些接口?
  • 如何加载/读取一个插件?
  • 插件接口规范?
You must be logged in to vote

Replies: 3 comments 1 reply

Comment options

前端

  • UI预留相应的插件区域
  • 设置页面预留相应的管理区域
  • 允许插件在窗口以外创建显示区域

后端

  • 暴露Core模块中的基本信息,如歌词文本、播放时间等
  • 有限度地开放网络访问功能
  • 接受外部参数调用以使文件修改能够即时生效
  • 限定插件作用域

加载/读取插件

  • 只能从本地加载而不能加载远程代码
You must be logged in to vote
1 reply
@Steve-xmh
Comment options

Steve-xmhSep 16, 2024
Maintainer Author

  • 前端[3]:创建的窗口考虑到跨平台的要求,只能为其创建一个 WebView 窗口,并且要准备接口提供交互(可能可以考虑 VSCode 扩展的实现方式?)
  • 后端[3]:理论可以考虑实现软件自动重启,但是难以实现热重载(考虑到插件的潜在侵入性不一定能够做到完全释放插件产生的资源)
Comment options

前端

  • 封面图/视频接口(可以被插件控制)
  • 歌词接口(由AMLL Player提供从本地/ttml-db匹配歌词的函数方法,以及提供类似props的可让插件赋值的接口)
  • 歌曲信息接口(由插件控制歌曲名,作者,专辑等)
  • 时间轴接口(由插件来控制时间轴显示的歌曲时长以及当前播放时间)

后端

  • 提供callback能力实现与spotify等软件的api对接
  • 获取smtc协议的数据
You must be logged in to vote
0 replies
Comment options

后端

  • 提供hook其他软件的能力
You must be logged in to vote
0 replies
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Category
Ideas
Labels
None yet
4 participants
@Steve-xmh@SteamFinder@Xionghaizi001@Aurora-Nasa-1

[8]ページ先頭

©2009-2026 Movatter.jp