The Emacs Multimedia System

简介

EMMS 让你可以在 Emacs 里面播放多媒体文件,他被设计的小巧干净,使用外部 播放器进行播放。是一个小巧、可扩展的完全由 Elisp 写成的多媒体系统,支持 多种音频、视频格式以及流媒体播放(这事实上由你所使用的播放器决定),可以 进行标签操作、方便的播放列表管理以及打分制度,总之,这正是我想要的。

配置与使用

基本配置

EMMS 提供了一个 emms-setup.el 可以方便地进行必要的设置,按照功能需求可 以使用 minimalistic 、standard 、all 以及包括了各种还在测试中的功能的 devel 。可以按照他的文档直接使用 emms-setup.el 进行设置。如果对预设的 几个都不满意的话,可以打开 emms-setup.el 文件,看看他是怎么设置的,然 后模仿着写出自己的设置。

我并不需要什么 browser 之类的东西,但是我需要一个舒服的播放列表,所以我 对 standard 的设置进行修改,得到我自己的设置:

播放列表

标签解析

mp3 标签的编码问题总是让我很头痛,乱码问题一直没有一个统一的解决办法, 所以我在使用播放器的时候总是设定为直接显示文件名而不是去解析里面的标签, 正好我的音乐整理得也是比较好的,一般都是以歌手作为目录,歌的名字作为文 件名的,所以我决定在 EMMS 里面也这么做。

EMMS 有 info 解析系统,可以通过 mp3info 等外部程序来解析标签,当然可以 配置自己的解析函数,我前面的配置里面有一句:

这里就是我的 kid-emms-info-simple 函数,仅仅根据文件名来解析出歌手和歌 名,其他信息我也不需要而且也无法直接通过我目前的文件名命名约定解析出来。

列表显示

解析出标签之后 EMMS 会进行相应的格式化再显示出播放列表,当然可以自己定 制播放列表的显示格式,比如通过设定 emms-track-description-function 来 指定自己定制的函数:

交互使用

使用 emms-playlist-mode-go 命令即可进入正在播放的播放列表的 buffer 。 在这里可以方便地控制播放上一首、下一首、随机的某一首歌等。通过 ? 可以 描述当前 mode ,并得到一份详细的可用命令列表。

我通常使用 emms-play-find 或者 emms-play-directory-tree 来打开一个播放 列表,然后用 d 删除不想要的曲目,并 C-x C-s 将其保存起来。

EMMS 还提供了打分机制。并可以设置最低分数,如果分数低于最低分数将不会 被播放。要是能像 Dired 或者 Mew 的 summary-mode 那样能够方便地贴标签并 进行批量操作就更舒服了!

快捷键

随着越来越多的扩展加到 Emacs 中,好用又好记的快捷键是越来越紧张了, EMMS 的快捷键只有绑定到前缀 C-c e 上比较合适了,比较难按,不过如果是在 EMMS 的播放列表的 buffer 里面的话,就可以直接使用单个字母的快捷键了, 所以直接定义一个方便的快捷键跳到 EMMS 的播放列表的 buffer 里面也是一个 不错的办法。以前用 Beep media player 的时候我就是把 Sawfish 窗口管理器 里面的 H-x 键绑定到显示播放器的窗口上,现在不用它了,这个快捷键自然也解放 出来了。这样,如果操作比较多的话,使用 H-x 跳到 EMMS 的播放列表,操作 完之后再 q 回到原来的 buffer ,还是比直接使用 C-c e ... 这一系列的快捷 键要舒服的。