std-microblock / BetterNCM

NCM 软件插件管理器
GNU General Public License v3.0
7.22k stars 369 forks source link

[功能请求] 支持Win10/Win11 System Media Transport Control 显示和控制播放 #73

Closed hv0905 closed 1 year ago

hv0905 commented 1 year ago

效果

System Media Transport Control是win10/11附带的系统级媒体控制接口,它可以在控制中心和锁屏界面显示类似如下的效果: image

相关资料

Microsoft Docs: https://learn.microsoft.com/en-us/windows/uwp/audio-video-camera/system-media-transport-controls 参考项目: https://github.com/Microsoft/Windows-universal-samples/tree/dev/Samples/SystemMediaTransportControls 参考项目2 (MPV扩展): https://github.com/datasone/MPVMediaControl

大概思路是用C#写一个后端与系统通信, 与插件使用websocket/匿名管道进行交互, 发送封面信息与指令

std-microblock commented 1 year ago

对C#不是很熟悉,先搁置一下,优先实现一下webplaying

Steve-xmh commented 1 year ago

另外补一下说明,SMTC 支持 WinRT 调用,可以用支持 WinRT 的编程语言来写(应该会方便一些?)

比如 Windows Rust

std-microblock commented 1 year ago

rust推销员史蒂夫(x

如果方便的话 大概确实会用rust

Steve-xmh commented 1 year ago

rust推销员史蒂夫(x

如果方便的话 大概确实会用rust

只要你愿意,我可以帮你折腾出 CEF 的 API(研究一下 Bindgen 之类的)

然后 BetterNCM 全体重构到 Rust(逃)

然后 BetterNCM 可以考虑支持 DLL 的载入,就能和各种语言原生对接了。

std-microblock commented 1 year ago

cef的api倒是不用了 考虑到这个插件的形式 还是继续cpp吧)

std-microblock commented 1 year ago

关于dll加载 既然想把这个咕了很久的issue捡起来 肯定是要做的 不过我是在想是做成api的形式还是直接在manifest里加 然后调用固定入口函数

std-microblock commented 1 year ago

L07YCS5RW`Q50 @1WMB74T image

std-microblock commented 1 year ago

}%GC `IIQLVPL6V7~X5~9WM

image

Thumbnail支持