Giter VIP home page Giter VIP logo

doubanfm-qt's Introduction

DoubanFM 客户端

使用Qt5编写的DoubanFM客户端

如果你喜欢本项目的话,给我买瓶啤酒喝好不;)

支付宝

注意

  • Ubuntu由于不支持Qt的QSystemTrayIcon,直接使用会有Bug,必须在生成Makefile前在doubanfm-qt.pro中删除DEFINES += WITH_SYSTEM_TRAY_ICON

  • KDE用户在打开时载入会出现SIGSEGM,目前原因未知,如果有人知道解决方法请告诉我谢谢!Issues中有提及。

  • Ctrl+W后软件界面消失为正常行为,只要重新点图标(启动器)就可以唤醒。若强行Kill会导致此功能失效,需要手动删除/tmp/QDoubanFM_LocalSocket,或者会在其他位置,不同发行版可能位置不同。

  • Windows及OSX上的有兼容性问题,但功能大致正常。

API接口文档

依赖

  • qt5-base
  • libqt5network5 libqt5gui5 libqt5core5 libqt5multimedia5 qtmultimedia5-dev
  • gstreamer0.10-fluendo-mp3
  • libpulse0 libpulse-dev
  • libqt5dbus5
  • libqt5multimedia5-plugins

不同平台相应的包名不一样,基本需求是Qt5的基础包,Qt5 Multimedia模块,Qt5 DBus模块,mp3解码器

截图

截图

安装方法

  • 在Archlinux上测试通过
lupdate doubanfm-qt.pro
lrelease doubanfm-qt.pro
qmake doubanfm-qt.pro
make

得到doubanfm-qt后直接运行即可

或运行install.sh脚本来安装到系统中(For Linux Only),安装好后在桌面系中的的启动器中找到QDoubanFM运行即可

  • Ubuntu

已经在Ubuntu 13.04 x86_64至Ubuntu 15.04 x86_64上测试通过。

在Ubuntu版本低于15.04时,Qt的系统托盘不能正常工作,所以 先使用编辑器打开doubanfm-qt.pro,删除

DEFINES += WITH_SYSTEM_TRAY_ICON

剩余步骤与上面相同。

  • openSUSE

一键安装

  • Windows或OSX

这两个系统比较特殊,建议到官网下载QtCreator打开doubanfm-qt.pro选择Release编译。

快捷键

Ctrl + W 隐藏窗口,最小化到托盘

Ctrl + Q 退出

Space 暂停

S 跳过

D 不再播放

F 标记/取消标记红心

TODO

  • 基本播放功能
  • 频道选择
  • 用户登录
  • 快捷键
  • 动画
  • i18n支持
  • Linux的播放提示 + DBus
  • 后台播放 + 托盘提示
  • 歌词

KNOWN BUGS

  • 在长时间暂停后重启播放会崩溃
  • 在网络不好时卡住会崩溃
  • 动画有Bug,若打开了频道界面然后鼠标离开,则会让控制面板滑动位置出错
  • KDE4.9 上未知原因崩溃 (Fixed in KDE5)
  • Ubuntu不支持QSystemTrayIcon导致软件不能正常退出

LICENSE

本项目基于MIT协议发布

MIT: http://rem.mit-license.org

doubanfm-qt's People

Contributors

harry-chen avatar houqp avatar imgiantchan avatar linuxholic avatar marguerite avatar zhsj avatar ziqin avatar zllang avatar zonyitoo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doubanfm-qt's Issues

翻频道按钮功能反了

现在点击左侧的是向右翻,而右侧的是向左翻,不知道是不是因为作者的习惯问题而故意弄成这样:D

Ubuntu 14.04没有声音

今天升级了下系统,重新编译后打开,其它功能都正常的,唯独没有声音,相关的依赖也安装:

 sudo apt-get install libqt5network5 libqt5gui5 libqt5core5a libqt5multimedia5 qtmultimedia5-dev gstreamer0.10-fluendo-mp3 libpulse0 libpulse-dev libqt5dbus5

在make唯一有个warning是:

warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
 const DoubanUser * const getUser() const;

不过似乎和本问题没有关联。

关于Qt5的小问题

OS: Ubuntu14.04

make的时候出错了...不知道为什么

后面一部分如下:

main.cpp: In function ‘int main(int, char**)’:
main.cpp:44:7: error: ‘class QApplication’ has no member named ‘setApplicationDisplayName’
     a.setApplicationDisplayName("QDoubanFM");
       ^
make: *** [release_tmp/obj/main.o] 错误 1

没法登录

qt 4.8.4 archlinux 输入用户名和密码后点击确定 然后提示请输入正确的用户名和密码

编译问题

./plugins/doubanfmplugin.h:13:33: 错误: 声明为 virtual 的‘virtual DoubanFMPlugin::~DoubanFMPlugin()’不能在类体内指定默认值
make: *** [main.o] 错误 1
make: *** 正在等待未完成的任务...

windows Qt 5.4.1 Qt creator 通过但是无法登陆,没有获取到音乐,请问是不是失效了?

  1. 无法登陆
  2. 无法获取音乐
  3. 点击切换channel 崩溃

