UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioMixerPlatformNonRealtime.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "AudioMixer.h"
6#include "DSP/FileEncoder.h"
7
8// Any platform defines
9namespace Audio
10{
12 {
13
14 public:
15
18
20 void OpenFileToWriteAudioTo(const FString& OutPath);
21 void CloseFile();
22
23 //~ Begin IAudioMixerPlatformInterface
24 virtual FString GetPlatformApi() const override { return TEXT("NonRealtime"); }
25 virtual bool InitializeHardware() override;
26 virtual bool CheckAudioDeviceChange() override;
27 virtual bool TeardownHardware() override;
28 virtual bool IsInitialized() const override;
29 virtual bool GetNumOutputDevices(uint32& OutNumOutputDevices) override;
30 virtual bool GetOutputDeviceInfo(const uint32 InDeviceIndex, FAudioPlatformDeviceInfo& OutInfo) override;
31 virtual bool GetDefaultOutputDeviceIndex(uint32& OutDefaultDeviceIndex) const override;
32 virtual bool OpenAudioStream(const FAudioMixerOpenStreamParams& Params) override;
33 virtual bool CloseAudioStream() override;
34 virtual bool StartAudioStream() override;
35 virtual bool StopAudioStream() override;
36 virtual bool MoveAudioStreamToNewAudioDevice(const FString& InNewDeviceId) override;
37 virtual void ResumePlaybackOnNewDevice() override;
38 virtual FAudioPlatformDeviceInfo GetPlatformDeviceInfo() const override;
39 virtual void SubmitBuffer(const uint8* Buffer) override;
40 virtual FString GetDefaultDeviceName() override;
41 virtual FAudioPlatformSettings GetPlatformSettings() const override;
42 virtual void OnHardwareUpdate() override;
43 virtual bool IsNonRealtime() const override;
44 virtual void FadeOut() override;
45
46 virtual void FadeIn() override;
47
48 //~ End IAudioMixerPlatformInterface
49
50 private:
51 float SampleRate;
52 int32 NumChannels;
53
54 // How much audio time has actually been rendered? Incremented by RenderAudio at fixed precision.
55 double TotalDurationRendered;
56 // How much time does the user want to have rendered? This prevents drift over time where we render more audio on a given frame than asked.
57 double TotalDesiredRender;
58
59 // This is retrieved from the tick interval on InitializeHardware.
60 double TickDelta;
61
62 uint32 bIsInitialized : 1;
63 uint32 bIsDeviceOpen : 1;
64
65 TUniquePtr<FAudioFileWriter> AudioFileWriter;
66
67 protected:
68 virtual uint32 RunInternal() override;
69
70 };
71
72}
73
#define TEXT(x)
Definition Platform.h:1272
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
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition AudioMixerPlatformNonRealtime.h:12
virtual bool GetDefaultOutputDeviceIndex(uint32 &OutDefaultDeviceIndex) const override
Definition AudioMixerPlatformNonRealtime.cpp:179
void CloseFile()
Definition AudioMixerPlatformNonRealtime.cpp:105
virtual bool GetOutputDeviceInfo(const uint32 InDeviceIndex, FAudioPlatformDeviceInfo &OutInfo) override
Definition AudioMixerPlatformNonRealtime.cpp:153
virtual bool StartAudioStream() override
Definition AudioMixerPlatformNonRealtime.cpp:244
virtual FString GetDefaultDeviceName() override
Definition AudioMixerPlatformNonRealtime.cpp:286
virtual uint32 RunInternal() override
Definition AudioMixerPlatformNonRealtime.cpp:316
~FMixerPlatformNonRealtime()
Definition AudioMixerPlatformNonRealtime.cpp:51
virtual void OnHardwareUpdate() override
Definition AudioMixerPlatformNonRealtime.cpp:297
virtual bool OpenAudioStream(const FAudioMixerOpenStreamParams &Params) override
Definition AudioMixerPlatformNonRealtime.cpp:185
virtual bool IsNonRealtime() const override
Definition AudioMixerPlatformNonRealtime.cpp:305
virtual FAudioPlatformSettings GetPlatformSettings() const override
Definition AudioMixerPlatformNonRealtime.cpp:292
virtual void ResumePlaybackOnNewDevice() override
Definition AudioMixerPlatformNonRealtime.cpp:267
virtual bool StopAudioStream() override
Definition AudioMixerPlatformNonRealtime.cpp:252
virtual FString GetPlatformApi() const override
Definition AudioMixerPlatformNonRealtime.h:24
virtual void FadeOut() override
Definition AudioMixerPlatformNonRealtime.cpp:310
virtual bool TeardownHardware() override
Definition AudioMixerPlatformNonRealtime.cpp:124
virtual bool GetNumOutputDevices(uint32 &OutNumOutputDevices) override
Definition AudioMixerPlatformNonRealtime.cpp:141
virtual bool CloseAudioStream() override
Definition AudioMixerPlatformNonRealtime.cpp:225
NONREALTIMEAUDIORENDERER_API void RenderAudio(double NumSecondsToRender)
Definition AudioMixerPlatformNonRealtime.cpp:55
virtual void SubmitBuffer(const uint8 *Buffer) override
Definition AudioMixerPlatformNonRealtime.cpp:277
virtual bool IsInitialized() const override
Definition AudioMixerPlatformNonRealtime.cpp:136
virtual FAudioPlatformDeviceInfo GetPlatformDeviceInfo() const override
Definition AudioMixerPlatformNonRealtime.cpp:220
virtual bool CheckAudioDeviceChange() override
Definition AudioMixerPlatformNonRealtime.cpp:257
virtual bool InitializeHardware() override
Definition AudioMixerPlatformNonRealtime.cpp:110
virtual void FadeIn() override
Definition AudioMixerPlatformNonRealtime.cpp:322
void OpenFileToWriteAudioTo(const FString &OutPath)
Definition AudioMixerPlatformNonRealtime.cpp:77
Definition AudioMixer.h:479
virtual bool MoveAudioStreamToNewAudioDevice()
Definition AudioMixer.h:543
Definition UniquePtr.h:107
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
Definition AudioMixer.h:250
Definition AudioMixer.h:152
Definition AudioMixerTypes.h:63