酷狗音乐模仿还在继续

前一段时间刚好有时间,就试着去写一写酷狗音乐的界面,无奈好多资源图片找不到,只能凑合着用吧,界面做的还很粗糙,有待细化。仔细观察酷狗音乐界面,主要可以分为四部分构成:

  • 标题栏
  • 左边工具栏
  • 右边歌曲、歌词、MV等界面
  • 底部控制栏

下面主要说说界面的组成

界面的组成是这样的,标题栏、左边工具栏、右边内容区域、底部工具栏都是继承自QWidget的,主界面是继承自QFrame的,在主界面将其他各个界面进行了一个布局,最终实现了如上图所示的界面。

  1. 标题栏
    标题栏中实现了各个按钮菜单的初始化,全部敲的代码。
    TitleWidget.h
/*************************************************
Copyright:kevin
Author:Kevin LiQi
Date:2016-02-09
Email:kevinlq0912@163.com
QQ:936563422
Version:V1.0
Description:音乐播放器---标题栏的实现
**************************************************/
#ifndef TITLEWIDGET_H
#define TITLEWIDGET_H#include <QWidget>class PushButton;
class QLabel;
class QHBoxLayout;
class SearchLineEdit;
class MyMenu;
class RemoteWidget;typedef enum TbnStatus{BtnMax = 0,BtnMin
}TBNSTATUS;class TitleWidget : public QWidget
{Q_OBJECT
public:explicit TitleWidget(QWidget *parent = 0);~TitleWidget();void Translator();Q_SIGNALS:void signalClose();void signalHideWidget();void signalMax();void signalMix();void signalShowSkin();//转发遥控器信号void signalShowOrHideWidget(int);private Q_SLOTS:void slotChangeBtnStatus(int status);void slotOpenOrHideRemote();void slotHideRemote();private:void initForm();void initWidget();void initConnect();private:QLabel *m_labelIcon;PushButton *m_TbnLogin;            //登录QLabel *m_label_div;PushButton *m_TbnRegister;         //注册SearchLineEdit *m_search;           //索索框PushButton *m_TbnGame;             //游戏PushButton *m_TbnNews;             //消息通知PushButton *m_TbnSkin;             //皮肤PushButton *m_TbnMenu;             //主菜单PushButton *m_TbnRemote;           //遥控器PushButton *m_TbnMenu_max;         //最大化PushButton *m_TbnMenu_min;         //最小化PushButton *m_TbnMenu_close;       //关闭QHBoxLayout *m_mainLayout;MyMenu *m_menu;RemoteWidget *m_remoteWidget;bool m_isOpenRemote;                  //是否打开遥控器
};#endif // TITLEWIDGET_H

TitleWidget.cpp

