mirror of
https://github.com/storytold/RuntimeAudioImporter.git
synced 2026-10-17 00:23:02 +00:00
new node image
This commit is contained in:
+28
-9
@@ -9,7 +9,15 @@ URuntimeAudioImporterBPLibrary::URuntimeAudioImporterBPLibrary(const FObjectInit
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Transcode audio file to USoundWave static object */
|
/**
|
||||||
|
* Transcode audio file to USoundWave static object
|
||||||
|
*
|
||||||
|
* @param filePath Path to the audio file to import
|
||||||
|
* @param Format Audio file format (extension)
|
||||||
|
* @param status Final import status (TranscodingStatus)
|
||||||
|
* @param DefineFormatAutomatically Whether to define format (extension) automatically or not
|
||||||
|
* @return Returns USoundWave Static Object.
|
||||||
|
*/
|
||||||
class USoundWave* URuntimeAudioImporterBPLibrary::GetSoundWaveFromAudioFile(const FString& filePath, TEnumAsByte < AudioFormat > Format, TEnumAsByte < TranscodingStatus >& status, bool DefineFormatAutomatically)
|
class USoundWave* URuntimeAudioImporterBPLibrary::GetSoundWaveFromAudioFile(const FString& filePath, TEnumAsByte < AudioFormat > Format, TEnumAsByte < TranscodingStatus >& status, bool DefineFormatAutomatically)
|
||||||
{
|
{
|
||||||
return GetUSoundWaveFromAudioFile_Internal(filePath, Format, status, DefineFormatAutomatically);
|
return GetUSoundWaveFromAudioFile_Internal(filePath, Format, status, DefineFormatAutomatically);
|
||||||
@@ -79,20 +87,31 @@ class USoundWave* URuntimeAudioImporterBPLibrary::GetSoundWaveObject(const uint8
|
|||||||
return sw;
|
return sw;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Destroy USoundWave static object */
|
/**
|
||||||
void URuntimeAudioImporterBPLibrary::DestroySoundWave(USoundWave* ReadySoundWave, bool& SuccessfullyDestroyed) {
|
* Destroy USoundWave static object
|
||||||
if (IsValid(ReadySoundWave) && ReadySoundWave->IsReadyForFinishDestroy()) {
|
*
|
||||||
FMemory::Free(ReadySoundWave->RawPCMData);
|
* @return Returns true - success, false - failure.
|
||||||
|
*/
|
||||||
|
bool URuntimeAudioImporterBPLibrary::DestroySoundWave(USoundWave* ReadySoundWave) {
|
||||||
|
|
||||||
ReadySoundWave->RawData.RemoveBulkData();
|
if (IsValid(ReadySoundWave) && ReadySoundWave->IsValidLowLevel()) {
|
||||||
|
|
||||||
|
/* Free memory */
|
||||||
ReadySoundWave->InvalidateCompressedData();
|
ReadySoundWave->InvalidateCompressedData();
|
||||||
ReadySoundWave->FreeResources();
|
FMemory::Free(ReadySoundWave->RawPCMData);
|
||||||
|
ReadySoundWave->RawData.RemoveBulkData();
|
||||||
ReadySoundWave->RemoveAudioResource();
|
ReadySoundWave->RemoveAudioResource();
|
||||||
|
/* Free memory */
|
||||||
|
|
||||||
|
/* Destroying USoundWave object as UObject */
|
||||||
ReadySoundWave->ConditionalBeginDestroy();
|
ReadySoundWave->ConditionalBeginDestroy();
|
||||||
SuccessfullyDestroyed = true;
|
ReadySoundWave = NULL;
|
||||||
|
/* Destroying USoundWave object as UObject */
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SuccessfullyDestroyed = false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+16
-3
@@ -43,12 +43,25 @@ class RUNTIMEAUDIOIMPORTER_API URuntimeAudioImporterBPLibrary : public UBlueprin
|
|||||||
GENERATED_UCLASS_BODY()
|
GENERATED_UCLASS_BODY()
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/* Transcode audio file to USoundWave static object */
|
/**
|
||||||
|
* Transcode audio file to USoundWave static object
|
||||||
|
*
|
||||||
|
* @param filePath Path to the audio file to import
|
||||||
|
* @param Format Audio file format (extension)
|
||||||
|
* @param status Final import status (TranscodingStatus)
|
||||||
|
* @param DefineFormatAutomatically Whether to define format (extension) automatically or not
|
||||||
|
* @return Returns USoundWave Static Object.
|
||||||
|
*/
|
||||||
UFUNCTION(BlueprintCallable, meta = (Keywords = "Importer, Transcoder, Converter, MP3, FLAC, WAV", ToolTip = "Transcode audio file to USoundWave static object"), Category = "RuntimeAudioImporter")
|
UFUNCTION(BlueprintCallable, meta = (Keywords = "Importer, Transcoder, Converter, MP3, FLAC, WAV", ToolTip = "Transcode audio file to USoundWave static object"), Category = "RuntimeAudioImporter")
|
||||||
static class USoundWave* GetSoundWaveFromAudioFile(const FString & filePath, TEnumAsByte < AudioFormat > Format, TEnumAsByte < TranscodingStatus > & status, bool DefineFormatAutomatically);
|
static class USoundWave* GetSoundWaveFromAudioFile(const FString & filePath, TEnumAsByte < AudioFormat > Format, TEnumAsByte < TranscodingStatus > & status, bool DefineFormatAutomatically);
|
||||||
|
|
||||||
UFUNCTION(BlueprintCallable, meta = (Keywords = "MP3, FLAC, WAV, Destroy", ToolTip = "After the Soundwave is no longer needed, you need to call this function to free memory"), Category = "RuntimeAudioImporter")
|
/**
|
||||||
static void DestroySoundWave(USoundWave * ReadySoundWave, bool& SuccessfullyDestroyed);
|
* Destroy USoundWave static object
|
||||||
|
*
|
||||||
|
* @return Returns true - success, false - failure.
|
||||||
|
*/
|
||||||
|
UFUNCTION(BlueprintCallable, meta = (Keywords = "Importer, Transcoder, Converter, MP3, FLAC, WAV, Destroy", ToolTip = "After the Soundwave is no longer needed, you need to call this function to free memory"), Category = "RuntimeAudioImporter")
|
||||||
|
static bool DestroySoundWave(USoundWave * ReadySoundWave);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user