guopenghui / obsidian-language-learner

MIT License
666 stars 59 forks source link

新版obsidian音频播放不了(已解决) #202

Open liweibiao opened 3 days ago

liweibiao commented 3 days ago

1.28起删除了对 URL 的支持app://local obsidian-language-learner依赖app://local插件中的功能,langr-audio字段的音频无法播放,则应使用vault.getResourcePath(file: TFile)vault.adapter.getResourcePath(vaultPath: string)作为替代。

main.js中搜langr-audio

["langr-audio"]||"";u&&u.startsWith("~/")&&(u=(dm.Platform.isDesktopApp?"app://local/":"http://localhost/_capacitor_file_")+o.constants.basePath+u.slice(1))

替换成

["langr-audio"]||"";if(u&&u.startsWith("~/")){const file=o.app.vault.getAbstractFileByPath(u.slice(2));u=file instanceof TFile?o.app.vault.getResourcePath(file):o.app.vault.adapter.getResourcePath(u.slice(2));}

替换好才可以正常播放了

DavidZhao2017 commented 3 days ago

这样替换好后,又不能播放本地音频了。有没有既能播放网络音频又能播放本地音频的办法?

liweibiao commented 1 day ago

@DavidZhao2017 @guopenghui

电脑端 @0.26网络和本地音频都能播放,苹果手机端打开空白

["langr-audio"]||"";c&&(c.startsWith("http://") || c.startsWith("https://"))?c=c:c=o.app.vault.adapter.getResourcePath(c);

移动端0.25 使用正常 网络和本地音频都能播放

["langr-audio"]||"";u&&(u.startsWith("http://") || u.startsWith("https://"))?u=u:u=o.app.vault.adapter.getResourcePath(u)

网络路径:langr-audio: http://example.com/audio.mp3 本地路径:langr-audio: Assets/audio.mp3