“现在播放热键”媒体播放器插件或适用于 *nix 的软件?

“现在播放热键”媒体播放器插件或适用于 *nix 的软件?

寻找一个插件/应用程序或媒体播放器,提供“正在播放”热键输出到剪贴板功能,类似于在 Linux 中本地运行的 AMIP(高级 mIRC 集成插件) - 无需 wine。

AMIP 与 Windows API 紧密相关,这很遗憾。

有人知道类似的事情吗?

答案1

在搜索了几个小时却无果之后,我决定尝试一下并将其整合在一起。

对于那些计划使用这个功能的人来说——我怀疑这很有效,我确信有更好的方法——但这对我来说很有效。

如果效率是一个问题,也许这对你来说不是最好的方法。

我个人在窗口管理器中使用热键 (CTRL + Shift + Z) 运行此设置,效果很好!:)

注意:需要 xclip、lsof 和 ffmpeg。

输出: np: A Perfect Circle - The Noose.flac [801 kb/s] in vlc

#!/bin/sh

mediaplayers="vlc totem rhythmbox banshee mplayer gnome-mplayer"

# path to ffmpeg
ffmpeg=$(which ffmpeg)
[ -z "$ffmpeg" ] && echo "ffmpeg not installed" && exit 1


for mediaplayer in $mediaplayers
do
  pat="([^\w-]$mediaplayer)"
  if ps ux | grep -P $pat | grep -vq grep; then
    #mediaplayer detected
    file=`lsof -F n -c "$mediaplayer" | egrep -i "^.*\.(mp3|flac|m4a)$" | sed 's/^n//g'`

    if [ ! -z "$file" ]; then
          if echo $file | grep -q m4a; then
          bitrate=`ffmpeg -i "$file" 2>&1 | grep -v Estimating | grep bitrate | sed 's/^.*[*:].//g'`
          # crazy bash string manipulation (my m4a's have no metadata -- unsure if yours do)
          echo -n "np: ${file##*/} [$bitrate] in $mediaplayer"  | xclip -selection clipboard
          exit 1
        fi

        if echo $file | grep -q mp3; then
          # mp3 metadata
          perf=`ffmpeg -i "$file" 2>&1 | grep -v album_artist | grep artist | sed 's/^.*[*:].//g'`
          title=`ffmpeg -i "$file" 2>&1 | grep -v Image | grep -v cover | grep title | sed 's/^.*[*:].//g'`
          bitrate=`ffmpeg -i "$file" 2>&1 | grep -v Estimating | grep bitrate | sed 's/^.*[*:].//g'`
          if [ ! -z "$title" ] && [ ! -z "$perf" ]; then
            echo -n "np: $perf - $title.mp3 [$bitrate] in $mediaplayer"  | xclip -selection clipboard
            exit 1
          fi
        fi

        if echo $file | grep -q flac; then
          # flac metadata
          perf=`ffmpeg -i "$file" 2>&1 | grep ARTIST | sed 's/^.*[*:].//g'`
          title=`ffmpeg -i "$file" 2>&1 | grep -v Image | grep TITLE | sed 's/^.*[*:].//g'`
          bitrate=`ffmpeg -i "$file" 2>&1 | grep bitrate | sed 's/^.*[*:].//g'`
          echo File: "$file"
          if [ ! -z "$title" ] && [ ! -z "$perf" ]; then
            echo -n "np: $perf - $title.flac [$bitrate] in $mediaplayer"  | xclip -selection clipboard
            exit 1
          fi
        fi

      fi
    else
      echo -n "No music playing or no player detected..." | xclip -selection clipboard
  fi
done

仅供参考,我是“archenemy”。我提出这个问题时记不起我的账户详细信息了。

相关内容