void TitleWidget::initWidget()
{m_labelIcon = new QLabel(this);//登录和注册m_TbnLogin = new PushButton(this);m_label_div = new QLabel(this);m_label_div->setFixedSize(1,16);m_label_div->setStyleSheet("background-color:#FDF7F7");m_TbnRegister = new PushButton(this);//搜索框m_search = new SearchLineEdit(this);m_TbnGame = new PushButton(this);          //游戏m_TbnNews = new PushButton(this);          //消息通知m_TbnSkin = new PushButton(this);          //皮肤//创建菜单按钮m_TbnMenu = new PushButton(this);m_TbnRemote = new PushButton(this);        //遥控器m_TbnMenu_min = new PushButton(this);m_TbnMenu_max = new PushButton(this);m_TbnMenu_close = new PushButton(this);//标题栏布局m_mainLayout = new QHBoxLayout(this);m_mainLayout->addSpacing(20);m_mainLayout->addWidget(m_labelIcon);m_mainLayout->addSpacing(10);m_mainLayout->addWidget(m_TbnLogin);m_mainLayout->addWidget(m_label_div);m_mainLayout->addWidget(m_TbnRegister);m_mainLayout->addSpacing(220);m_mainLayout->addWidget(m_search);m_mainLayout->addStretch();m_mainLayout->addWidget(m_TbnGame);m_mainLayout->addWidget(m_TbnNews);m_mainLayout->addWidget(m_TbnSkin);m_mainLayout->addSpacing(10);m_mainLayout->addWidget(m_TbnMenu);m_mainLayout->addWidget(m_TbnRemote);m_mainLayout->addWidget(m_TbnMenu_min);m_mainLayout->addWidget(m_TbnMenu_max);m_mainLayout->addWidget(m_TbnMenu_close);m_mainLayout->addSpacing(6);m_mainLayout->setContentsMargins(0,20,0,0);this->setLayout(m_mainLayout);m_menu = new MyMenu(this);m_TbnMenu->setMenu(m_menu);m_remoteWidget = new RemoteWidget();
}//翻译标题栏
void TitleWidget::Translator()
{m_menu->translator();m_TbnLogin->setText(tr("tbn_login"));m_TbnRegister->setText(tr("tbn_register"));m_TbnLogin->setToolTip(tr("login"));m_TbnRegister->setToolTip(tr("register"));m_TbnGame->setToolTip(tr("tbn_game"));m_TbnNews->setToolTip(tr("tbn_news"));m_TbnSkin->setToolTip(tr("tbn_skin"));m_TbnMenu->setToolTip(tr("tbn_menu"));m_TbnRemote->setToolTip(tr("tbn_start_remote"));m_TbnMenu_close->setToolTip(tr("tbn_close"));m_TbnMenu_max->setToolTip(tr("tbn_max"));m_TbnMenu_min->setToolTip(tr("tbn_min"));
}

标题栏中有个菜单按钮,主要是子类化QMenu,然后添加各个Action即可:
MainMenu.cpp:

