diff --git a/rtc_plugins.cpp b/rtc_plugins.cpp index e618489..20fa70b 100644 --- a/rtc_plugins.cpp +++ b/rtc_plugins.cpp @@ -103,11 +103,21 @@ int sendCustomAudioData(const int16_t destChannelIndex, py::object pD, int32_t s return -1; } } - +void init_numpy() { + if (import_array() < 0) { + throw std::runtime_error("NumPy initialization failed"); + } +} BOOST_PYTHON_MODULE(rtc_plugins) { - import_array(); - py::def("init", &init); - py::def("initRecv", &initRecv); - py::def("initSend", &initSend); - py::def("sendCustomAudioData", &sendCustomAudioData); + try { + init_numpy(); + // 注册函数... + py::def("init", &init); + py::def("initRecv", &initRecv); + py::def("initSend", &initSend); + py::def("sendCustomAudioData", &sendCustomAudioData); + } catch (...) { + PyErr_SetString(PyExc_RuntimeError, "Module initialization failed"); + } + } \ No newline at end of file