[悬赏有奖]求解决我的Emacs Bug.

全部代码除去开头的注释, 仅有 150 行代码, 功能也比较单一, 由于我没有学习过 elisp, 都是gpt生成的…

  1. 第一个Bug, 使用 mplayer 播放时, 正常的是只播放一次, 然而有时不知道它为啥会一直循环播放那个文件, 必须 kill process, 问题在这行代码:
    dict-line/dict-line.el at 282706389610b51fdfc94a945853f21722269090 · ISouthRain/dict-line · GitHub

  2. 第二个问题, 调用这个函数时, Emacs 会生成一个名称 emacs:err 的buffer, 但是等一会它会自动消失, 我估计是因为我因为使用 async-start 不规范导致的, 代码估计在这里:
    dict-line/dict-line.el at 282706389610b51fdfc94a945853f21722269090 · ISouthRain/dict-line · GitHub

要求: 必须要解决第一个问题, 第二问题随意…

悬赏:
最快解决问题者: 20 元(咖啡)
第二名: 5元(可乐)
其余者: 谢谢你的无私贡献!!(安慰奖)

为什么看起来悬赏这么低?? 我实在能力有限, 而且我看起来问题应该不会很困难, 代码功能单一…

大佬直接提 Pr 就行了, 把收款码搭上…

这个帖子没有恶意, 或许直接发出来询问都有大佬帮忙解决, 但我想请他喝杯咖啡…

记得mplayer有个按键是设置循环的,是单文件循环还是目录循环吧。然后是不是写到mplayer的配置文件里了?

mplayer 没有配置, 有时是正常的只播放一次, 有时是不正常一直循环播放那个文件

这是不可持续发展的

楼主能给个最小复现案例吗?

怎么说呢?? 貌似没有最小示例…
但是我好像知道如果光标切换的快(不同单词)就会有复现, 大概就是马上播放一个音频文件, 然后又要播放下一个音频文件导致的…
mplayer/Emacs 处理不过来还是啥的

我想,你只要把dict-line--get-dict-async改成同步的就行了。

沒有必要用 async 在異步任務中調用 call-process,直接用 start-process 就行,返回的結果可以賦值給一個全局變量。每次播放前用 process-live-p 檢查下進程是否活著,活著的話直接殺死。

有没有可能是音频文件的问题,有些音频文件的 loop 属性是 true. 找个音频编辑器打开音频看一下。

好思路, 谢谢

参考我的代码mybigword/mybigword.el at master · redguardtoo/mybigword · GitHub

函数mybigword-async-shell-command

人工智能生成小众语言代码质量不高