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模式时,切换到了高级模式
再切换回来后, 就不按简单模式走了
解决方法: 输出设置为简单模式