From 05322ab0b3fd2a60c372f853a217d0f61b359f0c Mon Sep 17 00:00:00 2001 From: aynakeya Date: Wed, 22 May 2024 01:30:12 +0800 Subject: [PATCH] add backward compatibility for mpv client version 1.109 --- internal/player/mpv/mpv.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/internal/player/mpv/mpv.go b/internal/player/mpv/mpv.go index f2e7a22..f665bc1 100644 --- a/internal/player/mpv/mpv.go +++ b/internal/player/mpv/mpv.go @@ -18,6 +18,7 @@ import ( var running bool = false var libmpv *mpv.Mpv = nil var log logger.ILogger = nil +var mpvClientVersion uint32 = 0 func SetupPlayer() { running = true @@ -29,6 +30,8 @@ func SetupPlayer() { log.Error("initialize libmpv failed") return } + mpvClientVersion = mpv.ClientApiVersion() + log.Infof("libmpv version %d", mpv.ClientApiVersion()) _ = libmpv.SetOptionString("vo", "null") log.Info("initialize libmpv success") registerHandler() @@ -211,7 +214,13 @@ func registerCmdHandler() { cmd := []string{"loadfile", mediaUrl.Url} if media.Info.Cover.Url != "" { // add media cover to video channel. - cmd = append(cmd, "replace", "external-files-append=\""+media.Info.Cover.Url+"\",vid=1") + // https://mpv.io/manual/master/#command-interface-[]]] + // api changes after client version 2.3 (0.38.0 + if mpvClientVersion >= ((2 << 16) | 3) { + cmd = append(cmd, "replace", "0", "external-files-append=\""+media.Info.Cover.Url+"\",vid=1") + } else { + cmd = append(cmd, "replace", "external-files-append=\""+media.Info.Cover.Url+"\",vid=1") + } } log.Debug("[MPV PlayControl] mpv command", cmd) if err := libmpv.Command(cmd); err != nil {