#include "AudioCapture.h"
#include "AudioCaptureFunctionLibrary.h"
#include "AudioCaptureBlueprintLibrary.h"
UBlueprintFunctionLibrary
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "AudioCapture.h"
#include "AudioCaptureNode.generated.h"
UCLASS()
class YOURPROJECT_API UAudioCaptureNode : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
/** Mikrofon kaydını başlatır */
UFUNCTION(BlueprintCallable, Category = "Audio Capture")
static void StartAudioCapture();
/** Mikrofon kaydını durdurur */
UFUNCTION(BlueprintCallable, Category = "Audio Capture")
static void StopAudioCapture();
private:
static TSharedPtr<FAudioCapture> AudioCaptureInstance;
};
AudioCaptureNode.cpp:
#include "AudioCaptureNode.h"
TSharedPtr<FAudioCapture> UAudioCaptureNode::AudioCaptureInstance = nullptr;
void UAudioCaptureNode::StartAudioCapture()
{
if (!AudioCaptureInstance.IsValid())
{
AudioCaptureInstance = MakeShareable(new FAudioCapture());
if (AudioCaptureInstance->IsCapturing())
{
UE_LOG(LogTemp, Warning, TEXT("Audio capture is already running!"));
return;
}
if (AudioCaptureInstance->OpenDefaultCaptureStream())
{
AudioCaptureInstance->StartCapturing();
UE_LOG(LogTemp, Warning, TEXT("Started audio capture!"));
}
else
{
UE_LOG(LogTemp, Error, TEXT("Failed to open audio capture stream!"));
}
}
}
void UAudioCaptureNode::StopAudioCapture()
{
if (AudioCaptureInstance.IsValid() && AudioCaptureInstance->IsCapturing())
{
AudioCaptureInstance->StopCapturing();
UE_LOG(LogTemp, Warning, TEXT("Stopped audio capture!"));
}
}
Bu kodları ekledikten sonra, Blueprint içerisinde iki yeni
Node oluşacaktır:
- Start Audio Capture → Mikrofon kaydını başlatır.
- Stop Audio Capture → Mikrofon kaydını durdurur.