Open BakerBunker opened 6 months ago
@BakerBunker 桌面端实现并不容易 但也许将来会做吧
这里有个用cpp写的弹幕->ass的代码,可能比较好bind到rust上 https://github.com/HFrost0/danmakuC/blob/main/danmakuC/csrc/ass.cpp 这样是不是就可以
@BakerBunker 后续不会使用裸 mpv 窗口 并且可能会引入 gst 如果你有能力在 gtkwindow 下实现 nested subcompositor 加入弹幕渲染层,欢迎随时 pr
@tsukinaha 抱歉,这个确实超出能力范围了😂
大佬,更新了0.49版本发现了一些问题,软件调用mpv播放器会缺失一些功能,比如没有全屏按键,没有进度条显示。
@baize0rzj2 把mpv文件夹完全删除,重新用新版本的覆盖
@baize0rzj2 请不要占用别人的 issue
@baize0rzj2 把mpv文件夹完全删除,重新用新版本的覆盖
感谢,已经解决了
@baize0rzj2 请不要占用别人的 issue
好的,下次会注意
说一下我的想法 现在的渲染画面由 GtkGLArea 呈现
因为后续我想使用 wid 在 x11 表面上渲染,所以不考虑在这个 GLArea 中合成弹幕。
在 MPV 中以字幕的方式挂载弹幕我觉得可操作空间有点小,所以我想在 Overlay 中再渲染一层 GLArea。
主要有以下两个问题
目前其他功能都已经基本实现了,所以我想接下来考虑弹幕的问题。如果有想法的话请随意提出 PR。
@tsukinaha 抱歉,这个确实超出能力范围了😂
可以试试我的mpv danmaku插件 ,按d根据视频标题来对弹幕进行匹配,需要对tsukimi项目进行一些修改,保证mpv的media-title设置正确,下面是修改:
diff --git a/src/ui/mpv/mpvglarea.rs b/src/ui/mpv/mpvglarea.rs
index c430854..18a9f6a 100644
--- a/src/ui/mpv/mpvglarea.rs
+++ b/src/ui/mpv/mpvglarea.rs
@@ -116,6 +116,10 @@ impl MPVGLArea {
mpv.pause(false);
}
+ pub fn set_media_title(&self, title: &str) {
+ self.imp().mpv.set_media_title(title)
+ }
+
pub fn add_sub(&self, url: &str) {
self.imp().mpv.add_sub(url)
}
diff --git a/src/ui/mpv/page.rs b/src/ui/mpv/page.rs
index 9361af8..edabd71 100644
--- a/src/ui/mpv/page.rs
+++ b/src/ui/mpv/page.rs
@@ -265,6 +265,7 @@ impl MPVPage {
imp.suburl
.replace(suburi.map(|suburi| EMBY_CLIENT.get_streaming_url(&suburi)));
imp.video.play(&url, percentage);
+ imp.video.set_media_title(&name);
imp.back.replace(back);
obj.handle_callback(BackType::Start);
}
diff --git a/src/ui/mpv/tsukimi_mpv.rs b/src/ui/mpv/tsukimi_mpv.rs
index 2f130c7..ab39425 100644
--- a/src/ui/mpv/tsukimi_mpv.rs
+++ b/src/ui/mpv/tsukimi_mpv.rs
@@ -164,6 +164,10 @@ impl TsukimiMPV {
self.ctx.replace(Some(ctx));
}
+ pub fn set_media_title(&self, value: &str) {
+ self.set_property("options/force-media-title", value);
+ }
+
pub fn set_position(&self, value: f64) {
self.set_property("time-pos", value);
}
这是效果
Current application version
0.4.7
Feature Request
参考现有的一些Emby弹幕实现,为播放器添加弹幕支持
References