UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioCaptureCore.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
5#include "Containers/Array.h"
6#include "CoreMinimal.h"
7#include "CoreTypes.h"
8#include "DSP/Delay.h"
10#include "HAL/CriticalSection.h"
11#include "HAL/ThreadSafeBool.h"
13#include "Templates/UniquePtr.h"
14
15#define UE_API AUDIOCAPTURECORE_API
16
17namespace Audio
18{
19 // Various hardware-accelerated features that an input device can have.
26
27 // Class which handles audio capture internally, implemented with a back-end per platform
29 {
30 public:
31
34
35 // Returns the total amount of audio devices.
37
38 // Adds a user to the system so we can use its devices.
39 UE_API bool RegisterUser(const TCHAR* UserId);
40
41 // Removes a user added with RegisterUser.
42 UE_API bool UnregisterUser(const TCHAR* UserId);
43
44 // Returns the audio capture device information at the given Id.
46
47 // Opens the audio capture stream with the given parameters
49 UE_DEPRECATED(5.3, "OpenCaptureStream is deprecated, please use OpenAudioCaptureStream instead.")
52
53 // Opens the audio capture stream with the given parameters
55
56 // Closes the audio capture stream
57 UE_API bool CloseStream();
58
59 // Start the audio capture stream
60 UE_API bool StartStream();
61
62 // Stop the audio capture stream
63 UE_API bool StopStream();
64
65 // Abort the audio capture stream (stop and close)
66 UE_API bool AbortStream();
67
68 // Get the stream time of the audio capture stream
69 UE_API bool GetStreamTime(double& OutStreamTime) const;
70
71 // Get the sample rate in use by the stream.
73
74 // Returns if the audio capture stream has been opened.
75 UE_API bool IsStreamOpen() const;
76
77 // Returns true if the audio capture stream is currently capturing audio
78 UE_API bool IsCapturing() const;
79
81
82 UE_API void SetHardwareFeatureEnabled(EHardwareInputFeature FeatureType, bool bIsEnabled);
83
84 private:
85
88 };
89
92 {
93 public:
96
97 // Gets the default capture device info
99
100 // Opens up a stream to the default capture device
102
103 // Starts capturing audio
104 UE_API bool StartCapturing();
105
106 // Stops capturing audio
107 UE_API void StopCapturing();
108
109 // Immediately stop capturing audio
110 UE_API void AbortCapturing();
111
112 // Returned if the capture synth is closed
113 UE_API bool IsStreamOpen() const;
114
115 // Returns true if the capture synth is capturing audio
116 UE_API bool IsCapturing() const;
117
118 // Retrieves audio data from the capture synth.
119 // This returns audio only if there was non-zero audio since this function was last called.
121
122 // Returns the number of samples enqueued in the capture synth
124
125 private:
126
127 // Number of samples enqueued
128 int32 NumSamplesEnqueued;
129
130 // Information about the default capture device we're going to use
131 FCaptureDeviceInfo CaptureInfo;
132
133 // Audio capture object dealing with getting audio callbacks
134 FAudioCapture AudioCapture;
135
136 // Critical section to prevent reading and writing from the captured buffer at the same time
137 FCriticalSection CaptureCriticalSection;
138
139 // Buffer of audio capture data, yet to be copied to the output
140 TArray<float> AudioCaptureData;
141
142
143 // If the object has been initialized
144 bool bInitialized;
145
146 // If we're capturing data
147 bool bIsCapturing;
148 };
149
150} // namespace Audio
151
152#undef UE_API
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define UE_API
Definition SColorGradingComponentViewer.h:12
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition AudioCaptureCore.h:92
UE_API bool IsCapturing() const
Definition AudioCaptureCore.cpp:270
UE_API bool OpenDefaultStream()
Definition AudioCaptureCore.cpp:192
UE_API FAudioCaptureSynth()
Definition AudioCaptureCore.cpp:176
UE_API bool GetAudioData(TArray< float > &OutAudioData)
Definition AudioCaptureCore.cpp:281
UE_API int32 GetNumSamplesEnqueued()
Definition AudioCaptureCore.cpp:275
UE_API bool StartCapturing()
Definition AudioCaptureCore.cpp:239
UE_API bool GetDefaultCaptureDeviceInfo(FCaptureDeviceInfo &OutInfo)
Definition AudioCaptureCore.cpp:187
UE_API bool IsStreamOpen() const
Definition AudioCaptureCore.cpp:265
UE_API void StopCapturing()
Definition AudioCaptureCore.cpp:251
UE_API void AbortCapturing()
Definition AudioCaptureCore.cpp:259
virtual UE_API ~FAudioCaptureSynth()
Definition AudioCaptureCore.cpp:183
Definition AudioCaptureCore.h:29
UE_API FAudioCapture()
Definition AudioCaptureCore.cpp:14
UE_API bool StopStream()
Definition AudioCaptureCore.cpp:105
PRAGMA_DISABLE_DEPRECATION_WARNINGS UE_API bool OpenCaptureStream(const FAudioCaptureDeviceParams &InParams, FOnCaptureFunction OnCapture, uint32 NumFramesDesired)
Definition AudioCaptureCore.cpp:66
UE_API int32 GetCaptureDevicesAvailable(TArray< FCaptureDeviceInfo > &OutDevices)
Definition AudioCaptureCore.cpp:43
UE_API void SetHardwareFeatureEnabled(EHardwareInputFeature FeatureType, bool bIsEnabled)
Definition AudioCaptureCore.cpp:168
UE_API bool RegisterUser(const TCHAR *UserId)
Definition AudioCaptureCore.cpp:23
UE_API bool GetIfHardwareFeatureIsSupported(EHardwareInputFeature FeatureType)
Definition AudioCaptureCore.cpp:159
UE_API bool IsCapturing() const
Definition AudioCaptureCore.cpp:150
UE_API PRAGMA_ENABLE_DEPRECATION_WARNINGS bool OpenAudioCaptureStream(const FAudioCaptureDeviceParams &InParams, FOnAudioCaptureFunction OnCapture, uint32 NumFramesDesired)
Definition AudioCaptureCore.cpp:77
UE_API bool StartStream()
Definition AudioCaptureCore.cpp:96
UE_API bool UnregisterUser(const TCHAR *UserId)
Definition AudioCaptureCore.cpp:33
UE_API bool AbortStream()
Definition AudioCaptureCore.cpp:114
UE_API ~FAudioCapture()
Definition AudioCaptureCore.cpp:19
UE_API int32 GetSampleRate() const
Definition AudioCaptureCore.cpp:132
UE_API bool GetCaptureDeviceInfo(FCaptureDeviceInfo &OutInfo, int32 DeviceIndex=INDEX_NONE)
Definition AudioCaptureCore.cpp:55
UE_API bool IsStreamOpen() const
Definition AudioCaptureCore.cpp:141
UE_API bool CloseStream()
Definition AudioCaptureCore.cpp:87
UE_API bool GetStreamTime(double &OutStreamTime) const
Definition AudioCaptureCore.cpp:123
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition UniquePtr.h:107
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
EHardwareInputFeature
Definition AudioCaptureCore.h:21
Definition ExpressionParserTypes.h:21
Definition AudioCaptureDeviceInterface.h:46
Definition AudioCaptureDeviceInterface.h:28