是否可以创建一个基于浏览器的 html/javascript 音频播放器来处理大多数 MPRIS 命令?
Is it possible to create a browser based html/javascript audio player, that handles most of the MPRIS commands?
我正在尝试创建一个可以处理大多数 MPRIS 命令的音乐播放器。
在播放 youtube 期间,playerctl 列出 firefox 播放器 (firefox.instance{id}),如果它有播放列表,我可以使用 $ playerctl -p firefox.instance{id} next
跳到上一个/下一个项目.这也适用于 chrome。
我想在 React.js 应用程序中实现相同的行为,但首先我要寻找基于 html/javascript 的解决方案。
我猜测这是不可能的(不使用浏览器插件),因为 firefox 为每个受支持的网站手动实现了这一点。
可能是我做错了,但是无论我怎么搜索都找不到这方面的信息。
感谢阅读/评论!
Media Session API 似乎很好地解决了这个问题:https://developer.mozilla.org/en-US/docs/Web/API/Media_Session_API
每次 $ playerctl -p firefox.instance{id} next
为 运行 时(或任何其他 MPRIS 客户端调用 'next' 时,此事件侦听器 运行s,例如 android 上的 KDE 连接):
navigator.mediaSession.setActionHandler('previoustrack', function() { /* Code excerpted. */ });
它甚至适用于 chrome(skipad
事件除外)。更多信息可以在我上面链接的 MDN Web 文档 'Media Session API' 页面上找到。
我正在尝试创建一个可以处理大多数 MPRIS 命令的音乐播放器。
在播放 youtube 期间,playerctl 列出 firefox 播放器 (firefox.instance{id}),如果它有播放列表,我可以使用 $ playerctl -p firefox.instance{id} next
跳到上一个/下一个项目.这也适用于 chrome。
我想在 React.js 应用程序中实现相同的行为,但首先我要寻找基于 html/javascript 的解决方案。
我猜测这是不可能的(不使用浏览器插件),因为 firefox 为每个受支持的网站手动实现了这一点。
可能是我做错了,但是无论我怎么搜索都找不到这方面的信息。
感谢阅读/评论!
Media Session API 似乎很好地解决了这个问题:https://developer.mozilla.org/en-US/docs/Web/API/Media_Session_API
每次 $ playerctl -p firefox.instance{id} next
为 运行 时(或任何其他 MPRIS 客户端调用 'next' 时,此事件侦听器 运行s,例如 android 上的 KDE 连接):
navigator.mediaSession.setActionHandler('previoustrack', function() { /* Code excerpted. */ });
它甚至适用于 chrome(skipad
事件除外)。更多信息可以在我上面链接的 MDN Web 文档 'Media Session API' 页面上找到。