Skip to content

Commit c21bfb4

Browse files
committed
[增加日志记录和配置目录设置功能]:在mpvplayer示例程序中增加了日志记录和配置目录设置的功能,并更新了相关代码。
- 在`mainwindow.cc`中为`mpvPlayer`增加了日志文件路径设置和配置目录设置,使用`Utils`命名空间下的函数获取日志路径和配置路径。 - 更新了`mpvplayer.cc`,为`MpvPlayer`类增加了设置和获取日志文件路径以及配置目录的函数。 - 在`mpvplayer.hpp`中,为`MpvPlayer`类声明了新的公共成员函数,包括设置和获取日志文件路径及配置目录。 - 修改了`previewwidget.cc`中的`startPreview`函数,使用新的接口设置音频和字幕轨道为"no",替换了旧的阻塞方法。
1 parent 4e8cd86 commit c21bfb4

File tree

4 files changed

+57
-20
lines changed

4 files changed

+57
-20
lines changed

examples/mpvplayer/mainwindow.cc

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <mpv/mpvplayer.hpp>
1414
#include <mpv/mpvwidget.hpp>
1515
#include <mpv/previewwidget.hpp>
16+
#include <utils/utils.h>
1617

1718
#include <QtWidgets>
1819

@@ -34,6 +35,12 @@ class MainWindow::MainWindowPrivate
3435
mpvWidget->setAcceptDrops(true);
3536
mpvPlayer->setPrintToStd(true);
3637

38+
auto logFilePath = QString("%1/mpv_%2.log")
39+
.arg(Utils::logPath(),
40+
QDateTime::currentDateTime().toString("yyyyMMdd"));
41+
mpvPlayer->setLogFile(logFilePath);
42+
mpvPlayer->setConfigDir(Utils::configPath());
43+
3744
logWindow = new Mpv::MpvLogWindow(q_ptr);
3845
logWindow->setMinimumSize(500, 325);
3946
logWindow->show();
@@ -773,15 +780,15 @@ void MainWindow::initMenu()
773780

774781
connect(d_ptr->videoTracksGroup, &QActionGroup::triggered, this, [this](QAction *action) {
775782
auto data = action->data().value<Mpv::TraskInfo>();
776-
d_ptr->mpvPlayer->setVideoTrack(data.id);
783+
d_ptr->mpvPlayer->setVid(data.id);
777784
});
778785
connect(d_ptr->audioTracksGroup, &QActionGroup::triggered, this, [this](QAction *action) {
779786
auto data = action->data().value<Mpv::TraskInfo>();
780-
d_ptr->mpvPlayer->setAudioTrack(data.id);
787+
d_ptr->mpvPlayer->setAid(data.id);
781788
});
782789
connect(d_ptr->subTracksGroup, &QActionGroup::triggered, this, [this](QAction *action) {
783790
auto data = action->data().value<Mpv::TraskInfo>();
784-
d_ptr->mpvPlayer->setSubTrack(data.id);
791+
d_ptr->mpvPlayer->setSid(data.id);
785792
});
786793
connect(d_ptr->loadSubTitlesAction, &QAction::triggered, this, &MainWindow::onLoadSubtitleFiles);
787794
connect(d_ptr->subDelayAction,

src/mpv/mpvplayer.cc

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -242,37 +242,37 @@ auto MpvPlayer::subTracks() const -> TraskInfos
242242
return d_ptr->subTracks;
243243
}
244244

245-
void MpvPlayer::setVideoTrack(int vid)
245+
void MpvPlayer::setVid(const QVariant &vid)
246246
{
247247
qInfo() << "vid: " << vid;
248248
mpv::qt::set_property_async(d_ptr->mpv, "vid", vid);
249249
}
250250

251-
void MpvPlayer::blockVideoTrack()
251+
QVariant MpvPlayer::vid() const
252252
{
253-
mpv::qt::set_property_async(d_ptr->mpv, "vid", "no");
253+
return mpv::qt::get_property(d_ptr->mpv, "vid");
254254
}
255255

256-
void MpvPlayer::setAudioTrack(int aid)
256+
void MpvPlayer::setAid(const QVariant &aid)
257257
{
258258
qInfo() << "aid: " << aid;
259259
mpv::qt::set_property_async(d_ptr->mpv, "aid", aid);
260260
}
261261

