IVideoRecordingSystem
可以實現(xiàn)在Game下的錄制
#include "VideoRecordingSystem.h"
#include "PlatformFeatures.h"
//初始化
IVideoRecordingSystem* VideoRecordSystem = IPlatformFeaturesModule::Get().GetVideoRecordingSystem();
VideoRecordSystem->EnableRecording(true);
FVideoRecordingParameters param;
param.RecordingLengthSeconds = 6000;//設(shè)置的最大錄制時間,不會錄制超過的時間
//開始錄制
VideoRecordSystem->NewRecording(TEXT("MyVideo"), param);
VideoRecordSystem->StartRecording();
//結(jié)束錄制
IVideoRecordingSystem* VideoRecordSystem = IPlatformFeaturesModule::Get().GetVideoRecordingSystem();
VideoRecordSystem->FinalizeRecording(true, FText::FromString("Hello"), FText::FromString("World"));
ISequenceRecorder
在Editor下使用,可以錄制一段Sequence羞迷,保存在固定的文件夾下掉奄。
#include "ISequenceRecorder.h"
//開始錄制
ISequenceRecorder& Recorder = FModuleManager::LoadModuleChecked<ISequenceRecorder>("SequenceRecorder");
Recorder.StartRecording(this, "/Game/Sequence", "RecordedSequence");
//停止錄制
ISequenceRecorder& Recorder = FModuleManager::LoadModuleChecked<ISequenceRecorder>("SequenceRecorder");
Recorder.StopRecording();
創(chuàng)建藍圖節(jié)點
VideoRecordBlueprint.h
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "VideoRecordBlueprint.generated.h"
UCLASS(Blueprintable, BlueprintType, meta = (DisplayName = "Record a Video"))
class VIDEORECORD_API UVideoRecordBueprint : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
//開始錄制
UFUNCTION(BlueprintCallable, Category = "VideoRecording")
static bool StartRecording(const FString& Name);
//停止錄制
UFUNCTION(BlueprintCallable, Category = "VideoRecording")
static bool StopRecording();
};
VideoRecordBlueprint.cpp
#include "VideoRecordBlueprint.h"
#include "VideoRecordingSystem.h"
#include "PlatformFeatures.h"
bool UVideoRecordBueprint::StartRecording(const FString& Name)
{
IVideoRecordingSystem* VideoRecordSystem = IPlatformFeaturesModule::Get().GetVideoRecordingSystem();
VideoRecordSystem->EnableRecording(true);
FVideoRecordingParameters param;
param.RecordingLengthSeconds = 6000;
VideoRecordSystem->NewRecording(*Name, param);
VideoRecordSystem->StartRecording();
return true;
}
bool UVideoRecordBueprint::StopRecording()
{
IVideoRecordingSystem* VideoRecordSystem = IPlatformFeaturesModule::Get().GetVideoRecordingSystem();
VideoRecordSystem->FinalizeRecording(true, FText::FromString("Hello"), FText::FromString("World"));
return true;
}
在關(guān)卡中的調(diào)用:
V按下M鍵實現(xiàn)播放一段Sequence距糖,結(jié)束后會在項目文件的Saved\VideoCaptures下生成對應(yīng)MP4文件撤蟆。
錄制Sequence.png