UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioCaptureDeviceInterface.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
6
7
8namespace Audio
9{
10 enum class EHardwareInputFeature : uint8;
11
26
35
36 // Indicates the default, system capture device should be used for capturing audio
38 // Indicates invalid sample rate and that the default device's sample rate should be used
40 // Indicates invalid channel count and that the input channel count of the default device should be used
42 // Some clients such as UAudioCaptureComponent assume 32-bit float bit depth
44
46 {
47 // Set to true to use this device's built-in echo cancellation, if possible.
48 bool bUseHardwareAEC = false;
49 // Set this to INDEX_NONE
51 // Number of input channels on the device available for recording audio
53 // The sample rate to use when recording audio on this device
55 // The bit depth to use when recording audio on this device
57 };
58
59 UE_DEPRECATED(5.3, "FOnCaptureFunction is deprecated, please use FOnAudioCaptureFunction instead.")
60 typedef TFunction<void(const float* InAudio, int32 NumFrames, int32 NumChannels, int32 SampleRate, double StreamTime, bool bOverFlow)> FOnCaptureFunction;
61 // Callable function type used for audio capture callbacks.
62 typedef TFunction<void(const void* InAudio, int32 NumFrames, int32 NumChannels, int32 SampleRate, double StreamTime, bool bOverFlow)> FOnAudioCaptureFunction;
63
65 {
66 public:
69
70
71 // Lets us know which users are in the system.
72 virtual bool RegisterUser(const TCHAR* UserId) { return true; }
73 // Call this to remove a user that was added with RegisterUser.
74 virtual bool UnregisterUser(const TCHAR* UserId) { return true; }
75 // Returns the audio capture device information at the given Id.
76 virtual bool GetCaptureDeviceInfo(FCaptureDeviceInfo& OutInfo, int32 DeviceIndex) = 0;
77 // Opens the audio capture stream with the given parameters
79 UE_DEPRECATED(5.3, "OpenCaptureStream is deprecated, please use OpenAudioCaptureStream instead.")
81 {
83 {
85 };
86
87 return OpenAudioCaptureStream(InParams, OnCaptureCallback, NumFramesDesired);
88 }
90 // Opens the audio capture stream with the given parameters and using FOnAudioCaptureFunction for callbacks
92 // Closes the audio capture stream
93 virtual bool CloseStream() = 0;
94 // Start the audio capture stream
95 virtual bool StartStream() = 0;
96 // Stop the audio capture stream
97 virtual bool StopStream() = 0;
98 // Abort the audio capture stream (stop and close)
99 virtual bool AbortStream() = 0;
100 // Get the stream time of the audio capture stream
101 virtual bool GetStreamTime(double& OutStreamTime) = 0;
102 // Get the sample rate in use by the stream.
103 virtual int32 GetSampleRate() const = 0;
104 // Returns if the audio capture stream has been opened.
105 virtual bool IsStreamOpen() const = 0;
106 // Returns true if the audio capture stream is currently capturing audio.
107 virtual bool IsCapturing() const = 0;
108
109 // This is the callback for querying audio from the input device.
110 virtual void OnAudioCapture(void* InBuffer, uint32 InBufferFrames, double StreamTime, bool bOverflow) = 0;
111
112 // Returns the total amount of audio devices.
114
116 {
117 return false;
118 }
119
120 virtual void SetHardwareFeatureEnabled(EHardwareInputFeature FeatureType, bool bEnabled)
121 {
122 }
123 };
124
126 {
127 public:
130
131 // IModularFeature name. Use this to register an implementation of IAudioCaptureDevice.
133 {
134 static FName AudioCaptureFeatureName = FName(TEXT("AudioCaptureStream"));
136 }
137
139 };
140
141} // namespace Audio
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition AudioCaptureDeviceInterface.h:126
virtual ~IAudioCaptureFactory()
Definition AudioCaptureDeviceInterface.h:129
virtual TUniquePtr< IAudioCaptureStream > CreateNewAudioCaptureStream()=0
IAudioCaptureFactory()
Definition AudioCaptureDeviceInterface.h:128
static FName GetModularFeatureName()
Definition AudioCaptureDeviceInterface.h:132
Definition AudioCaptureDeviceInterface.h:65
virtual bool GetStreamTime(double &OutStreamTime)=0
virtual bool GetIfHardwareFeatureIsSupported(EHardwareInputFeature FeatureType)
Definition AudioCaptureDeviceInterface.h:115
virtual bool AbortStream()=0
virtual bool GetCaptureDeviceInfo(FCaptureDeviceInfo &OutInfo, int32 DeviceIndex)=0
virtual bool IsCapturing() const =0
virtual bool RegisterUser(const TCHAR *UserId)
Definition AudioCaptureDeviceInterface.h:72
virtual PRAGMA_ENABLE_DEPRECATION_WARNINGS bool OpenAudioCaptureStream(const FAudioCaptureDeviceParams &InParams, FOnAudioCaptureFunction InOnCapture, uint32 NumFramesDesired)=0
virtual bool StartStream()=0
virtual int32 GetSampleRate() const =0
IAudioCaptureStream()
Definition AudioCaptureDeviceInterface.h:67
virtual bool CloseStream()=0
virtual void SetHardwareFeatureEnabled(EHardwareInputFeature FeatureType, bool bEnabled)
Definition AudioCaptureDeviceInterface.h:120
virtual bool IsStreamOpen() const =0
virtual bool GetInputDevicesAvailable(TArray< FCaptureDeviceInfo > &OutDevices)=0
virtual ~IAudioCaptureStream()
Definition AudioCaptureDeviceInterface.h:68
virtual void OnAudioCapture(void *InBuffer, uint32 InBufferFrames, double StreamTime, bool bOverflow)=0
virtual bool UnregisterUser(const TCHAR *UserId)
Definition AudioCaptureDeviceInterface.h:74
virtual bool StopStream()=0
Definition NameTypes.h:617
Definition IModularFeature.h:12
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition UniquePtr.h:107
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
constexpr int32 InvalidDeviceChannelCount
Definition AudioCaptureDeviceInterface.h:41
constexpr EPCMAudioEncoding DefaultDeviceEncoding
Definition AudioCaptureDeviceInterface.h:43
constexpr int32 DefaultDeviceIndex
Definition AudioCaptureDeviceInterface.h:37
EPCMAudioEncoding
Definition AudioCaptureDeviceInterface.h:16
constexpr int32 InvalidDeviceSampleRate
Definition AudioCaptureDeviceInterface.h:39
EHardwareInputFeature
Definition AudioCaptureCore.h:21
Definition AudioCaptureDeviceInterface.h:46
int32 SampleRate
Definition AudioCaptureDeviceInterface.h:54
int32 NumInputChannels
Definition AudioCaptureDeviceInterface.h:52
bool bUseHardwareAEC
Definition AudioCaptureDeviceInterface.h:48
int32 DeviceIndex
Definition AudioCaptureDeviceInterface.h:50
EPCMAudioEncoding PCMAudioEncoding
Definition AudioCaptureDeviceInterface.h:56
Definition AudioCaptureDeviceInterface.h:28
FString DeviceId
Definition AudioCaptureDeviceInterface.h:30
int32 InputChannels
Definition AudioCaptureDeviceInterface.h:31
FString DeviceName
Definition AudioCaptureDeviceInterface.h:29
int32 PreferredSampleRate
Definition AudioCaptureDeviceInterface.h:32
bool bSupportsHardwareAEC
Definition AudioCaptureDeviceInterface.h:33