视频播放是不是可以和mplayer集成? 类似smplayer和mplayer的关系?
不会的。
xwidget 的设计理念从一开始就是错的,因为Emacs X11的代码和架构根本不适合渲染多媒体的界面。
因为 mplayer/mpv/vlc 都会直接渲染 xwindow, 单独运行没有问题,但是和EAF集成以后,就显示不了画面了,所以我暂时用 HTML5 video tag 来实现视频播放。
以后再想想怎么集成 mpv/vlc.
目前就发现 mpv/vlc 这种需要直接渲染的程序没法集成,其他的原理的程序都应该可以集成。
集成非常简单:
subprocess.Popen([“mpv”, “video_path”, “–wid=xid”]) 把 xid 换成QWidget 的xid就直接嵌入了,只是郁闷的是嵌入以后,EAF view.py 抓不到 mpv xwindow 的画面。
如果是那样的话,代码搬过来,稍微改两行就可以了。
视频播放好像是用了显卡加速什么的, 想起来windows上有些截图工具截不到视频画面
其实就是 Python 的 XComposite 支持不够好,如果用 XComposite 技术,什么窗口都可以截取。
KDE/Gnome/DDE 的 Alt + Tab 就是用的 XComposite 技术。
这样的话,可能像邮件,irc,customize等应用都可以用pyqt实现更现代的GUI,前景光明。我唯一担心的是完全用python实现的插件会不会造成Emacs的分裂。
哈哈哈,这么担心的话,大家可以做一个 elisp-qt 出来,就不分裂了。
如果未来切换但wayland, 会有什么影响?
那你就在 wayland 里面享受 wayland,然后眼巴巴的看着我们在 x11 里面很爽的使用浏览器, 哈哈哈。
elisp-qt有没有可行性? 工作量大不大?
不知道能不能这一个elisp到 pyqt的转换器?
工作量当然大了,我选择pyqt的理由,主要是python入门门槛很小很容易写,而且python很容易使用别的各种各样的库。
elisp-qt 只是画图形,如果真的要这么纯粹,几乎要elisp binding 所有的库,那个工作量更大。
用Qt/C++开发,库的支持最多,但是每次都要编译一下才能实验想法,完全没法头脑风暴的写代码。 用Elisp来开发图形程序,就是灾难,因为你要做啥事情之前都要先造一个库,就像十年前我用Haskell写Manatee一样,写任何功能,都要先把Haskell binding 搞定,太痛苦了。
PyQt 是一个很好的平衡。
没有必要,现在已经是DBus直接通讯了,已经可以做到 elisp <-> python 双向调用了。
嗯,未来这个库准备进elpa吗? 如果有这个打算,就早点进,不然以后会有很多麻烦
另外,readme上加一个gif屏幕录像吧,很容易看明白操作过程
Wayland 虽然号称要完全取代 X11,结果自己都把 Xlib 做依赖。