@@ -28,6 +28,7 @@ THE SOFTWARE.
2828#include " audio/openharmony/PcmAudioService.h"
2929#include " audio/android/AudioMixerController.h"
3030#include " audio/android/cutils/log.h"
31+ #include < deviceinfo.h>
3132
3233namespace cc {
3334
@@ -104,18 +105,25 @@ bool PcmAudioService::init(AudioMixerController *controller, int numChannels, in
104105 OH_AudioStreamBuilder_SetRendererInfo (_builder, AUDIOSTREAM_USAGE_GAME);
105106
106107 OH_AudioRenderer_Callbacks callbacks;
107- callbacks.OH_AudioRenderer_OnWriteData = nullptr ;
108+ static int sdkApi = OH_GetSdkApiVersion ();
109+ if (sdkApi >= 21 ) {
110+ callbacks.OH_AudioRenderer_OnWriteData = nullptr ;
111+ } else {
112+ callbacks.OH_AudioRenderer_OnWriteData = reinterpret_cast <int32_t (*)(OH_AudioRenderer*,void * ,void * ,int32_t )>(AudioRendererOnWriteData);
113+ }
108114 callbacks.OH_AudioRenderer_OnInterruptEvent = AudioRendererOnInterrupt;
109115 callbacks.OH_AudioRenderer_OnError = nullptr ;
110116 callbacks.OH_AudioRenderer_OnStreamEvent = nullptr ;
111117 ret = OH_AudioStreamBuilder_SetRendererCallback (_builder, callbacks, this );
112118 if (ret != AUDIOSTREAM_SUCCESS) {
113119 return false ;
114120 }
115-
116- ret = OH_AudioStreamBuilder_SetRendererWriteDataCallback (_builder, AudioRendererOnWriteData, this );
117- if (ret != AUDIOSTREAM_SUCCESS) {
118- return false ;
121+
122+ if (sdkApi >= 21 ) {
123+ ret = OH_AudioStreamBuilder_SetRendererWriteDataCallback (_builder, AudioRendererOnWriteData, this );
124+ if (ret != AUDIOSTREAM_SUCCESS) {
125+ return false ;
126+ }
119127 }
120128
121129 ret = OH_AudioStreamBuilder_GenerateRenderer (_builder, &_audioRenderer);
0 commit comments