262-
void MpvPlayer::blockAudioTrack()
262+
QVariant MpvPlayer::aid() const
263263
{
264-
mpv::qt::set_property_async(d_ptr->mpv, "aid", "no");
264+
return mpv::qt::get_property(d_ptr->mpv, "aid");
265265
}
266266

267-
void MpvPlayer::setSubTrack(int sid)
267+
void MpvPlayer::setSid(const QVariant &sid)
268268
{
269269
qInfo() << "sid: " << sid;
270270
mpv::qt::set_property_async(d_ptr->mpv, "sid", sid);
271271
}
272272

273-
void MpvPlayer::blockSubTrack()
273+
QVariant MpvPlayer::sid() const
274274
{
275-
mpv::qt::set_property_async(d_ptr->mpv, "sid", "no");
275+
return mpv::qt::get_property(d_ptr->mpv, "sid");
276276
}
277277

278278
void MpvPlayer::addAudio(const QStringList &paths)
@@ -537,6 +537,28 @@ QString MpvPlayer::targetPrimariesName() const
537537
return mpv::qt::get_property(d_ptr->mpv, "target-prim").toString();
538538
}
539539

540+
void MpvPlayer::setLogFile(const QString &logFile)
541+
{
542+
qInfo() << "log-file: " << logFile;
543+
mpv::qt::set_property_async(d_ptr->mpv, "log-file", logFile);
544+
}
545+
546+
QString MpvPlayer::logFile() const
547+
{
548+
return mpv::qt::get_property(d_ptr->mpv, "log-file").toString();
549+
}
550+
551+
void MpvPlayer::setConfigDir(const QString &configDir)
552+
{
553+
qInfo() << "config-dir: " << configDir;
554+
mpv::qt::set_property_async(d_ptr->mpv, "config-dir", configDir);
555+
}
556+
557+
QString MpvPlayer::configDir() const
558+
{
559+
return mpv::qt::get_property(d_ptr->mpv, "config-dir").toString();
560+
}
561+
540562
void MpvPlayer::pauseAsync()
541563
{
542564
auto state = !isPaused();

src/mpv/mpvplayer.hpp

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,14 @@ class MPV_LIB_EXPORT MpvPlayer : public QObject
3737
[[nodiscard]] auto audioTracks() const -> TraskInfos;
3838
[[nodiscard]] auto subTracks() const -> TraskInfos;
3939

40-
void setVideoTrack(int vid);
41-
void blockVideoTrack();
42-
void setAudioTrack(int aid);
43-
void blockAudioTrack();
44-
void setSubTrack(int sid);
45-
void blockSubTrack();
40+
void setVid(const QVariant &vid);
41+
[[nodiscard]] auto vid() const -> QVariant;
42+
43+
void setAid(const QVariant &aid);
44+
[[nodiscard]] auto aid() const -> QVariant;
45+
46+
void setSid(const QVariant &sid);
47+
[[nodiscard]] auto sid() const -> QVariant;
4648

4749
void addAudio(const QStringList &paths);
4850
void addSub(const QStringList &paths);
@@ -98,6 +100,12 @@ class MPV_LIB_EXPORT MpvPlayer : public QObject
98100
void setTargetPrimaries(const QString &targetPrimaries);
99101
[[nodiscard]] auto targetPrimariesName() const -> QString;
100102

103+
void setLogFile(const QString &logFile);
104+
[[nodiscard]] auto logFile() const -> QString;
105+
106+
void setConfigDir(const QString &configDir);
107+
[[nodiscard]] auto configDir() const -> QString;
108+
101109
void pauseAsync();
102110
void pauseSync(bool state);
103111
auto isPaused() -> bool;

src/mpv/previewwidget.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ void PreviewWidget::startPreview(const QString &filepath, int timestamp)
4545
{
4646
if (filepath != d_ptr->mpvPlayer->filepath()) {
4747
d_ptr->mpvPlayer->openMedia(filepath);
48-
d_ptr->mpvPlayer->blockAudioTrack();
49-
d_ptr->mpvPlayer->blockSubTrack();
48+
d_ptr->mpvPlayer->setAid("no");
49+
d_ptr->mpvPlayer->setSid("no");
5050
}
5151
d_ptr->mpvPlayer->seek(timestamp);
5252
}

0 commit comments

Comments
 (0)