Login with "[email protected]"
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error

没有声音

看着都有好着呢 ubuntu 12.04
~$ doubanfm-qt
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
QMediaPlaylistNavigator: Jump outside playlist range
Switch to channel "欧美"
Received new playlist with 5 songs
Current playing: "Jason Mraz" : "I'm Yours"
Switch to channel "华语"
Received new playlist with 5 songs
Current playing: "戴佩妮" : "怎样"
LoginSucceed. Refreshing Playlist

标题栏有两个关闭按钮

spectacle l19758

鼠标悬停展开 Channels 的时候,顶部标题栏还会变,感觉有点别扭。

还有一些视觉和交互的小意见:

  1. 红心,删除,下一曲,暂停,设置等按钮的颜色,可能平时是灰色(红心是红色),鼠标悬停和点击时变成深灰色(红心是深红色)比较复合视觉习惯。浅灰色有种“此按钮不可用”的错觉。
  2. 设置按钮是全局功能,可能放到边角比较合适。放在进度条上方,暂停下方,会误以为它是曲目设置。
  3. Channels 按钮的悬停展开交互有点不习惯,建议和下方的 Lyric 一样点击展开。

整体上还是很喜欢这个软件的!

Some doubts

Hello, I am a newbie in Qt. I think your UI is beautiful and wonderful. When I run the program, I find some doubts:

  1. I think the QRegExp class which you use is old to use, it may lead to some unknown parsing questions, so I use QRegularExpression class instead.
  2. Some lyrics don not show at the lyric widget. When I debug, I find the timeReg may not include all time format of lyrics, eg. [00:00.000] or [00:00].
    Thank you~

歌词下拉框里没有歌词显示

debian8编译安装 一般运行正常 (切歌过频会闪退) 发现歌词下拉框里一直没有歌词显示 是还没有设置相应功能还是自己编译出错??
ps 想重新编译安装一遍 怎么删除原程序??

user_is_ananymous

Authorization: Bearer 21a0867e86f16fb464e1937b94d44f1w
填了这个,也返回user_is_ananymous

关于快捷键的改进建议

官方的在线版支持以下的快捷键:
S:下一曲
D:不再播放
F:标记/取消标记红心

希望在新版本能得到支持

编译错误:mainwidget.h:4:19: fatal error: QWidget: No such file or directory

hi @zonyitoo ,

我在尝试编译的时候出现如下错误:

g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_MULTIMEDIA_LIB -DQT_DBUS_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtDBus -I/usr/include/qt4/QtMultimedia -I/usr/include/qt4 -I. -I. -o main.o main.cpp
In file included from main.cpp:1:0:
mainwidget.h:4:19: fatal error: QWidget: No such file or directory
compilation terminated.
make: *** [main.o] Error 1

系统ubuntu13.04,是开发包版本不兼容的原因么?

弹出界面后等一会就退出

➜ ~ doubanfm-qt
"Qt Warning - invalid keysym: dead_actute"
Switch to channel "华语"
Received new playlist with 5 songs
CurrentPlaying:
artist: "陈奕迅"
title: "圣诞结"
album: "七"
publicTime: "2003"
company: "英皇娱乐"
kbps: 5
like: false
sid: 507939
subType: ""
[1] 9798 segmentation fault (core dumped) doubanfm-qt

QtGui/QAction:没有那个文件或目录

In file included from channelwidget.cpp:2:0:
ui_channelwidget.h:14:25: 致命错误: QtGui/QAction:没有那个文件或目录
编译中断。
make: *** [channelwidget.o] 错误 1

ubuntu 13.04

segmentation fault

Hi,

我按照你的步骤编译完成后:

$ ./doubanfm-qt
"Load Language: Australia_English" 
QLayout: Attempting to add QLayout "" to UserLoginWidget "userLoginWidget", which already has a layout
void Douban::onReceivedChannels(QNetworkReply*) channels.size() = 0 
void ChannelWidget::onRecvChannels(const QList<DoubanChannel>&) 
[1]    23029 segmentation fault  ./doubanfm-qt

我的系统:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.2 LTS
Release:    12.04
Codename:   precise

按你的说明我安装了以下package:

sudo aptitude install libqt4-network libqt4-gui libqt4-core libphonon libphonon-dev phonon phonon-backend-gstreamer libqjson libqjson-dev gstreamer0.10-fluendo-mp3

频道选择不方便选

目前就通过左右两个按钮选频道,很不方便,不知道能否改进一下?谢谢!

关于歌词的几个改进建议

  1. 是否能增加字体设置功能,在我的Arch+Gnome3.8下不知为什么字体格外小,或许是我的设置问题,但是我怎么用gnome-tweak-tool改还是如此
    字体不清晰
    2.无歌词时能否自动切出歌词面板,这个样子好像略微有点空
    无歌词

P.S.This is really a great software.

关闭按钮不能关闭程序

关闭窗口后,程序继续在后台程序,需要kill掉进程。
另外在gnome-shell环境里,通知区域出现两个图标,而在unity只在左侧的bar里出现,不知道和这个有没有关系。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.