banshee:如何通过DBus为Banshee中的特定曲目设置评分?
我想通过DBus接口在Banshee上设置某个特定音乐曲目的“评分”(也就是说,不仅仅是当前正在播放的那首)。
3 个回答
1
很遗憾,开发者没有实现一个GET方法,所以没有通用的方式来执行“给当前播放的曲目评分1星”的命令,更别提对特定曲目的评分了。有没有人写过脚本来提供这个功能?目前我还没有找到通过命令行修改D-Bus属性的解决方案。最后,这里是我用来给当前播放曲目评分的变通方法。
#!/bin/bash
#read current TrackRating
R=$(qdbus org.mpris.MediaPlayer2.banshee /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep 'userRating' | tr -d '/xesam:userRating: ')
case $R in
'' ) R=0 ;;
'0.2' ) R=1 ;;
'0.4' ) R=2 ;;
'0.6' ) R=3 ;;
'0.8' ) R=4 ;;
'1' ) R=5 ;;
esac
case $1 in
'inc' ) [ $R -lt 5 ]
banshee --set-rating=$(($R+1)) ;;
'dec' ) [ $R -gt 0 ]
banshee --set-rating=$(($R-1)) ;;
'res' ) banshee --set-rating=3 ;;
'min' ) banshee --set-rating=0 ;;
'max' ) banshee --set-rating=5 ;;
esac
选项:
- inc -> 如果可能,评分增加1
- dec -> 如果可能,评分减少1
- res -> 将评分重置为3星
- min -> 将评分设置为0星
- max -> 将评分设置为5星
因为Banshee不提供对特定曲目数据的操作,这就是我目前最好的办法。
2
2
Banshee这个软件没有通过DBus提供评分功能。
你可以使用像d-feet这样的应用程序快速查看它所提供的所有功能。确保你感兴趣的应用程序(比如这里的Banshee)正在运行。
已经有一个错误报告请求在DBus接口中添加评分功能。你可能想要关注一下这个报告。