OBS --- 录像地址

1、录像地址问题

当删除原来的录像地址后, 更换新地址,没有起作用

关键词      ui->simpleOutputPath->setText(path);

1)、选新地址

void OBSBasicSettings::on_simpleOutputBrowse_clicked()
{
	QString dir = SelectDirectory(
		this, QTStr("Basic.Settings.Output.SelectDirectory"),
		ui->simpleOutputPath->text());
	if (dir.isEmpty())
		return;

	ui->simpleOutputPath->setText(dir);
}

2)、保存

SaveEdit(ui->simpleOutputPath, "SimpleOutput", "FilePath");

void OBSBasicSettings::SaveEdit(QLineEdit *widget, const char *section,
				const char *value)
{
	if (WidgetChanged(widget))
		config_set_string(main->Config(), section, value,
				  QT_TO_UTF8(widget->text()));
}

问题出在这里 if (WidgetChanged(widget))  为false

static inline bool WidgetChanged(QWidget *widget)
{
	return widget->property("changed").toBool();
}

3)、改进

借鉴

            ui->outputResolution->setProperty("changed",
                              QVariant(true));
            videoChanged = true;

改进为:

void OBSBasicSettings::on_simpleOutputBrowse_clicked()
{
	QString dir = SelectDirectory(
		this, QTStr("Basic.Settings.Output.SelectDirectory"),
		ui->simpleOutputPath->text());
	if (dir.isEmpty())
		return;

	ui->simpleOutputPath->setProperty("changed", QVariant(true));
	ui->simpleOutputPath->setText(dir);
}

还是没有变化,

后来发现使用的专业模式 on_advOutRecPathBrowse_clicked,没有命中这里 导致的。

void OBSBasicSettings::on_simpleOutputBrowse_clicked()
{
	QString dir = SelectDirectory(
		this, QTStr("Basic.Settings.Output.SelectDirectory"),
		ui->simpleOutputPath->text());
	if (dir.isEmpty())
		return;

	ui->simpleOutputPath->setProperty("changed", QVariant(true));
	ui->simpleOutputPath->setText(dir);
}

void OBSBasicSettings::on_advOutRecPathBrowse_clicked()
{
	QString dir = SelectDirectory(
		this, QTStr("Basic.Settings.Output.SelectDirectory"),
		ui->advOutRecPath->text());
	if (dir.isEmpty())
		return;
	ui->simpleOutputPath->setProperty("changed", QVariant(true));
	ui->advOutRecPath->setText(dir);
}

4)、 确保使用的简单模式、还是高级模式

    SaveEdit(ui->advOutRecPath, "AdvOut", "RecFilePath");

我这里为了统一处理,修改高级后,简单的也一同修改

	SaveEdit(ui->advOutRecPath, "SimpleOutput", "FilePath");
	SaveEdit(ui->advOutRecPath, "AdvOut", "RecFilePath");

5)、后来查到问题

定制的是简单模式, 后来切换OBS模式时,切换到了高级模式

再切换回来后, 就不按简单模式走了

解决方法:  输出设置为简单模式

你可能感兴趣的:(OBS,使用小问题,OBS,录像,录制,简单,高级)