├── icon
├── tv.png
├── down.png
├── film.png
└── live.png
├── resource.qrc
├── makeshell.h
├── icon.qrc
├── main.cpp
├── ceshi.h
├── README.md
├── moviemod.h
├── livemainwin.h
├── liveraspp.pro
├── ceshi.cpp
├── livemainwin.cpp
├── makeshell.cpp
├── getsrt.py
├── moviemod.cpp
└── liveraspp.pro.user
/icon/tv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suntaoxy/raspberrylive/HEAD/icon/tv.png
--------------------------------------------------------------------------------
/icon/down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suntaoxy/raspberrylive/HEAD/icon/down.png
--------------------------------------------------------------------------------
/icon/film.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suntaoxy/raspberrylive/HEAD/icon/film.png
--------------------------------------------------------------------------------
/icon/live.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suntaoxy/raspberrylive/HEAD/icon/live.png
--------------------------------------------------------------------------------
/resource.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | icon/film.png
4 | icon/tv.png
5 |
6 |
7 |
--------------------------------------------------------------------------------
/makeshell.h:
--------------------------------------------------------------------------------
1 | #ifndef MAKESHELL_H
2 | #define MAKESHELL_H
3 | #include
4 |
5 | void creat_shell(QString,QString); //连续剧模式
6 | void creat_srt_shell(QString,QString,QString); //单集模式
7 |
8 | #endif // MAKESHELL_H
9 |
--------------------------------------------------------------------------------
/icon.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | icon/film.png
4 | icon/tv.png
5 | icon/down.png
6 | icon/live.png
7 |
8 |
9 |
--------------------------------------------------------------------------------
/main.cpp:
--------------------------------------------------------------------------------
1 | //#include "ceshi.h"
2 | #include "livemainwin.h"
3 | #include
4 | #include
5 | #include
6 | int main(int argc, char *argv[])
7 | {
8 |
9 | QApplication a(argc, argv);
10 |
11 | // qDebug() <<"ceshi"<< QDir::currentPath();
12 | Livemainwin w;
13 |
14 | w.show();
15 |
16 | return a.exec();
17 | }
18 |
--------------------------------------------------------------------------------
/ceshi.h:
--------------------------------------------------------------------------------
1 | #ifndef CESHI_H
2 | #define CESHI_H
3 |
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include
12 |
13 | class Ceshi : public QWidget
14 | {
15 | Q_OBJECT
16 |
17 | public:
18 | Ceshi(QWidget *parent = 0);
19 | QString path_srt;
20 | ~Ceshi();
21 | // QString get_path();
22 | private:
23 | QLabel* websitelabel;
24 | QLabel* streamlabel;
25 | QLineEdit* websitetext;
26 | QLineEdit* streamtext;
27 | QPushButton* okbtn;
28 | QPushButton* closebtn;
29 | QPushButton* choosepath;
30 | QLineEdit* pathname;
31 | QProcess* process_0;
32 | // QDir* dir;
33 |
34 | private slots:
35 | void mkandexcute_shell();
36 | // void closed_shell();
37 | void showfile();
38 |
39 | };
40 |
41 | #endif // CESHI_H
42 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # raspberrylive
2 | A tool which can play videos on Live site by raspberry
3 |
4 | 一个树莓派用的直播工具
5 | 同样适用x86的windows和linux平台
6 | 鉴于斗鱼b站等直播网站经常改推流码,每次重写脚本很烦。所以做个小工具
7 |
8 | 推荐树莓派系统是raspbian stretch 即debian 9 这个系统的软件源很多软件是比较新的,省去很多麻烦
9 | 如果是debian 8 系统 请看wiki手动编译暗转ffmpeg方法
10 |
11 | 首先安装ffmpeg
12 | sudo apt install ffmpeg
13 |
14 | 安装qt(如果需要)
15 | sudo apt install qt5-default qtcreator
16 |
17 | 下载源代码
18 | git clone https://github.com/suntaobuaa/raspberrylive
19 |
20 | cd /raspberrylive
21 |
22 | qmake
23 |
24 | make
25 | 即可
26 |
27 | 或者用qtcreator打开.pro.user 文件 编译运行
28 |
29 | 目前支持两个模式,电影模式支持推流时添加字幕,但是树莓派性能不够,必须在x86平台运行
30 |
31 | 目前电影模式添加了在线下载字幕功能,感谢https://github.com/qzane/SPlayerSubDownloader
32 |
33 | 注意须将getsrt.py文件拷到可执行文件目录,未来考虑整合代码
34 |
35 | 电视剧模式,自动顺序播放文件夹下所有视频文件,不支持字幕功能,如需字幕,必须视频自带硬字幕
36 |
37 | 因为树莓派不能写NTFS格式硬盘,只能读。所以添加其他功能意义不大了
38 |
39 | 下载字幕功能已支持windows平台(需要安装python,并添加环境变量)。
40 |
41 | 字幕文件编码仍然存在问题,目前不支持非UTF8编码字幕文件,以后有时间修复
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/moviemod.h:
--------------------------------------------------------------------------------
1 | #ifndef MOVIEMOD_H
2 | #define MOVIEMOD_H
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include
12 |
13 |
14 | class Moviemod : public QWidget
15 | {
16 | Q_OBJECT
17 | public:
18 | explicit Moviemod(QWidget *parent);
19 | ~Moviemod();
20 | // QString path_srt;
21 | private:
22 | QLabel* websitelabel;
23 | QLabel* streamlabel;
24 | QLineEdit* websitetext;
25 | QLineEdit* streamtext;
26 | QPushButton* okbtn;
27 | QPushButton* closebtn;
28 | QPushButton* choosemoive;
29 | QLineEdit* moviename;
30 | QPushButton* choosesrt;
31 | QLineEdit* srt_name;
32 |
33 | QProcess* process_0;
34 |
35 | QFileSystemWatcher fswatcher;
36 |
37 | signals:
38 |
39 | public slots:
40 |
41 | void mkandexcute_shell();
42 | void showfile();
43 | void showsrt();
44 | void downsrt();
45 | void setsrt(QString);
46 |
47 | };
48 |
49 | #endif // MOVIEMOD_H
50 |
--------------------------------------------------------------------------------
/livemainwin.h:
--------------------------------------------------------------------------------
1 | #ifndef LIVEMAINWIN_H
2 | #define LIVEMAINWIN_H
3 |
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include "ceshi.h"
11 | #include "moviemod.h"
12 |
13 | class Livemainwin : public QMainWindow
14 | {
15 | Q_OBJECT
16 | public:
17 | Livemainwin(QWidget *parent = 0);
18 | ~Livemainwin();
19 | void createAction();
20 | void createMenu();
21 | void createToolBar();
22 |
23 | private:
24 | Ceshi* excutool;
25 | Moviemod* movie_excutool;
26 |
27 | QMenu* fileMenu;
28 | QMenu* aboutMenu;
29 | QMenu* subtitleMenu;
30 | // QMenu* test1;
31 | // QMenu* test2;
32 | QAction* displayjindu;
33 | QAction* displaynow_tvnum;
34 | QAction* disallinfo;
35 | QAction* turn_movie_mod;
36 | QAction* turn_tv_mod;
37 | QAction* about_author;
38 | QAction* download_srt;
39 | QToolBar* jinduToolBar;
40 | QToolBar* srtToolBar;
41 |
42 |
43 | signals:
44 |
45 | public slots:
46 | void turntv();
47 | void turnmovie();
48 | void showauthor();
49 |
50 | };
51 |
52 | #endif // LIVEMAINWIN_H
53 |
--------------------------------------------------------------------------------
/liveraspp.pro:
--------------------------------------------------------------------------------
1 | #-------------------------------------------------
2 | #
3 | # Project created by QtCreator 2018-04-26T23:00:56
4 | #
5 | #-------------------------------------------------
6 |
7 | QT += core gui
8 |
9 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
10 |
11 | TARGET = liveraspp
12 | TEMPLATE = app
13 |
14 | # The following define makes your compiler emit warnings if you use
15 | # any feature of Qt which as been marked as deprecated (the exact warnings
16 | # depend on your compiler). Please consult the documentation of the
17 | # deprecated API in order to know how to port your code away from it.
18 | DEFINES += QT_DEPRECATED_WARNINGS
19 |
20 | # You can also make your code fail to compile if you use deprecated APIs.
21 | # In order to do so, uncomment the following line.
22 | # You can also select to disable deprecated APIs only up to a certain version of Qt.
23 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
24 |
25 |
26 | SOURCES += main.cpp\
27 | ceshi.cpp \
28 | makeshell.cpp \
29 | livemainwin.cpp \
30 | moviemod.cpp
31 |
32 | HEADERS += ceshi.h \
33 | makeshell.h \
34 | livemainwin.h \
35 | moviemod.h
36 |
37 | RESOURCES += \
38 | icon.qrc
39 |
40 | DISTFILES += \
41 | getsrt.py
42 |
--------------------------------------------------------------------------------
/ceshi.cpp:
--------------------------------------------------------------------------------
1 | #include "ceshi.h"
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include "makeshell.h"
7 |
8 | Ceshi::Ceshi(QWidget *parent)
9 | : QWidget(parent)
10 | {
11 | // setWindowTitle(tr("raspberry-livetool"));
12 | // setGeometry(500,100,400,200);
13 | websitelabel=new QLabel(tr("网址"));
14 | websitetext=new QLineEdit("rtmp://js.live-send.acg.tv/live-js/");
15 | streamlabel=new QLabel(tr("推流码"));
16 | streamtext=new QLineEdit("?streamname=live_956714_5294207&key=a47f28b34b8809026e8e93e75adca602");
17 | okbtn=new QPushButton;
18 | okbtn->setText(tr("开始直播"));
19 | closebtn=new QPushButton;
20 | closebtn->setText(tr("停止直播"));
21 | choosepath=new QPushButton;
22 | choosepath->setText(tr("选择路径"));
23 | pathname=new QLineEdit;
24 |
25 |
26 | QGridLayout* mainlayout=new QGridLayout(this);
27 | QHBoxLayout* btnlayout=new QHBoxLayout;
28 | btnlayout->addStretch(1);
29 | btnlayout->addWidget(okbtn);
30 | btnlayout->addWidget(closebtn);
31 | mainlayout->setMargin(10);
32 | mainlayout->setSpacing(6);
33 | mainlayout->addWidget(websitelabel,0,0);
34 | mainlayout->addWidget(websitetext,0,1);
35 | mainlayout->addWidget(streamlabel,1,0);
36 | mainlayout->addWidget(streamtext,1,1);
37 | mainlayout->addWidget(choosepath,2,0);
38 | mainlayout->addWidget(pathname,2,1);
39 | mainlayout->addLayout(btnlayout,3,0,1,2);
40 | process_0 = new QProcess(this);
41 | connect(okbtn,SIGNAL(clicked()),this,SLOT(mkandexcute_shell()));
42 | connect(choosepath,SIGNAL(clicked()),this,SLOT(showfile()));
43 | connect(closebtn,SIGNAL(clicked()),process_0,SLOT(kill()));
44 |
45 |
46 | }
47 |
48 | void Ceshi::mkandexcute_shell()
49 | {
50 | QString rtmp = websitetext->text()+streamtext->text();
51 |
52 | creat_shell(pathname->text(),rtmp);
53 |
54 | QString pathofshell = "sh " + QDir::currentPath() + "/raspliveshell.sh" ;
55 |
56 | // qDebug() << pathofshell;
57 | process_0->start(pathofshell);
58 | }
59 | void Ceshi::showfile()
60 | {
61 | QString path_of_video =QFileDialog::getExistingDirectory(this,tr("选择视频文件所在目录"),"/");
62 | pathname->setText(path_of_video);
63 | }
64 | /*void Ceshi::closed_shell()
65 | {
66 | process_0->kill();
67 | delete process_0;
68 | }
69 | */
70 |
71 |
72 |
73 |
74 | Ceshi::~Ceshi()
75 | {
76 |
77 | }
78 |
--------------------------------------------------------------------------------
/livemainwin.cpp:
--------------------------------------------------------------------------------
1 | #include "livemainwin.h"
2 | #include "makeshell.h"
3 | #include
4 | #include
5 | #include
6 | #include
7 |
8 | Livemainwin::Livemainwin(QWidget *parent) : QMainWindow(parent)
9 | {
10 | setWindowTitle(tr("树莓派直播工具"));
11 | setGeometry(500,100,400,200);
12 | excutool =new Ceshi(this);
13 | movie_excutool=new Moviemod(this);
14 | setCentralWidget(movie_excutool);
15 | setWindowIcon(QIcon(":icon/icon/live.png"));
16 |
17 | createAction();
18 | createMenu();
19 | createToolBar();
20 |
21 | }
22 |
23 |
24 | void Livemainwin::createAction()
25 | {
26 | displayjindu = new QAction(QIcon("jindu.png"),tr("显示进度"),this);
27 | displayjindu->setShortcut(tr("Ctrl+I"));
28 | displayjindu->setStatusTip(tr("显示播放进度"));
29 |
30 | displaynow_tvnum = new QAction(QIcon("png1.png"),tr("显示集数"),this);
31 |
32 | turn_movie_mod = new QAction(QIcon(":/icon/icon/film.png"),tr("电影模式"),this);
33 | turn_movie_mod->setStatusTip(tr("播放单个电影文件"));
34 | connect(turn_movie_mod,SIGNAL(triggered(bool)),this,SLOT(turnmovie()));
35 |
36 | turn_tv_mod = new QAction(QIcon(":/icon/icon/tv.png"),tr("电视剧模式"),this);
37 | turn_movie_mod->setStatusTip(tr("播放多集电视剧"));
38 | connect(turn_tv_mod,SIGNAL(triggered(bool)),this,SLOT(turntv()));
39 |
40 | about_author = new QAction(tr("关于作者"),this);
41 | about_author->setStatusTip(tr("关于作者"));
42 | connect(about_author,SIGNAL(triggered(bool)),this,SLOT(showauthor()));
43 |
44 | download_srt = new QAction(QIcon(":/icon/icon/down.png"),tr("下载字幕"),this);
45 | download_srt->setStatusTip(tr("下载匹配的字幕文件"));
46 | connect(download_srt,SIGNAL(triggered(bool)),movie_excutool,SLOT(downsrt()));
47 |
48 | }
49 |
50 | void Livemainwin::createMenu()
51 | {
52 | fileMenu = menuBar()->addMenu(tr("进度"));
53 | fileMenu->addAction(displayjindu);
54 | fileMenu->addAction(displaynow_tvnum);
55 |
56 | subtitleMenu = menuBar()->addMenu(tr("字幕模式"));
57 | subtitleMenu->addAction(turn_movie_mod);
58 | subtitleMenu->addAction(turn_tv_mod);
59 | subtitleMenu->addAction(download_srt);
60 |
61 | aboutMenu = menuBar()->addMenu(tr("关于"));
62 | aboutMenu->addAction(about_author);
63 |
64 | }
65 |
66 | void Livemainwin::createToolBar()
67 | {
68 | jinduToolBar = addToolBar("mod");
69 | jinduToolBar->addAction(turn_movie_mod);
70 | jinduToolBar->addAction(turn_tv_mod);
71 |
72 | srtToolBar = addToolBar("zimu");
73 | srtToolBar->addAction(download_srt);
74 | }
75 |
76 | void Livemainwin::turnmovie()
77 | {
78 | // movie_excutool =new Moviemod(this);
79 | centralWidget()->setParent(0);
80 | setCentralWidget(movie_excutool);
81 |
82 | }
83 |
84 | void Livemainwin::turntv()
85 | {
86 | // excutool =new Ceshi(this);
87 | centralWidget()->setParent(0);
88 | setCentralWidget(excutool);
89 |
90 | }
91 |
92 | void Livemainwin::showauthor()
93 | {
94 | QMessageBox::about(this,tr("作者"),tr("美国的华莱士"));
95 | return;
96 | }
97 |
98 |
99 |
100 | Livemainwin::~Livemainwin()
101 | {
102 |
103 | }
104 |
105 |
106 |
--------------------------------------------------------------------------------
/makeshell.cpp:
--------------------------------------------------------------------------------
1 | #include "makeshell.h"
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include
7 |
8 |
9 | void creat_shell(QString pwd,QString rtmp)
10 | {
11 | QStringList str_list;
12 | str_list<<"*";
13 | QDir diry(pwd);
14 | QFileInfoList filelist=diry.entryInfoList(str_list,QDir::Files,QDir::Name);
15 | QFile file("raspliveshell.sh");
16 | if(file.open(QIODevice::ReadWrite|QIODevice::Truncate))
17 | {
18 | QString ffmpeg_order_fore =" ffmpeg -re -i ";
19 | QString ffmpeg_order_mid =" -vcodec copy -acodec aac -b:a 128k -f flv ";
20 | QTextStream writeinshell(&file);
21 | writeinshell<<"#!/bin/bash"<
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include "makeshell.h"
8 | #include
9 | Moviemod::Moviemod(QWidget *parent) : QWidget(parent)
10 | {
11 | websitelabel=new QLabel(tr("网址"));
12 | websitetext=new QLineEdit("rtmp://js.live-send.acg.tv/live-js/");
13 | streamlabel=new QLabel(tr("推流码"));
14 | streamtext=new QLineEdit("?streamname=live_956714_5294207&key=a47f28b34b8809026e8e93e75adca602");
15 | okbtn=new QPushButton;
16 | okbtn->setText(tr("开始直播"));
17 | closebtn=new QPushButton;
18 | closebtn->setText(tr("停止直播"));
19 | choosemoive=new QPushButton;
20 | choosemoive->setText(tr("选择电影"));
21 | moviename=new QLineEdit;
22 | choosesrt=new QPushButton;
23 | choosesrt->setText(tr("选择字幕"));
24 | srt_name=new QLineEdit;
25 |
26 | // fswatcher = new QFileSystemWatcher(this);
27 |
28 |
29 | QGridLayout* mainlayout=new QGridLayout(this);
30 | QHBoxLayout* btnlayout=new QHBoxLayout;
31 | btnlayout->addStretch(1);
32 | btnlayout->addWidget(okbtn);
33 | btnlayout->addWidget(closebtn);
34 | mainlayout->setMargin(10);
35 | mainlayout->setSpacing(6);
36 | mainlayout->addWidget(websitelabel,0,0);
37 | mainlayout->addWidget(websitetext,0,1);
38 | mainlayout->addWidget(streamlabel,1,0);
39 | mainlayout->addWidget(streamtext,1,1);
40 | mainlayout->addWidget(choosemoive,2,0);
41 | mainlayout->addWidget(moviename,2,1);
42 | mainlayout->addWidget(choosesrt,3,0);
43 | mainlayout->addWidget(srt_name,3,1);
44 | mainlayout->addLayout(btnlayout,4,0,1,2);
45 | process_0 = new QProcess(this);
46 | connect(okbtn,SIGNAL(clicked()),this,SLOT(mkandexcute_shell()));
47 | connect(choosemoive,SIGNAL(clicked()),this,SLOT(showfile()));
48 | connect(closebtn,SIGNAL(clicked()),process_0,SLOT(kill()));
49 | connect(choosesrt,SIGNAL(clicked(bool)),this,SLOT(showsrt()));
50 |
51 | connect(&fswatcher,SIGNAL(directoryChanged(QString)),this,SLOT(setsrt(QString)));
52 |
53 |
54 | }
55 |
56 | void Moviemod::showfile()
57 | {
58 | QString path_of_video =QFileDialog::getOpenFileName(this,tr("选择电影文件"),"/");
59 | moviename->setText(path_of_video);
60 | }
61 |
62 |
63 | void Moviemod::showsrt()
64 | {
65 | QString path_of_video =QFileDialog::getOpenFileName(this,tr("选择srt字幕文件"),moviename->text());
66 | srt_name->setText(path_of_video);
67 | }
68 |
69 | void Moviemod::mkandexcute_shell()
70 | {
71 | QString rtmp = websitetext->text()+streamtext->text();
72 | creat_srt_shell(moviename->text(),rtmp,srt_name->text());
73 | #if defined(Q_OS_WIN32)
74 | QString pathofshell = QDir::currentPath() + "/raspliveshell.bat" ;
75 | qDebug() << pathofshell;
76 | process_0->start("cmd.exe",QStringList() << "/c" << pathofshell);
77 |
78 | #elif defined(Q_OS_LINUX)
79 | QString pathofshell = "sh "+QDir::currentPath() + "/raspliveshell.sh" ;
80 | qDebug() << pathofshell;
81 | process_0->start(pathofshell);
82 | #endif
83 |
84 |
85 | }
86 |
87 | void Moviemod::downsrt()
88 | {
89 | if(moviename->text().isEmpty())
90 | return;
91 |
92 | QString path_movie=moviename->text();
93 | QFileInfo mvinfo(path_movie);
94 | fswatcher.addPath(mvinfo.absolutePath());
95 | qDebug()<start(shell);
100 | #elif defined(Q_OS_WIN32)
101 | QString shell = QApplication::applicationDirPath()+"/getsrt.py "+path_movie;
102 | qDebug()<start("cmd.exe",QStringList() << "/c" << shell);
104 | #endif
105 |
106 | }
107 |
108 | void Moviemod::setsrt(QString path)
109 | {
110 | // qDebug()<start(shell);
123 | #elif defined(Q_OS_WIN32)
124 | qDebug()<start("cmd.exe",QStringList() << "/c" << shell);
126 | #endif
127 | break;
128 | }
129 |
130 | }
131 | foreach(QFileInfo finfo, filelist)
132 | {
133 | if(finfo.suffix()=="ass"||finfo.suffix()=="srt")
134 | {
135 | srt_name->setText(finfo.absoluteFilePath());
136 | break;
137 | }
138 | }
139 | }
140 |
141 |
142 | Moviemod::~Moviemod()
143 | {
144 |
145 | }
146 |
--------------------------------------------------------------------------------
/liveraspp.pro.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | EnvironmentId
7 | {ad5ac58d-9bec-46cb-93c7-6474e1a2dc0b}
8 |
9 |
10 | ProjectExplorer.Project.ActiveTarget
11 | 1
12 |
13 |
14 | ProjectExplorer.Project.EditorSettings
15 |
16 | true
17 | false
18 | true
19 |
20 | Cpp
21 |
22 | CppGlobal
23 |
24 |
25 |
26 | QmlJS
27 |
28 | QmlJSGlobal
29 |
30 |
31 | 2
32 | UTF-8
33 | false
34 | 4
35 | false
36 | 80
37 | true
38 | true
39 | 1
40 | true
41 | false
42 | 0
43 | true
44 | true
45 | 0
46 | 8
47 | true
48 | 1
49 | true
50 | true
51 | true
52 | false
53 |
54 |
55 |
56 | ProjectExplorer.Project.PluginSettings
57 |
58 |
59 |
60 |
61 |
62 | ProjectExplorer.Project.Target.0
63 |
64 | Android for armeabi-v7a (GCC 4.9, Qt 5.10.1 for Android armv7)
65 | Android for armeabi-v7a (GCC 4.9, Qt 5.10.1 for Android armv7)
66 | {9b4749c6-1900-495c-85f3-334b63012256}
67 | 0
68 | 0
69 | 0
70 |
71 | C:/Users/sunta/Documents/qtstudy/build-liveraspp-Android_for_armeabi_v7a_GCC_4_9_Qt_5_10_1_for_Android_armv7-Debug
72 |
73 |
74 | true
75 | qmake
76 |
77 | QtProjectManager.QMakeBuildStep
78 | true
79 |
80 | false
81 | false
82 | false
83 |
84 |
85 | true
86 | Make
87 |
88 | Qt4ProjectManager.MakeStep
89 |
90 | -w
91 | -r
92 |
93 | false
94 |
95 |
96 |
97 |
98 | true
99 | Copy application data
100 |
101 | Qt4ProjectManager.AndroidPackageInstallationStep
102 |
103 |
104 | android-24
105 |
106 | true
107 | Build Android APK
108 |
109 | QmakeProjectManager.AndroidBuildApkStep
110 | 1
111 | false
112 |
113 | 4
114 | 构建
115 |
116 | ProjectExplorer.BuildSteps.Build
117 |
118 |
119 |
120 | true
121 | Make
122 |
123 | Qt4ProjectManager.MakeStep
124 |
125 | -w
126 | -r
127 |
128 | true
129 | clean
130 |
131 |
132 | 1
133 | 清理
134 |
135 | ProjectExplorer.BuildSteps.Clean
136 |
137 | 2
138 | false
139 |
140 | Debug
141 |
142 | Qt4ProjectManager.Qt4BuildConfiguration
143 | 2
144 | true
145 |
146 |
147 | C:/Users/sunta/Documents/qtstudy/build-liveraspp-Android_for_armeabi_v7a_GCC_4_9_Qt_5_10_1_for_Android_armv7-Release
148 |
149 |
150 | true
151 | qmake
152 |
153 | QtProjectManager.QMakeBuildStep
154 | false
155 |
156 | false
157 | false
158 | false
159 |
160 |
161 | true
162 | Make
163 |
164 | Qt4ProjectManager.MakeStep
165 |
166 | -w
167 | -r
168 |
169 | false
170 |
171 |
172 |
173 |
174 | true
175 | Copy application data
176 |
177 | Qt4ProjectManager.AndroidPackageInstallationStep
178 |
179 |
180 | android-24
181 |
182 | true
183 | Build Android APK
184 |
185 | QmakeProjectManager.AndroidBuildApkStep
186 | 1
187 | false
188 |
189 | 4
190 | 构建
191 |
192 | ProjectExplorer.BuildSteps.Build
193 |
194 |
195 |
196 | true
197 | Make
198 |
199 | Qt4ProjectManager.MakeStep
200 |
201 | -w
202 | -r
203 |
204 | true
205 | clean
206 |
207 |
208 | 1
209 | 清理
210 |
211 | ProjectExplorer.BuildSteps.Clean
212 |
213 | 2
214 | false
215 |
216 | Release
217 |
218 | Qt4ProjectManager.Qt4BuildConfiguration
219 | 0
220 | true
221 |
222 |
223 | C:/Users/sunta/Documents/qtstudy/build-liveraspp-Android_for_armeabi_v7a_GCC_4_9_Qt_5_10_1_for_Android_armv7-Profile
224 |
225 |
226 | true
227 | qmake
228 |
229 | QtProjectManager.QMakeBuildStep
230 | true
231 |
232 | false
233 | true
234 | false
235 |
236 |
237 | true
238 | Make
239 |
240 | Qt4ProjectManager.MakeStep
241 |
242 | -w
243 | -r
244 |
245 | false
246 |
247 |
248 |
249 |
250 | true
251 | Copy application data
252 |
253 | Qt4ProjectManager.AndroidPackageInstallationStep
254 |
255 |
256 | android-24
257 |
258 | true
259 | Build Android APK
260 |
261 | QmakeProjectManager.AndroidBuildApkStep
262 | 1
263 | false
264 |
265 | 4
266 | 构建
267 |
268 | ProjectExplorer.BuildSteps.Build
269 |
270 |
271 |
272 | true
273 | Make
274 |
275 | Qt4ProjectManager.MakeStep
276 |
277 | -w
278 | -r
279 |
280 | true
281 | clean
282 |
283 |
284 | 1
285 | 清理
286 |
287 | ProjectExplorer.BuildSteps.Clean
288 |
289 | 2
290 | false
291 |
292 | Profile
293 |
294 | Qt4ProjectManager.Qt4BuildConfiguration
295 | 0
296 | true
297 |
298 | 3
299 |
300 |
301 |
302 | true
303 | Deploy to Android device
304 |
305 | Qt4ProjectManager.AndroidDeployQtStep
306 | false
307 |
308 | 1
309 | 部署
310 |
311 | ProjectExplorer.BuildSteps.Deploy
312 |
313 | 1
314 | 部署到Android设备
315 | 部署到Android设备
316 | Qt4ProjectManager.AndroidDeployConfiguration2
317 |
318 | 1
319 |
320 | emulator-5554
321 |
322 |
323 | false
324 | false
325 | 1000
326 |
327 | true
328 |
329 | false
330 | false
331 | false
332 | false
333 | true
334 | 0.01
335 | 10
336 | true
337 | 1
338 | 25
339 |
340 | 1
341 | true
342 | false
343 | true
344 | valgrind
345 |
346 | 0
347 | 1
348 | 2
349 | 3
350 | 4
351 | 5
352 | 6
353 | 7
354 | 8
355 | 9
356 | 10
357 | 11
358 | 12
359 | 13
360 | 14
361 |
362 |
363 |
364 |
365 | liveraspp
366 |
367 | Qt4ProjectManager.AndroidRunConfiguration:C:/Users/sunta/Documents/qtstudy/liveraspp/liveraspp.pro
368 | liveraspp.pro
369 | 3768
370 | false
371 | true
372 | false
373 | false
374 | true
375 |
376 | 1
377 |
378 |
379 |
380 | ProjectExplorer.Project.Target.1
381 |
382 | Desktop Qt 5.10.1 MinGW 32bit
383 | Desktop Qt 5.10.1 MinGW 32bit
384 | qt.qt5.5101.win32_mingw53_kit
385 | 0
386 | 0
387 | 0
388 |
389 | C:/Users/sunta/Documents/qtstudy/build-liveraspp-Desktop_Qt_5_10_1_MinGW_32bit-Debug
390 |
391 |
392 | true
393 | qmake
394 |
395 | QtProjectManager.QMakeBuildStep
396 | true
397 |
398 | false
399 | false
400 | false
401 |
402 |
403 | true
404 | Make
405 |
406 | Qt4ProjectManager.MakeStep
407 |
408 | false
409 |
410 |
411 |
412 | 2
413 | 构建
414 |
415 | ProjectExplorer.BuildSteps.Build
416 |
417 |
418 |
419 | true
420 | Make
421 |
422 | Qt4ProjectManager.MakeStep
423 |
424 | true
425 | clean
426 |
427 |
428 | 1
429 | 清理
430 |
431 | ProjectExplorer.BuildSteps.Clean
432 |
433 | 2
434 | false
435 |
436 | Debug
437 |
438 | Qt4ProjectManager.Qt4BuildConfiguration
439 | 2
440 | true
441 |
442 |
443 | C:/Users/sunta/Documents/qtstudy/build-liveraspp-Desktop_Qt_5_10_1_MinGW_32bit-Release
444 |
445 |
446 | true
447 | qmake
448 |
449 | QtProjectManager.QMakeBuildStep
450 | false
451 |
452 | false
453 | false
454 | false
455 |
456 |
457 | true
458 | Make
459 |
460 | Qt4ProjectManager.MakeStep
461 |
462 | false
463 |
464 |
465 |
466 | 2
467 | 构建
468 |
469 | ProjectExplorer.BuildSteps.Build
470 |
471 |
472 |
473 | true
474 | Make
475 |
476 | Qt4ProjectManager.MakeStep
477 |
478 | true
479 | clean
480 |
481 |
482 | 1
483 | 清理
484 |
485 | ProjectExplorer.BuildSteps.Clean
486 |
487 | 2
488 | false
489 |
490 | Release
491 |
492 | Qt4ProjectManager.Qt4BuildConfiguration
493 | 0
494 | true
495 |
496 |
497 | C:/Users/sunta/Documents/qtstudy/build-liveraspp-Desktop_Qt_5_10_1_MinGW_32bit-Profile
498 |
499 |
500 | true
501 | qmake
502 |
503 | QtProjectManager.QMakeBuildStep
504 | true
505 |
506 | false
507 | true
508 | false
509 |
510 |
511 | true
512 | Make
513 |
514 | Qt4ProjectManager.MakeStep
515 |
516 | false
517 |
518 |
519 |
520 | 2
521 | 构建
522 |
523 | ProjectExplorer.BuildSteps.Build
524 |
525 |
526 |
527 | true
528 | Make
529 |
530 | Qt4ProjectManager.MakeStep
531 |
532 | true
533 | clean
534 |
535 |
536 | 1
537 | 清理
538 |
539 | ProjectExplorer.BuildSteps.Clean
540 |
541 | 2
542 | false
543 |
544 | Profile
545 |
546 | Qt4ProjectManager.Qt4BuildConfiguration
547 | 0
548 | true
549 |
550 | 3
551 |
552 |
553 | 0
554 | 部署
555 |
556 | ProjectExplorer.BuildSteps.Deploy
557 |
558 | 1
559 | 在本地部署
560 |
561 | ProjectExplorer.DefaultDeployConfiguration
562 |
563 | 1
564 |
565 |
566 | false
567 | false
568 | 1000
569 |
570 | true
571 |
572 | false
573 | false
574 | false
575 | false
576 | true
577 | 0.01
578 | 10
579 | true
580 | 1
581 | 25
582 |
583 | 1
584 | true
585 | false
586 | true
587 | valgrind
588 |
589 | 0
590 | 1
591 | 2
592 | 3
593 | 4
594 | 5
595 | 6
596 | 7
597 | 8
598 | 9
599 | 10
600 | 11
601 | 12
602 | 13
603 | 14
604 |
605 | 2
606 |
607 | liveraspp
608 |
609 | Qt4ProjectManager.Qt4RunConfiguration:C:/Users/sunta/Documents/qtstudy/liveraspp/liveraspp.pro
610 | true
611 |
612 | liveraspp.pro
613 | false
614 |
615 | C:/Users/sunta/Documents/qtstudy/build-liveraspp-Desktop_Qt_5_10_1_MinGW_32bit-Debug
616 | 3768
617 | false
618 | true
619 | false
620 | false
621 | true
622 |
623 | 1
624 |
625 |
626 |
627 | ProjectExplorer.Project.TargetCount
628 | 2
629 |
630 |
631 | ProjectExplorer.Project.Updater.FileVersion
632 | 18
633 |
634 |
635 | Version
636 | 18
637 |
638 |
639 |
--------------------------------------------------------------------------------