emms播放当前目录下所有的子目录音频以及播放列表显示格式

请教一个emms播放列表显示的问题,具体如下:

Music目录下有,a,b,c,d,e五个音乐目录里面包含不同的音频,请问要如何实现用emms播放该目录下五个子目录的所有音频,我找到一个函数,emms-play-directory-tree,可以实现这个功能,该如何写一个函数,不用每次都要弹出选择哪个目录播放

第二个问题,emms-playlist-mode显示问题

想得到如下的效果

目录A的名称 A里面的音频1.mp3 2.mp3 … 目录B的名称 1.mp3 …

空格间隔随意

直接打列表格式都挨在一起了 主要是直接播放整个目录树的话,列表看起来太杂乱,有几千个音频,谢谢大家的帮忙

1

C-h f emms-play-directory-tree 看一下 emms-play-directory-tree 的文档

emms-play-directory-tree is an interactive compiled Lisp function in ‘emms-source-file.el’.

(emms-play-directory-tree DIR)

An EMMS source for multiple directory trees - either DIR, or the value of ‘emms-source-file-default-directory’.

根据文档 emms-play-directory-tree 只接收一个 DIR 参数,如果没有传进来,就用 emms-source-file-default-directory

所以可以自己定义一个命令:

(setq emms-source-file-default-directory "~/<path-to-your-music-directory>") ; 修改默认的音乐目录
(defun ctmdoctor-play-music ()                                  ; 定义一个命令
  (interactive)
  (emms-play-directory-tree)            
)

M-x ctmdoctor-play-music 就可以了(或者自己定义一个快捷键)

感谢您的回复,我刚测试了,当我运行my-play-music之后,显示错误如下

Wrong number of arguments:#)[ad–addoit-function dir)

播放目录我已经设置好了

(interactive) 下面那行改成:

(emms-play-directory-tree emms-source-file-default-directory)

好的,感谢,我下班回家就去试

运行命令行 cd ~/Music;find . -name '*.mp3' -o -name '*.flac' | sed 's%^\./%%' | sort > all.m3u; cd -

1 个赞

请问生成的m3u列表就可以实现我截图里面的显示效果吗,感谢,我都得回家之后才能试试看

m3u 只是文件格式,被大多数播放器支持。emms我不太清楚。

好的,感谢,我测试之后回复

感谢,已经可以了,调用该函数可以自动播放当前目录所有子目录里面的音频文件

我试过了,生成的播放列表不知道用emms打开,而且显示格式也无法达到截图里面的效果,还是很感谢

M-x emms-play-playlist to open *.m3u

找到一个类似的解决方案,但是有不足之处

配置文件在 http://www.gnu.org/software/emms/configs/xwl-emms.el

不知道要怎么修改,可以把目录,如图所示,周杰伦那一列只显示第一行,下面同样的周杰伦隐藏掉,另外他那个1970那个什么信息

关于1970

知道了,感谢您的指点