Open
Description
用ffplay可以做跨平台音乐播放 ffplay -nodisp -autoexit docs/assets/showoff-1.mp4
。可以在插件active的时候把预先静态编译好的ffplay下下来。目前在NPM上面只看到一个这个https://www.npmjs.com/package/ffbinaries 不过这个会把ff全家桶全下下来。目前来看只需要ffplay就可以了,可以参考https://github.com/eugeneware/ffmpeg-static 用Github Action把各个平台的ffplay静态编译出来。vscode的tabnine.tabnine-vscode
AI代码补全就是这么干的,把预编译好的binary下下来直接执行。
经过调查发现已经有现成的FFmpeg各个平台静态编译版本,可以直接下载:https://ffmpeg.zeranoe.com/builds/
不过静态编译的ffplay大约有60MB,进程启动速度会比动态编译的慢3%
目前调研发现vscode播放音乐的方案大致有以下几种:
- 调用命令行工具(
afplay
,mplayer
,aplay
...):缺点是不同平台支持的命令行工具不太一样 - 替换vscode的ffmpeg的动态链接库:nondanee.vsc-netease-music:缺点是每次升级vscode都需要手动修改动态链接库
- 调用其他音乐播放器客户端的API:缺点就是必须安装相应的客户端程序
解决方案:
在插件初始化的时候,把相应的ffplay静态编译程序(静态编译的程序不依赖动态库,所以只需要一个文件即可执行)下下来,在需要播放音乐的时候直接调用该命令行程序。
Metadata
Assignees
Labels
No labels