如何在声音指示器中添加可滚动的时间栏

如何在声音指示器中添加可滚动的时间栏

Ubuntu 声音指示器很不错,因为您可以暂停正在播放的歌曲、播放下一首或上一首。有没有办法在该界面上为正在播放的歌曲添加可滚动的时间条?

我的想法来自于小样异形艺术

在此处输入图片描述


编辑1

我认为有可能。我找到了这个屏幕截图这里尽管它是 2010 年的 :-)

在此处输入图片描述


编辑2

我想要一个全局解决方案,而不仅仅是如上图所示的 rhythmbox。全局解决方案意味着它可以用于控制当前播放的歌曲,而不管使用哪种媒体播放器,无论是 VLC、Banshee、Rhythmbox、Audacious 等。


编辑3

由于全局解决方案有点不切实际(请参阅下面的评论),那么仅适用于 VLC 怎么样?它实际上是我使用的唯一媒体播放器。

答案1

你必须更改源代码提示音

然而,我想出了一个基于这个问题

对于 VLC

首先,要将 VLC 添加到声音指示器,您必须启用 MPRIS Dbus 接口。(关注此链接以获得更详细的解释。)一旦启用它,VLC(以及其他音乐播放器)就可以通过 D-bus 接口进行控制。

例如,对于 VLC,您可以从终端运行以下命令来向前搜索 10 秒。

qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Seek 10000000

您可以从 MPRIS 界面读取所有可用的功能这里

现在基于这个问题,您可以创建自己的自定义脚本来向前、向后搜索 10 秒等。

答案2

对于 Gnome-Shell 用户(非 Unity)

您可以使用 gnome-shell-extensions-mediaplayer。

sudo add-apt-repository ppa:webupd8team/gnome3
sudo apt-get update
sudo apt-get install gnome-shell-extensions-mediaplayer

请点击以下链接,您可以自定义许多东西:

https://github.com/eonpatapon/gnome-shell-extensions-mediaplayer/blob/master/README.md

答案3

我创建了一个自定义应用程序指示器,其中包含 3 个菜单项,即倒带、前进和退出。我已经在 Unity 中测试过它,它运行良好。它可以给你一些想法。我试图让它看起来像你提供的图片。同时,我正在发布我正在使用的代码,你也可以使用它。

要求:mdbus2

使用以下方式安装:sudo apt-get install mdbus2

以下是 Python 代码:

#!/usr/bin/env python
'''
To rewind and forward the currently playing song
depend on mbus2 and can be installed using sudo apt-get install mbus2
version 0.1 (public domain)

Author: Vivek Mishra
'''

import dbus
bus = dbus.SessionBus()
proxy = bus.get_object('org.mpris.MediaPlayer2.rhythmbox','/org/mpris/MediaPlayer2')
player = dbus.Interface(proxy, 'org.mpris.MediaPlayer2.Player')

APPNAME = "Player Navigation"
ICON = "/usr/share/icons/hicolor/48x48/apps/totem.png"

from gi.repository import AppIndicator3 as AI
from gi.repository import Gtk

# Forwards a song for 100 sec
def forward(item):
    player.Seek(100000000)

# Rewinds a song for 100 sec    
def rewind(item):
    player.Seek(-100000000)

def scroll(aai, ind, steps):
    print "hello" # doesn't print anything

def makemenu():
    ' Set up the menu '
    menu = Gtk.Menu()

    forward_item = Gtk.MenuItem('Forward')
    forward_item.connect('activate', forward)
    forward_item.show()

    rewind_item = Gtk.MenuItem('Rewind')
    rewind_item.connect('activate', rewind)
    rewind_item.show()

    exit_item = Gtk.MenuItem('Quit')
    exit_item.connect('activate', Gtk.main_quit)
    exit_item.show()

    menu.append(forward_item)
    menu.append(rewind_item)
    menu.append(exit_item)
    menu.show()
    return menu

def startapp():
    ai = AI.Indicator.new(APPNAME, ICON, AI.IndicatorCategory.HARDWARE)
    ai.set_status(AI.IndicatorStatus.ACTIVE)
    ai.set_menu(makemenu())
    ai.connect("scroll-event", scroll)
    Gtk.main()

startapp()

希望这可以帮助。 :)

相关内容