Emacs:如何打开和播放视频文件


9

例如,如果我在Dired模式下浏览文件系统,并且遇到一个视频文件,则能够播放该视频文件会很好。我如何在Emacs中做到这一点?

我可以使用Emacs打开视频文件,但结果不是很有用-我只是将编码后的文件显示为文本。Emacs是否可以播放视频文件,或者将其链接到具有其他程序(例如vlc)的文件来播放文件?


2
也许,这个答案可以帮助
Nsukami _

Answers:


6

在Linux上,我一直都这样做。在dired模式下,将光标放在要观看的文件上。

键入!,然后输入要使用的程序。

我使用mplayer,所以输入:

!mplayer

就是这样。您也可以使用vlc或在您的平台上运行的任何工具:

!vlc

使用Dired的真正好处是,我得到了一个包含mplayer输出的窗口(如果使用诸如nautilus或的文件编辑器,则无法获得该窗口thunar,而我右键单击并请求该文件以mplayer开头)。

无论如何,不​​需要任何宏或扩展。只是...!


用于&异步执行操作,例如:&vlc-您无需关闭shell命令即可获得emacs
Darshan Chaudhary

@DarshanChaudhary &vlc似乎没有用,但是vlc&可以用。
otyn

@otyn我想使用的Darshan手段& 代替!。因此,当光标位于所需文件上时,只需点击即可&,它将与异步运行,这与不同!
kotakotakota

2

Dired +可以帮助您解决此问题,但即使Vanilla Dired也可以提供您所需的基础知识。

该答案将详细告诉您如何。它解释了如何使用任何外部程序访问任何文件,即使它回答的问题仅是关于使用外部PDF查看器查看PDF文件。

答案在某种程度上还取决于您使用的平台。特别是,如果您使用MS Windows,则可以利用Windows文件关联等优势。


2

我已经在这篇文章中介绍了我的VLC设置。真正酷的是子进程通过取消了nohup,因此您可以安全地重新启动或关闭Emacs,而无需自动关闭VLC。

这是代码:

(require 'dired-aux)
(defvar dired-filelist-cmd
  '(("vlc" "-L")))
(defun dired-start-process (cmd &optional file-list)
  (interactive
   (let ((files (dired-get-marked-files
                 t current-prefix-arg)))
     (list
      (dired-read-shell-command "& on %s: "
                                current-prefix-arg files)
      files)))
  (let (list-switch)
    (start-process
     cmd nil shell-file-name
     shell-command-switch
     (format
      "nohup 1>/dev/null 2>/dev/null %s \"%s\""
      (if (and (> (length file-list) 1)
               (setq list-switch
                     (cadr (assoc cmd dired-filelist-cmd))))
          (format "%s %s" cmd list-switch)
        cmd)
      (mapconcat #'expand-file-name file-list "\" \"")))))

(define-key dired-mode-map "r" 'dired-start-process)

该代码所做的另一件事是,它允许使用标记多个文件m,然后将所有文件排队到VLC播放列表中。


0

以下代码段仅在OSX操作系统上适用于当前光标所在的一个文件-代码不提供检查文件扩展名和/或猜测与文件扩展名匹配的正确应用程序的代码:

(start-process
  "my-process-name" ;; process name
  nil ;; buffer output name, if an output buffer is so desired.
  "open" ;; argument 1
  "-a" ;; argument 2
  "/Applications/VLC.app/Contents/MacOS/VLC" ;; argument 3
  (dired-get-file-for-visit)) ;; argument 4

如果楼主想要对付打开多个标记文件,然后使用dired-get-marked-filesmapcar在列表中向下。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.