/*************************************************
Copyright:kevin
Author:Kevin LiQi
Date:2016-02-12
Email:kevinlq0912@163.com
QQ:936563422
Version:V1.0
Description:音乐播放器--主菜单的实现
**************************************************/
#include "mymenu.h"
#include "iconhelper.h"
#include <QApplication>
#include <QDesktopWidget>
#include "Common/menu.h"
#include "BottomBar/play_mode_menu.h"#include "aboutkugoudialog.h"MyMenu::MyMenu(QWidget *parent):Menu(parent)
{this->initForm();this->initWidget();this->initConnect();
}MyMenu::~MyMenu()
{
}void MyMenu::translator()
{m_playMode->translator();m_aboutKugou->translator();m_actionLogin->setText(tr("action_login"));m_menuAddMusic->setTitle(tr("menu_add_music"));m_actionAddLocalMusic->setText(tr("action_add_local_music.."));m_actionAddLocalFolderMusic->setText(tr("action_add_music_local_folder_music"));m_actionMagicRemote->setText(tr("action_magic_remote"));m_actionStripRemote->setText(tr("action_strip_remote"));m_actionHideRemote->setText(tr("action_hide_remote"));m_actionAverageBalance->setText(tr("average_balance"));m_actionMusicPlug->setText(tr("action_music_plug"));m_actiontimingSetting->setText(tr("action_timingSetting"));m_actionAlwaysFront->setText(tr("action_alwaysFront"));m_actionRecoveryStatus->setText(tr("action_recovery"));m_actionAllSpeedDownload->setText(tr("action_all_speed_download"));m_actionCustomDownload->setText(tr("action_custom_download"));m_actionBroadband->setText(tr("action_broadband"));m_actionOnLineUpdate->setText(tr("action_online_update"));m_actionShowTodayRecommend->setText(tr("action_show_today_recommend"));m_actionHelp->setText(tr("action_help"));m_actionSuggest->setText(tr("action_suggest"));m_actionAboutKugou->setText(tr("action_about_kugou"));m_actionSetting->setText(tr("action_setting"));m_actionQuit->setText(tr("action_quit"));
}void MyMenu::slotShowAboutKugou()
{m_aboutKugou->exec();
}void MyMenu::initForm()
{
}void MyMenu::initWidget()
{m_actionLogin = new QAction(this);//添加音乐二级菜单m_menuAddMusic = new Menu(this);m_actionAddLocalMusic = new QAction(m_menuAddMusic);m_actionAddLocalFolderMusic = new QAction(m_menuAddMusic);m_menuAddMusic->addAction(m_actionAddLocalMusic);m_menuAddMusic->addAction(m_actionAddLocalFolderMusic);m_playMode = new Play_Mode_Menu(this);m_playMode->setTitle(tr("play_mode"));//遥控器二级菜单m_menuRemote = new Menu(this);m_menuRemote->setTitle(tr("menu_remote"));m_actionMagicRemote = new QAction(this);m_actionStripRemote = new QAction(this);m_actionHideRemote = new QAction(this);m_menuRemote->addAction(m_actionMagicRemote);m_menuRemote->addAction(m_actionStripRemote);m_menuRemote->addAction(m_actionHideRemote);m_actionAverageBalance = new QAction(this);m_actionMusicPlug  = new QAction(this);m_actiontimingSetting  = new QAction(this);m_actionAlwaysFront  = new QAction(this);m_actionRecoveryStatus  = new QAction(this);//下载设置二级菜单m_menuDownloadSetting = new Menu(this);m_menuDownloadSetting->setTitle(tr("menu_downloadSetting"));m_actionAllSpeedDownload = new QAction(this);m_actionCustomDownload = new QAction(this);m_actionBroadband = new QAction(this);m_menuDownloadSetting->addAction(m_actionAllSpeedDownload);m_menuDownloadSetting->addAction(m_actionCustomDownload);m_menuDownloadSetting->addAction(m_actionBroadband);//在线更新m_actionOnLineUpdate = new QAction(this);//显示今日推荐m_actionShowTodayRecommend = new QAction(this);//帮助与意见反馈二级菜单m_menuHelp = new Menu(this);m_menuHelp->setTitle(tr("menu_help"));m_actionHelp = new QAction(this);m_actionSuggest = new QAction(this);m_actionAboutKugou = new QAction(this);m_menuHelp->addAction(m_actionHelp);m_menuHelp->addAction(m_actionSuggest);m_menuHelp->addAction(m_actionAboutKugou);m_actionSetting  = new QAction(this);m_actionQuit  = new QAction(this);m_actionLogin->setIcon(QIcon(":/image/mainMenu/help.png"));m_actionAverageBalance->setIcon(QIcon(":/image/mainMenu/open.png"));m_actionSetting->setIcon(QIcon(":/image/mainMenu/setting.png"));m_actionQuit->setIcon(QIcon(":/image/mainMenu/quit.png"));this->addAction(m_actionLogin);this->addSeparator();this->addMenu(m_menuAddMusic);this->addMenu(m_playMode);this->addSeparator();this->addMenu(m_menuRemote);this->addAction(m_actionAverageBalance);this->addAction(m_actionMusicPlug);this->addAction(m_actiontimingSetting);this->addSeparator();this->addAction(m_actionAlwaysFront);this->addAction(m_actionRecoveryStatus);this->addMenu(m_menuDownloadSetting);this->addAction(m_actionOnLineUpdate);this->addAction(m_actionShowTodayRecommend);this->addMenu(m_menuHelp);this->addAction(m_actionSetting);this->addSeparator();this->addAction(m_actionQuit);//菜单子功能m_aboutKugou = new AboutKugouDialog;          //关于酷狗}void MyMenu::initConnect()
{connect(m_actionAboutKugou,SIGNAL(triggered(bool)),this,SLOT(slotShowAboutKugou()));connect(m_actionQuit,SIGNAL(triggered(bool)),this,SIGNAL(signal_quit()));
}
  1. 左边工具栏

    左边工具栏是继承自QToolButton,然后通过一个垂直布局二实现的:
    LeftToolBar.cpp
/*************************************************
Copyright:kevin
Author:Kevin LiQi
Date:2016-02-09
Email:kevinlq0912@163.com
QQ:936563422
Version:V1.0
Description:音乐播放器---左边工具按钮的实现
**************************************************/
#include "lefttoolbar.h"
#include "iconhelper.h"#include "Common/toolbutton.h"
#include <QLabel>
#include <QVBoxLayout>LeftToolBar::LeftToolBar(QWidget *parent): QWidget(parent)
{this->initWidget();this->initForm();this->initConnect();
}void LeftToolBar::traanslator()
{m_tbnLocalList->setToolTip(tr("local_list"));m_tbnNetworkCollect->setToolTip(tr("network_collect"));m_tbnMusicRadio->setToolTip(tr("music_radio"));m_tbnPhoneManage->setToolTip(tr("phone_manaage"));m_tbnLocalMusic->setToolTip(tr("local_music"));m_tbnMore->setToolTip(tr("more"));
}void LeftToolBar::initForm()
{this->setMaximumWidth(40);m_tbnLocalList->setIcon(QIcon(":/image/appTools/music_button_playlist.png"));m_tbnNetworkCollect->setIcon(QIcon(":/image/appTools/music_button_cloud.png"));m_tbnMusicRadio->setIcon(QIcon(":/image/appTools/music_button_radio.png"));m_tbnLocalMusic->setIcon(QIcon(":/image/appTools/music_button_mydownl.png"));m_tbnPhoneManage->setIcon(QIcon(":/image/appTools/music_button_mobile.png"));m_tbnMore->setIcon(QIcon(":/image/appTools/music_button_tools.png"));m_vecTbn.push_back(m_tbnLocalList);m_vecTbn.push_back(m_tbnNetworkCollect);m_vecTbn.push_back(m_tbnMusicRadio);m_vecTbn.push_back(m_tbnLocalMusic);m_vecTbn.push_back(m_tbnPhoneManage);m_vecTbn.push_back(m_tbnMore);for (int i = 0; i != m_vecTbn.size();i++){m_vecTbn.at(i)->setCursor(Qt::ArrowCursor);m_vecTbn.at(i)->setCheckable(true);m_vecTbn.at(i)->setAutoExclusive(true);}
}void LeftToolBar::initWidget()
{m_tbnLocalList = new ToolButton(this);m_tbnNetworkCollect = new ToolButton(this);m_tbnMusicRadio = new ToolButton(this);m_tbnPhoneManage = new ToolButton(this);m_tbnLocalMusic = new ToolButton(this);m_tbnMore = new ToolButton(this);this->setButtonStyle(m_tbnLocalList);this->setButtonStyle(m_tbnNetworkCollect);this->setButtonStyle(m_tbnMusicRadio);this->setButtonStyle(m_tbnPhoneManage);this->setButtonStyle(m_tbnLocalMusic);this->setButtonStyle(m_tbnMore);m_mainLayout = new QVBoxLayout(this);m_mainLayout->addSpacing(15);m_mainLayout->addWidget(m_tbnLocalList);m_mainLayout->addWidget(m_tbnNetworkCollect);m_mainLayout->addWidget(m_tbnMusicRadio);m_mainLayout->addWidget(m_tbnPhoneManage);m_mainLayout->addWidget(m_tbnLocalMusic);m_mainLayout->addWidget(m_tbnMore);m_mainLayout->addStretch();m_mainLayout->setContentsMargins(0,0,10,0);this->setLayout(m_mainLayout);
}void LeftToolBar::initConnect()
{connect(m_tbnLocalList,SIGNAL(clicked(bool)),this,SIGNAL(signalLocalList()));connect(m_tbnNetworkCollect,SIGNAL(clicked(bool)),this,SIGNAL(signalNetCollect()));connect(m_tbnMusicRadio,SIGNAL(clicked(bool)),this,SIGNAL(signalMusicRadio()));connect(m_tbnPhoneManage,SIGNAL(clicked(bool)),this,SIGNAL(signalPhoneManage()));connect(m_tbnLocalMusic,SIGNAL(clicked(bool)),this,SIGNAL(signalLocalMusic()));connect(m_tbnMore,SIGNAL(clicked(bool)),this,SIGNAL(signalMoreTool()));
}void LeftToolBar::setButtonStyle(ToolButton *tbn)
{tbn->setFixedSize(48,50);tbn->setObjectName("leftToolBar");
}
  1. 右边内容区域
    右边内容区域就是一个QWidget,暂时设置为背景透明而已,后期还得继续处理!
  2. 底部工具栏


    底部工具栏主要有上一首、播放/暂停、下一首、播放进度条、收藏、下载、播放模式、声音、播放列表等等组成:

/*************************************************
Copyright:kevin
Author:Kevin LiQi
Date:2016-02-09
Email:kevinlq0912@163.com
QQ:936563422
Version:V1.0
Description:音乐播放器---底部控制界面
**************************************************/
#include "bottomwidget.h"
#include "iconhelper.h"
#include "Common/toolbutton.h"
#include "sliderwidget.h"
#include "play_mode_menu.h"         //播放模式菜单#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QDebug>BottomWidget::BottomWidget(QWidget *parent):QWidget(parent)
{   this->initWidget();this->initForm();this->initConnect();
}BottomWidget::~BottomWidget()
{
}void BottomWidget::translator()
{m_playMode->translator();m_tbnPerious->setToolTip(tr("perious_music"));m_tbnNext->setToolTip(tr("nect_music"));m_tbnPlay->setToolTip(tr("play_music"));m_tbnLove->setToolTip(tr("i_love_it"));m_tbnDownload->setToolTip(tr("download_music"));m_tbnSimilarMusic->setToolTip(tr("similar_music"));m_tbnCircleMode->setToolTip(tr("list_circle_model"));m_tbnVoice->setToolTip(tr("no_voice"));m_tbnSoundEffect->setToolTip(tr("snake_effect"));                   //蝰蛇音效m_tbnMusicWords->setToolTip(tr("open_desktop_music_words"));        //打开桌面歌词m_label_misic_num->setText("10");m_labelMusicName->setText(tr("label_music_name"));m_labelMusicTotalTime->setText("00:00");m_labelMusicCurTime->setText("00:00");
}void BottomWidget::initForm()
{this->setMaximumHeight(60);
}void BottomWidget::initWidget()
{m_tbnPerious = new ToolButton();m_tbnPlay = new ToolButton();m_tbnNext = new ToolButton();m_tbnLove = new ToolButton();m_tbnDownload = new ToolButton();m_tbnSimilarMusic = new ToolButton();m_tbnCircleMode = new ToolButton(this);m_tbnCircleMode->setObjectName("tbnMenu");m_playMode = new Play_Mode_Menu(this);m_playMode->setObjectName("MenuplayMode");m_tbnCircleMode->setMenu(m_playMode);m_tbnVoice = new ToolButton();m_tbnSoundEffect = new ToolButton();m_tbnMusicWords = new ToolButton();m_tbnMusicPlayQueue = new ToolButton();m_label_misic_num = new QLabel(this);m_label_misic_num->setObjectName("whitelabel");m_label_misic_num->setStyleSheet("color:rgb(255,255,255)");//歌曲信息标签m_labelMusicName = new QLabel(this);m_labelMusicName->setObjectName("whitelabel");m_labelMusicTotalTime = new QLabel(this);m_labelMusicTotalTime->setObjectName("whitelabel");QLabel *label_music_time_div = new QLabel(this);label_music_time_div->setText("/");label_music_time_div->setObjectName("whitelabel");m_labelMusicCurTime = new QLabel(this);m_labelMusicCurTime->setObjectName("whitelabel");m_sliderWidget = new SliderWidget();            //播放进度条m_MusicInfoLayout = new QHBoxLayout;m_MusicInfoLayout->addWidget(m_labelMusicName);m_MusicInfoLayout->addStretch();m_MusicInfoLayout->addWidget(m_labelMusicCurTime);m_MusicInfoLayout->addWidget(label_music_time_div);m_MusicInfoLayout->addWidget(m_labelMusicTotalTime);m_MusicInfoLayout->setContentsMargins(0,0,0,0);QVBoxLayout *MusicLayout = new QVBoxLayout();MusicLayout->addLayout(m_MusicInfoLayout);MusicLayout->addWidget(m_sliderWidget);MusicLayout->setContentsMargins(0,0,0,0);m_mainLayout = new QHBoxLayout(this);m_mainLayout->addSpacing(25);m_mainLayout->addWidget(m_tbnPerious);m_mainLayout->addSpacing(5);m_mainLayout->addWidget(m_tbnPlay);m_mainLayout->addSpacing(5);m_mainLayout->addWidget(m_tbnNext);//m_mainLayout->addStretch();m_mainLayout->addLayout(MusicLayout);m_mainLayout->addWidget(m_tbnLove);m_mainLayout->addWidget(m_tbnDownload);m_mainLayout->addWidget(m_tbnSimilarMusic);m_mainLayout->addWidget(m_tbnCircleMode);m_mainLayout->addWidget(m_tbnVoice);m_mainLayout->addWidget(m_tbnSoundEffect);m_mainLayout->addWidget(m_tbnMusicWords);m_mainLayout->addWidget(m_tbnMusicPlayQueue);m_mainLayout->addWidget(m_label_misic_num);m_mainLayout->addSpacing(20);m_mainLayout->setContentsMargins(0,10,0,20);setLayout(m_mainLayout);
}//信号和槽的关联
void BottomWidget::initConnect()
{connect(m_tbnPerious,SIGNAL(clicked(bool)),this,SIGNAL(signalPreious()));connect(m_tbnPlay,SIGNAL(clicked(bool)),this,SIGNAL(signalPlay()));connect(m_tbnNext,SIGNAL(clicked(bool)),this,SIGNAL(signalNext()));//循环模式信号和槽连接connect(m_tbnCircleMode,SIGNAL(clicked(bool)),m_playMode,SLOT(slotMenuVisiable()));
}

以上就是各个界面的详细代码,在主界面中,将各个子界面按照一定的布局方式进行布局即可。

//初始化界面
void MusicWidget::initWidget()
{m_title = new TitleWidget(this);        //标题栏m_title->installEventFilter(this);      //标题栏安装事件监听器,识别鼠标的双击m_midWidget = new MidWidget(this);      //中间内容m_bottom = new BottomWidget(this);      //底部工具栏m_leftToolBar = new LeftToolBar(this);  //左边工具按钮m_midLayout = new QHBoxLayout();m_midLayout->addWidget(m_leftToolBar);m_midLayout->addWidget(m_midWidget);m_midLayout->setContentsMargins(2,0,0,0);m_maintLayout = new QVBoxLayout(this);m_maintLayout->addWidget(m_title);m_maintLayout->addLayout(m_midLayout);m_maintLayout->addWidget(m_bottom);m_maintLayout->setContentsMargins(0,0,0,0);this->setLayout(m_maintLayout);
}

以上就是酷狗音乐界面的大致结构,以后会抽时间继续完善。

技术在于交流、分享……
博客地址:http://blog.csdn.net/u013704336\
Email:kevinlq0912@163.com
QQ:936563422

酷狗音乐模仿还在继续相关推荐

  1. 酷狗android平板,安卓平板车载共享 体验酷狗音乐HD版

    安卓平板车载共享 体验酷狗音乐HD版 2013年04月24日 13:53作者:马承平编辑:马承平文章出处:泡泡网原创 分享 泡泡网影音相关频道4月24日 自苹果iPad及各品牌Android平板面世以 ...

  2. xmd后缀名改mp3_GitHub - dh9527/xMDPlayer: 一个可以在线听网易云音乐、QQ音乐、酷狗音乐的音乐播放器,还可以让你听自己的网易云歌单哦!...

    xMDPlayer 一个可以在线听网易云音乐.QQ音乐.酷狗音乐的音乐播放器,还可以让你听自己的网易云歌单哦! A player that can make you listen to music o ...

  3. Qt模仿酷狗音乐的播放图标

    手机酷狗音乐在播放的时候,中间有一个旋转图标,显示播放进度,如下所示. Qt模仿酷狗音乐的播放图标效果图: 头文件 #ifndef QWHKUGOUMUSICLABEL_H #define QWHKU ...

  4. 仿酷狗音乐播放器开发日志——整体框架分析

    转载请说明出处,谢谢~~ 学习duilib界面库有一段时间了,除了仓鼠软件共享以外还没用它开发过什么完整的软件项目.今天看到酷狗音乐播放器做得不错,经过几年的改革,酷狗现在的UI已经相当不错了.在这个 ...

  5. KRSReader酷狗音乐歌词写真图片提取工具(提取KRS文件中的图片)

    最近发现酷狗音乐中的歌词写真图片还是比较给力的,很多友友表示喜欢,但是苦于不懂得如何提取,小菜利用周末闲暇时间写了一个小工具,专门用来提取酷狗音乐歌词写真图片. 废话不多说,软件界面如下: 使用说明: ...

  6. 酷狗音乐的大数据实践

    2015-06-03 王劲 高可用架构 高可用架构 此文是根据酷狗音乐大数据架构师王劲在[QCON高可用架构群]中的分享内容整理而成,转发请注明出处. 王劲:目前就职酷狗音乐,大数据架构师,负责酷狗大 ...

  7. xm文件怎样转换成mp3_酷狗音乐如何将歌曲转换成MP3格式?方法超级简单

    在我们平时的生活当中,听音乐来放松或者是打发时间,已经成为现代年轻人的一种娱乐方式.而我们平时听歌的时候,我们往往会遇到自己非常喜爱的歌曲,而此时将自己喜爱的歌曲下载下来后,想要存储到手机上继续听,但 ...

  8. android酷狗界面,酷狗音乐Android 2.2版系统优化版界面曝光

    酷狗音乐Android 2.2版系统优化版界面曝光 2011-03-23 13:30:13  来源:cnbeta 扫码可以: 1.在手机上浏览 2.分享给微信好友或朋友圈 摘要: 酷狗音乐也针对And ...

  9. 酷狗音乐linux版_酷狗音乐概念版APP内测获用户好评:极简化,更高级

    这两天在网上冲浪的时候,发现不少网友都在安利一个叫做"酷狗音乐概念版"的APP,难道是酷狗又在闷声搞大事了?搜了一下发现,原来是酷狗音乐概念版APP已经开始进入内测阶段,尝试着下载 ...

最新文章

  1. 速领:「人工智能算法从入门到精通教程」
  2. php flink,plus/flink.php · 辉辉菜/三强源码 - Gitee.com
  3. 【学术相关】不喜欢做研究,到底要不要读博士?
  4. ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼
  5. 深入理解InnoDB(7)—系统表空间
  6. vs怎么把textbox输入的实数放置变量里_方程的计算机处理96(3)_C++vs
  7. 机器学习之监督学习(五)——集成学习(Boosting)
  8. bzoj 1610: [Usaco2008 Feb]Line连线游戏
  9. Bootstrap-按钮
  10. python输入的字符串转换为对应的数字类型_Psychopy | 第1期:数据类型及运算符
  11. Windows 10 word无法创建工作文件,找不到临时环境变量
  12. 计算机系十周年聚会邀请函,十周年同学聚会邀请函
  13. 在Intellij IDEA中使用Debug
  14. 如何控制舵机的速度?
  15. 腾讯开源Spring Cloud Tencent 是什么
  16. java 对话框计算器,《Java程序设计》第16周礼拜四:GUI编程及文件对话框的使用 计算器...
  17. P3374 【模板】树状数组 1( 单点修改 + 区间查询 )
  18. Java 爬虫微信公众号详情,并且破解微信图片跨域问题
  19. oracle数据库管理员账户锁定,Oracle数据库账号被锁定解决方法
  20. archetype-catalog.xml

热门文章

  1. 获得32位UUID字符串和指定数目的UUID
  2. 《乌合之众》中30句精华
  3. 酷我音乐歌手写真接口分享
  4. 想开发微信小程序分销商城需要做好哪些地方?
  5. aspose-slides-22.5-jdk16
  6. HTML5对网络营销的影响,什么是互联网营销思维,简述互联网思维对网络营销的影响...
  7. 背单词的方法:抗遗忘超自然语境记单词01
  8. 使用Python遍历文件夹下文件寻找关键词
  9. Date的after和before方法
  10. 制作VMware 6.X安装源安装流程