@@ -76,15 +76,21 @@ PyObject *py_ue_sound_get_data(ue_PyUObject *self, PyObject * args)
7676
7777 USoundWave *sound = ue_py_check_type<USoundWave>(self);
7878 if (!sound)
79+ {
7980 return PyErr_Format (PyExc_Exception, " UObject is not a USoundWave." );
81+ }
82+ FByteBulkData* raw_data = sound->GetCompressedData (" OGG" );
8083
81- FByteBulkData raw_data = sound->RawData ;
82-
83- char *data = (char *)raw_data.Lock (LOCK_READ_ONLY );
84- int32 data_size = raw_data.GetBulkDataSize ();
85- PyObject *py_data = PyBytes_FromStringAndSize (data, data_size);
86- raw_data.Unlock ();
87- return py_data;
84+ if (raw_data)
85+ {
86+ char *data = (char *)raw_data->Lock (LOCK_READ_ONLY );
87+ int32 data_size = raw_data->GetBulkDataSize ();
88+ PyObject *py_data = PyBytes_FromStringAndSize (data, data_size);
89+ raw_data->Unlock ();
90+ return py_data;
91+ }
92+
93+ return nullptr ;
8894}
8995
9096PyObject *py_ue_sound_set_data (ue_PyUObject *self, PyObject * args)
@@ -104,12 +110,15 @@ PyObject *py_ue_sound_set_data(ue_PyUObject *self, PyObject * args)
104110
105111 sound->FreeResources ();
106112 sound->InvalidateCompressedData ();
107-
108- sound->RawData .Lock (LOCK_READ_WRITE );
109- void *data = sound->RawData .Realloc (sound_buffer.len );
110- FMemory::Memcpy (data, sound_buffer.buf , sound_buffer.len );
111- sound->RawData .Unlock ();
112-
113+ FByteBulkData* raw_data = sound->GetCompressedData (" OGG" );
114+ if (raw_data)
115+ {
116+ raw_data->Lock (LOCK_READ_WRITE );
117+ void *data = raw_data->Realloc (sound_buffer.len );
118+ FMemory::Memcpy (data, sound_buffer.buf , sound_buffer.len );
119+ raw_data->Unlock ();
120+ }
121+
113122 Py_RETURN_NONE;
114123}
115124
0 commit comments