簡介
樂樂音樂Compose-Desktop版主要是基于Compose-Desktop框架和musique開發(fā)的音樂播放器,它支持lrc歌詞和動感歌詞(
ksc歌詞、krc歌詞、trc歌詞、zrce歌詞和hrc歌詞等)、多種格式歌詞轉(zhuǎn)換器及制作動感歌詞、翻譯歌詞和音譯歌詞。
編譯環(huán)境
ideaIU-2024.1.4、JDK21
參考地址
musique音頻播放器
桌面歌詞窗口事件穿透
窗口
Compose Desktop 初體驗
問題
-
Failed to check JDK distribution: 'jpackage.exe' is missing JDK distribution path:
確保 Build, Execution, Deployment -> Build Tools -> Gradle 中設(shè)置了正確的 JDK。 -
WebView問題
之前想用JavaFx的WebView,但是需要使用完整版本的JDK,并且實現(xiàn)后的效果不是好理想,需要手動去隱藏這個WebView。 build.gradle.kts中使用systemProperty來添加參數(shù)和在main.kt文件中使用,導(dǎo)致打包后exe文件打不開。
createDistributable時卻少java.sql,可在nativeDistributions中modules.add("java.sql")
歌詞顏色上下漸變時,drawText在使用新創(chuàng)建的textMeasurer會讓文本只顯示白色,使用textMeasurer生成的textLayoutResult則正常。
musique直接用curPlaySample,歌詞會出現(xiàn)閃爍情況,采用獲取AudioOutput位置解決。
-
桌面歌詞窗口設(shè)置是透明,歌詞鎖定時鼠標(biāo)事件無法穿透給下層的窗口,可以考慮去掉compose,使用原生的JavaSwing代碼來實現(xiàn)。另外一種方式是通過設(shè)置相關(guān)系統(tǒng)參數(shù)。
System.setProperty("compose.swing.render.on.graphics", "true")
System.setProperty("compose.layers.type", "COMPONENT")
歌詞轉(zhuǎn)視頻
FFmpeg插件已經(jīng)不能用,目前只實現(xiàn)了歌詞轉(zhuǎn)圖片,由于生成圖片時,是根據(jù)1000/幀率的時間間隔來生成的,所以這里幀率取能被整除的(200,125,100,50,40,20,10),防止圖片幀丟失與音頻對不上。若需要將圖片轉(zhuǎn)視頻,可用一些現(xiàn)成的工具如:ffmpeg
、Java項目可用jcodec和openshot
界面預(yù)覽







打包
Compose Desktop 初體驗
更新日志
2025-01-03:初始導(dǎo)入