org-mode插入音频,怎么播放音频

org-mode 怎么插入音频啊 例如mp3。我现在是以插入 file 链接的形式插入的,有什么方法可以播放这个音频文件么。比如定义一个快捷键,当光标在这个音频链接上时,按下快捷键播放这个音频

Windows下,借助外部音乐播放器可以很轻松的实现这个功能 Emacs内部支持音乐播放的代码就不知道了。

哦?借助外部播放器如何实现呢?

我只简单给你提供一个思路,后面的你自己完成。

(defun lxeg0429/foobar ()
  (interactive)
  (w32-shell-execute
   "open"
   "E:/Software/Useful Tools/Total Commander/Software/foobar2000/foobar2000.exe"
   "f:/Download/"))

;; 启动foobar2000,并播放Download文件夹下的文件。

我用的是spacemacs,下面是定义快捷键

(spacemacs/set-leader-keys "opp" 'lxeg0429/PotPlayer)

上面只是给fb2k传递了一个参数,它是可以支持大量参数的,/stop /pause and so on 都可以。 具体到某一个文件的话,最好是有一个package可以识别音频的后缀并把指向的文件传递给fb2k就可以了。

帖主要的是一个内嵌的播放器吧:

http://orgmode.org/worg/code/elisp/org-player.el

;;; Usage
;;; =====
;;;
;;; Clicking on a link such as
;;;
;;;   [[file:/path/to/song.mp3]]
;;;
;;; adds it to the active Bongo playlist and immediately starts playing
;;; it. Playback can be paused, fast-forwarded etc using Bongo commands (see
;;; below).
;;;
;;; Links can also specify track positions. When a link contains a track
;;; position, playback will start at that position in the track. For example:
;;;
;;; [[file:/path/to/song.mp3::2:43]]      Starts playback at 2 min 43 sec.
;;; [[file:/path/to/song.mp3::1:10:45]]   Starts playback at 1 hr 10 min 45 sec.
;;; [[file:/path/to/song.mp3::3m15s]]     Starts playback at 3 min 15 sec.
;;; [[file:/path/to/song.mp3::49s]]       Starts playback at 0 min 49 sec.
;;; [[file:/path/to/song.mp3::1h21m10s]]  Starts playback at 1 hr 21 min 10 sec.

2 个赞

需要什么配置才能做到点击播放?

http://orgmode.org/worg/code/ 是社区贡献/搜集来的代码,不包含在 org-mode 中。并且也不一定是最新的,最好找到原始链接,把最新版本下载到本地,require 它。然后就可以用了。

我看他的代码,没看出哪里能够实现点击连接就播放啊…

你安装试试啊,需要外部播放器,给播放器传递参数。

源代码前几行就是了:

(add-to-list 'org-file-apps
             (cons (concat org-player-file-extensions-regexp
                           "::[0-9]+[HhMmSs]\\([0-9]+[MmSs]\\|\\)\\([0-9]+[MmSs]\\|\\)")
                   '(org-player-play-file file search)))

org-mode 处理点击事件,然后交给 org-player-play-file 函数播放:

  .--------------------- Emacs ------------------------.           OS
  |                                                    |           |
Click -> [[file:<link>]] -> OrgMode -> org-player -> bongo ~~~> decoder

2 个赞