1 /*
2 * Copyright (C) 2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16
17 #include <string>
18 #include <cstdio>
19 #include <cstdint>
20 #include "napi/native_api.h"
21 #include "ohaudio/native_audiocapturer.h"
22 #include "ohaudio/native_audiorenderer.h"
23 #include "ohaudio/native_audiostream_base.h"
24 #include "ohaudio/native_audiostreambuilder.h"
25 #include "unistd.h"
26 #include "ohaudio/native_audio_manager.h"
27 #include "ohaudio/native_audio_common.h"
28 #include "ohaudio/native_audio_routing_manager.h"
29 #include "ohaudio/native_audio_device_base.h"
30 #include "ohaudio/native_audio_session_manager.h"
31 #include "hilog/log.h"
32 #include <ctime>
33
34 #define AUDIO_LOG_TAG "AUDIO_TAGLOG"
35 #define AUDIO_LOG_DOMAIN 0x3200
36
37 #define LOG(fmt, ...) (void)OH_LOG_Print(LOG_APP, LOG_INFO, AUDIO_LOG_DOMAIN, AUDIO_LOG_TAG, fmt, ##__VA_ARGS__)
38
39 const int32_t g_samplingRate = 48000; // 48000:g_samplingRate value
40 const int32_t g_channelCount = 2; // 2:g_channelCount value
41 const int32_t g_latencyMode = 0;
42 const int32_t g_sampleFormat = 1;
43 const int32_t g_frameSize = 240; // 240:g_frameSize value
44 bool g_flag = false;
45 bool g_mark = false;
46 static std::string g_filePath = "/data/storage/el2/base/haps/entry_test/files/test_44100_2.wav";
47 FILE *g_file = nullptr;
48 bool g_readEnd = false;
49 const int32_t TEST_PASS = 0; // success result
50 const int32_t TEST_FAIL = 1; // fail result
51
uDelay(int time)52 void uDelay(int time)//time*1000为秒数
53 {
54 clock_t now = clock();
55 while(clock() - now < time);
56 }
57
Delay(int time)58 void Delay(int time)//time为秒数
59 {
60 time = time * 1000;
61 clock_t now = clock();
62 while(clock() - now < time);
63 }
64
AudioRendererOnMarkReachedWriteData(OH_AudioRenderer * capturer,void * userData,void * buffer,int32_t bufferLen)65 static int32_t AudioRendererOnMarkReachedWriteData(OH_AudioRenderer* capturer,
66 void* userData,
67 void* buffer,
68 int32_t bufferLen)
69 {
70 size_t readCount = fread(buffer, bufferLen, 1, g_file);
71 if (!readCount) {
72 if (ferror(g_file)) {
73 LOG("Error reading myfile");
74 } else if (feof(g_file)) {
75 LOG("EOF found");
76 g_readEnd = true;
77 }
78 }
79 return 0;
80 }
81
82
MyAudioSessionDeactivatedCallback(OH_AudioSession_DeactivatedEvent event)83 static int32_t MyAudioSessionDeactivatedCallback(OH_AudioSession_DeactivatedEvent event)
84 {
85 switch(event.reason) {
86 case DEACTIVATED_LOWER_PRIORITY:
87 // 应用焦点被抢占
88 LOG("MyAudioSessionDeactivatedCallback, event is %{public}d", event.reason);
89 return 0;
90 case DEACTIVATED_TIMEOUT:
91 // 超时
92 LOG("MyAudioSessionDeactivatedCallback, event is %{public}d", event.reason);
93 return 0;
94 }
95 }
96
CreateAudioStreamBuilder(napi_env env,napi_callback_info info)97 static napi_value CreateAudioStreamBuilder(napi_env env, napi_callback_info info)
98 {
99 OH_AudioStreamBuilder *builder;
100 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
101 OH_AudioStream_Result result = OH_AudioStreamBuilder_Create(&builder, type);
102 OH_AudioStreamBuilder_Destroy(builder);
103 napi_value res;
104 napi_create_int32(env, result, &res);
105 return res;
106 }
107
CreateCapturerBuilder()108 OH_AudioStreamBuilder *CreateCapturerBuilder()
109 {
110 OH_AudioStreamBuilder *builder;
111 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
112 OH_AudioStreamBuilder_Create(&builder, type);
113 return builder;
114 }
115
116
AudioCaptureGenerate(napi_env env,napi_callback_info info)117 static napi_value AudioCaptureGenerate(napi_env env, napi_callback_info info)
118 {
119 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
120
121 OH_AudioCapturer *audioCapturer;
122 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
123
124 OH_AudioCapturer_Release(audioCapturer);
125 OH_AudioStreamBuilder_Destroy(builder);
126 napi_value res;
127 napi_create_int32(env, result, &res);
128 return res;
129 }
130
AudioCaptureGenerateErr(napi_env env,napi_callback_info info)131 static napi_value AudioCaptureGenerateErr(napi_env env, napi_callback_info info)
132 {
133 OH_AudioStreamBuilder *builder = nullptr;
134 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
135 OH_AudioStreamBuilder_Create(&builder, type);
136
137 OH_AudioCapturer *audioCapturer = nullptr;
138 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
139
140 OH_AudioCapturer_Release(audioCapturer);
141 OH_AudioStreamBuilder_Destroy(builder);
142 napi_value res;
143 napi_create_int32(env, result, &res);
144 return res;
145 }
146
AudioCaptureStart(napi_env env,napi_callback_info info)147 static napi_value AudioCaptureStart(napi_env env, napi_callback_info info)
148 {
149 LOG("AudioCaptureStart SUCCESS");
150 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
151 OH_AudioCapturer *audioCapturer;
152 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
153
154 OH_AudioStream_Result result = OH_AudioCapturer_Start(audioCapturer);
155
156 OH_AudioCapturer_Release(audioCapturer);
157 OH_AudioStreamBuilder_Destroy(builder);
158 napi_value res;
159 napi_create_int32(env, result, &res);
160 return res;
161 }
162
AudioCaptureStartErr(napi_env env,napi_callback_info info)163 static napi_value AudioCaptureStartErr(napi_env env, napi_callback_info info)
164 {
165 LOG("AudioCaptureStart SUCCESS");
166 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
167 OH_AudioCapturer *audioCapturer;
168 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
169 OH_AudioCapturer_Start(audioCapturer);
170 OH_AudioStream_Result result = OH_AudioCapturer_Start(audioCapturer);
171
172 OH_AudioCapturer_Release(audioCapturer);
173 OH_AudioStreamBuilder_Destroy(builder);
174 napi_value res;
175 napi_create_int32(env, result, &res);
176 return res;
177 }
178
AudioCapturePause(napi_env env,napi_callback_info info)179 static napi_value AudioCapturePause(napi_env env, napi_callback_info info)
180 {
181 LOG("AudioCaptureStart SUCCESS");
182 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
183 OH_AudioCapturer *audioCapturer;
184 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
185 OH_AudioCapturer_Start(audioCapturer);
186 OH_AudioStream_Result result = OH_AudioCapturer_Pause(audioCapturer);
187 OH_AudioCapturer_Release(audioCapturer);
188 OH_AudioStreamBuilder_Destroy(builder);
189 napi_value res;
190 napi_create_int32(env, result, &res);
191 return res;
192 }
193
194
AudioCapturePauseErr(napi_env env,napi_callback_info info)195 static napi_value AudioCapturePauseErr(napi_env env, napi_callback_info info)
196 {
197 LOG("AudioCaptureStart SUCCESS");
198 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
199 OH_AudioCapturer *audioCapturer;
200 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
201 OH_AudioStream_Result result = OH_AudioCapturer_Pause(audioCapturer);
202 OH_AudioCapturer_Release(audioCapturer);
203 OH_AudioStreamBuilder_Destroy(builder);
204 napi_value res;
205 napi_create_int32(env, result, &res);
206 return res;
207 }
208
AudioCaptureStop(napi_env env,napi_callback_info info)209 static napi_value AudioCaptureStop(napi_env env, napi_callback_info info)
210 {
211 LOG("AudioCaptureStart SUCCESS");
212 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
213 OH_AudioCapturer *audioCapturer;
214 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
215 OH_AudioCapturer_Start(audioCapturer);
216 OH_AudioStream_Result result = OH_AudioCapturer_Stop(audioCapturer);
217 OH_AudioCapturer_Release(audioCapturer);
218 OH_AudioStreamBuilder_Destroy(builder);
219 napi_value res;
220 napi_create_int32(env, result, &res);
221 return res;
222 }
223
AudioCaptureStopErr(napi_env env,napi_callback_info info)224 static napi_value AudioCaptureStopErr(napi_env env, napi_callback_info info)
225 {
226 LOG("AudioCaptureStart SUCCESS");
227 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
228 OH_AudioCapturer *audioCapturer;
229 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
230 OH_AudioStream_Result result = OH_AudioCapturer_Stop(audioCapturer);
231 OH_AudioCapturer_Release(audioCapturer);
232 OH_AudioStreamBuilder_Destroy(builder);
233 napi_value res;
234 napi_create_int32(env, result, &res);
235 return res;
236 }
237
AudioCaptureFlush(napi_env env,napi_callback_info info)238 static napi_value AudioCaptureFlush(napi_env env, napi_callback_info info)
239 {
240 LOG("AudioCaptureFlush SUCCESS");
241 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
242 OH_AudioCapturer *audioCapturer;
243 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
244 OH_AudioCapturer_Start(audioCapturer);
245 OH_AudioStream_Result result = OH_AudioCapturer_Flush(audioCapturer);
246 OH_AudioCapturer_Release(audioCapturer);
247 OH_AudioStreamBuilder_Destroy(builder);
248 napi_value res;
249 napi_create_int32(env, result, &res);
250 return res;
251 }
252
253
AudioCaptureFlushErr(napi_env env,napi_callback_info info)254 static napi_value AudioCaptureFlushErr(napi_env env, napi_callback_info info)
255 {
256 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
257 OH_AudioCapturer *audioCapturer;
258 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
259 OH_AudioStream_Result result = OH_AudioCapturer_Flush(audioCapturer);
260 OH_AudioCapturer_Release(audioCapturer);
261 OH_AudioStreamBuilder_Destroy(builder);
262 napi_value res;
263 napi_create_int32(env, result, &res);
264 return res;
265 }
266
AudioCaptureRelease(napi_env env,napi_callback_info info)267 static napi_value AudioCaptureRelease(napi_env env, napi_callback_info info)
268 {
269 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
270 OH_AudioCapturer *audioCapturer;
271 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
272 OH_AudioCapturer_Start(audioCapturer);
273 OH_AudioStream_Result result = OH_AudioCapturer_Release(audioCapturer);
274 OH_AudioStreamBuilder_Destroy(builder);
275 napi_value res;
276 napi_create_int32(env, result, &res);
277 return res;
278 }
279
AudioCaptureReleaseErr(napi_env env,napi_callback_info info)280 static napi_value AudioCaptureReleaseErr(napi_env env, napi_callback_info info)
281 {
282 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
283 OH_AudioCapturer *audioCapturer;
284 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
285 OH_AudioCapturer_Release(audioCapturer);
286 audioCapturer = nullptr;
287 OH_AudioStream_Result result = OH_AudioCapturer_Release(audioCapturer);
288 OH_AudioStreamBuilder_Destroy(builder);
289 napi_value res;
290 napi_create_int32(env, result, &res);
291 return res;
292 }
293
AudioCaptureGetParameter(napi_env env,napi_callback_info info)294 static napi_value AudioCaptureGetParameter(napi_env env, napi_callback_info info)
295 {
296 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
297 OH_AudioCapturer *audioCapturer;
298 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
299
300 OH_AudioStream_LatencyMode latencyMode = AUDIOSTREAM_LATENCY_MODE_NORMAL;
301 OH_AudioStream_Result result = OH_AudioCapturer_GetLatencyMode(audioCapturer, &latencyMode);
302 OH_AudioCapturer_Release(audioCapturer);
303 OH_AudioStreamBuilder_Destroy(builder);
304 napi_value res;
305 napi_create_int32(env, result, &res);
306 return res;
307 }
308
AudioCaptureGetCurrentState(napi_env env,napi_callback_info info)309 static napi_value AudioCaptureGetCurrentState(napi_env env, napi_callback_info info)
310 {
311 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
312 OH_AudioCapturer *audioCapturer;
313 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
314
315 OH_AudioStream_State state;
316 OH_AudioStream_Result result = OH_AudioCapturer_GetCurrentState(audioCapturer, &state);
317 OH_AudioCapturer_Release(audioCapturer);
318 OH_AudioStreamBuilder_Destroy(builder);
319 napi_value res;
320 napi_create_int32(env, result, &res);
321 return res;
322 }
323
AudioCaptureGetStreamId(napi_env env,napi_callback_info info)324 static napi_value AudioCaptureGetStreamId(napi_env env, napi_callback_info info)
325 {
326 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
327 OH_AudioCapturer *audioCapturer;
328 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
329
330 uint32_t streamId;
331 OH_AudioStream_Result result = OH_AudioCapturer_GetStreamId(audioCapturer, &streamId);
332 OH_AudioCapturer_Release(audioCapturer);
333 OH_AudioStreamBuilder_Destroy(builder);
334 napi_value res;
335 napi_create_int32(env, result, &res);
336 return res;
337 }
338
AudioCaptureGetSamplingRate(napi_env env,napi_callback_info info)339 static napi_value AudioCaptureGetSamplingRate(napi_env env, napi_callback_info info)
340 {
341 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
342 OH_AudioCapturer *audioCapturer;
343 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
344
345 int32_t rate;
346 OH_AudioStream_Result result = OH_AudioCapturer_GetSamplingRate(audioCapturer, &rate);
347 OH_AudioCapturer_Release(audioCapturer);
348 OH_AudioStreamBuilder_Destroy(builder);
349 napi_value res;
350 napi_create_int32(env, result, &res);
351 return res;
352 }
353
AudioCaptureGetSampleFormat(napi_env env,napi_callback_info info)354 static napi_value AudioCaptureGetSampleFormat(napi_env env, napi_callback_info info)
355 {
356 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
357 OH_AudioCapturer *audioCapturer;
358 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
359
360 OH_AudioStream_SampleFormat sampleFormat;
361 OH_AudioStream_Result result = OH_AudioCapturer_GetSampleFormat(audioCapturer, &sampleFormat);
362 OH_AudioCapturer_Release(audioCapturer);
363 OH_AudioStreamBuilder_Destroy(builder);
364 napi_value res;
365 napi_create_int32(env, result, &res);
366 return res;
367 }
368
AudioCaptureGetEncodingType(napi_env env,napi_callback_info info)369 static napi_value AudioCaptureGetEncodingType(napi_env env, napi_callback_info info)
370 {
371 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
372 OH_AudioCapturer *audioCapturer;
373 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
374
375 OH_AudioStream_EncodingType encodingType;
376 OH_AudioStream_Result result = OH_AudioCapturer_GetEncodingType(audioCapturer, &encodingType);
377 OH_AudioCapturer_Release(audioCapturer);
378 OH_AudioStreamBuilder_Destroy(builder);
379 napi_value res;
380 napi_create_int32(env, result, &res);
381 return res;
382 }
383
AudioCaptureGetCapturerInfo(napi_env env,napi_callback_info info)384 static napi_value AudioCaptureGetCapturerInfo(napi_env env, napi_callback_info info)
385 {
386 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
387 OH_AudioCapturer *audioCapturer;
388 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
389
390 OH_AudioStream_SourceType sourceType;
391 OH_AudioStream_Result result = OH_AudioCapturer_GetCapturerInfo(audioCapturer, &sourceType);
392 OH_AudioCapturer_Release(audioCapturer);
393 OH_AudioStreamBuilder_Destroy(builder);
394 napi_value res;
395 napi_create_int32(env, result, &res);
396 return res;
397 }
398
AudioCaptureGetTimestamp(napi_env env,napi_callback_info info)399 static napi_value AudioCaptureGetTimestamp(napi_env env, napi_callback_info info)
400 {
401 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
402 OH_AudioCapturer *audioCapturer;
403 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
404 OH_AudioCapturer_Start(audioCapturer);
405
406 int sleepNum = 30000;
407 uDelay(sleepNum);
408 int64_t framePosition;
409 int64_t timestamp;
410 OH_AudioStream_Result result = OH_AudioCapturer_GetTimestamp(audioCapturer, CLOCK_MONOTONIC, &framePosition, ×tamp);
411 OH_AudioCapturer_Stop(audioCapturer);
412 OH_AudioCapturer_Release(audioCapturer);
413 OH_AudioStreamBuilder_Destroy(builder);
414 napi_value res;
415 napi_create_int32(env, result, &res);
416 return res;
417 }
418
AudioCaptureGetFramesRead(napi_env env,napi_callback_info info)419 static napi_value AudioCaptureGetFramesRead(napi_env env, napi_callback_info info)
420 {
421 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
422 OH_AudioCapturer *audioCapturer;
423 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
424
425 int64_t frames;
426 OH_AudioStream_Result result = OH_AudioCapturer_GetFramesRead(audioCapturer, &frames);
427 OH_AudioCapturer_Release(audioCapturer);
428 OH_AudioStreamBuilder_Destroy(builder);
429 napi_value res;
430 napi_create_int32(env, result, &res);
431 return res;
432 }
433
AudioCaptureGetFrameSizeInCallback(napi_env env,napi_callback_info info)434 static napi_value AudioCaptureGetFrameSizeInCallback(napi_env env, napi_callback_info info)
435 {
436 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
437 OH_AudioCapturer *audioCapturer;
438 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
439
440 int32_t frameSize;
441 OH_AudioStream_Result result = OH_AudioCapturer_GetFrameSizeInCallback(audioCapturer, &frameSize);
442 OH_AudioCapturer_Release(audioCapturer);
443 OH_AudioStreamBuilder_Destroy(builder);
444 napi_value res;
445 napi_create_int32(env, result, &res);
446 return res;
447 }
448
449
CreateRenderBuilder()450 OH_AudioStreamBuilder *CreateRenderBuilder()
451 {
452 OH_AudioStreamBuilder *builder;
453 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
454 OH_AudioStreamBuilder_Create(&builder, type);
455 return builder;
456 }
457
AudioRendererSetSpeed(napi_env env,napi_callback_info info)458 static napi_value AudioRendererSetSpeed(napi_env env, napi_callback_info info)
459 {
460 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
461
462 OH_AudioRenderer *audioRenderer;
463 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
464 float speed = 2;
465 OH_AudioStream_Result result = OH_AudioRenderer_SetSpeed(audioRenderer,speed);
466 OH_AudioRenderer_Release(audioRenderer);
467 OH_AudioStreamBuilder_Destroy(builder);
468 napi_value res;
469 napi_create_int32(env, result, &res);
470 return res;
471 }
472
AudioRendererGetSpeed(napi_env env,napi_callback_info info)473 static napi_value AudioRendererGetSpeed(napi_env env, napi_callback_info info)
474 {
475 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
476
477 OH_AudioRenderer *audioRenderer;
478 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
479 float speed;
480 OH_AudioStream_Result result = OH_AudioRenderer_GetSpeed(audioRenderer,&speed);
481 OH_AudioRenderer_Release(audioRenderer);
482 OH_AudioStreamBuilder_Destroy(builder);
483 napi_value res;
484 napi_create_int32(env, result, &res);
485 return res;
486 }
487
AudioRendererSetGetSpeed(napi_env env,napi_callback_info info)488 static napi_value AudioRendererSetGetSpeed(napi_env env, napi_callback_info info)
489 {
490 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
491
492 OH_AudioRenderer *audioRenderer;
493 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
494 float setSpeed = 1.5;
495 OH_AudioRenderer_SetSpeed(audioRenderer,setSpeed);
496 float getSpeed;
497 OH_AudioRenderer_GetSpeed(audioRenderer,&getSpeed);
498 OH_AudioRenderer_Release(audioRenderer);
499 OH_AudioStreamBuilder_Destroy(builder);
500 napi_value res;
501 napi_create_double(env, getSpeed, &res);
502 return res;
503 }
504
AudioRendererDeviceChangeCb(OH_AudioRenderer * renderer,void * userData,OH_AudioStream_DeviceChangeReason reason)505 static void AudioRendererDeviceChangeCb(OH_AudioRenderer* renderer, void* userData,
506 OH_AudioStream_DeviceChangeReason reason)
507 {}
508
AudioSetRendererOutputDeviceChangeCallback(napi_env env,napi_callback_info info)509 static napi_value AudioSetRendererOutputDeviceChangeCallback(napi_env env, napi_callback_info info)
510 {
511 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
512 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
513 OH_AudioStreamBuilder_Create(&builder, type);
514
515 OH_AudioRenderer_OutputDeviceChangeCallback deviceChangeCb = AudioRendererDeviceChangeCb;
516
517 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererOutputDeviceChangeCallback(builder, deviceChangeCb, NULL);
518
519 OH_AudioStreamBuilder_Destroy(builder);
520 napi_value res;
521 napi_create_int32(env, result, &res);
522 return res;
523 }
524
MicBlockedCallback(OH_AudioDeviceDescriptorArray * audioDeviceDescriptorArray,OH_AudioDevice_BlockStatus status,void * userData)525 static void MicBlockedCallback(OH_AudioDeviceDescriptorArray *audioDeviceDescriptorArray,
526 OH_AudioDevice_BlockStatus status, void *userData)
527 {
528 switch (status) {
529 case AUDIO_DEVICE_UNBLOCKED:
530 // 麦克风未被堵住
531 LOG("MyAudioSessionDeactivatedCallback, event is %{public}d", status);
532 case AUDIO_DEVICE_BLOCKED:
533 // 麦克风被堵住
534 LOG("MyAudioSessionDeactivatedCallback, event is %{public}d", status);
535 }
536 }
537
AudioRenderGetFramesWritten(napi_env env,napi_callback_info info)538 static napi_value AudioRenderGetFramesWritten(napi_env env, napi_callback_info info)
539 {
540 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
541
542 OH_AudioRenderer *audioRenderer;
543 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
544 int64_t frames;
545 OH_AudioStream_Result result = OH_AudioRenderer_GetFramesWritten(audioRenderer, &frames);
546 OH_AudioRenderer_Release(audioRenderer);
547 OH_AudioStreamBuilder_Destroy(builder);
548 napi_value res;
549 napi_create_int32(env, result, &res);
550 return res;
551 }
552
AudioRenderGetTimestamp(napi_env env,napi_callback_info info)553 static napi_value AudioRenderGetTimestamp(napi_env env, napi_callback_info info)
554 {
555 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
556
557 OH_AudioRenderer *audioRenderer;
558 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
559 OH_AudioRenderer_Start(audioRenderer);
560
561 int sleepNum = 30000;
562 uDelay(sleepNum);
563 int64_t framePosition;
564 int64_t timestamp;
565 OH_AudioStream_Result result = OH_AudioRenderer_GetTimestamp(audioRenderer, CLOCK_MONOTONIC, &framePosition, ×tamp);
566 OH_AudioRenderer_Stop(audioRenderer);
567 OH_AudioRenderer_Release(audioRenderer);
568 OH_AudioStreamBuilder_Destroy(builder);
569 napi_value res;
570 napi_create_int32(env, result, &res);
571 return res;
572 }
573
AudioRenderGetFrameSizeInCallback(napi_env env,napi_callback_info info)574 static napi_value AudioRenderGetFrameSizeInCallback(napi_env env, napi_callback_info info)
575 {
576 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
577
578 OH_AudioRenderer *audioRenderer;
579 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
580 int32_t frameSize;
581 OH_AudioStream_Result result = OH_AudioRenderer_GetFrameSizeInCallback(audioRenderer, &frameSize);
582 OH_AudioRenderer_Release(audioRenderer);
583 OH_AudioStreamBuilder_Destroy(builder);
584 napi_value res;
585 napi_create_int32(env, result, &res);
586 return res;
587 }
588
AudioRenderGenerate(napi_env env,napi_callback_info info)589 static napi_value AudioRenderGenerate(napi_env env, napi_callback_info info)
590 {
591 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
592
593 OH_AudioRenderer *audioRenderer;
594 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
595 OH_AudioRenderer_Release(audioRenderer);
596 OH_AudioStreamBuilder_Destroy(builder);
597 napi_value res;
598 napi_create_int32(env, result, &res);
599 return res;
600 }
601
AudioRenderGenerateErr(napi_env env,napi_callback_info info)602 static napi_value AudioRenderGenerateErr(napi_env env, napi_callback_info info)
603 {
604 OH_AudioStreamBuilder *builder;
605 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
606 OH_AudioStreamBuilder_Create(&builder, type);
607
608 OH_AudioRenderer *audioRenderer;
609 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
610
611 OH_AudioStreamBuilder_Destroy(builder);
612 napi_value res;
613 napi_create_int32(env, result, &res);
614 return res;
615 }
616
AudioRenderStart(napi_env env,napi_callback_info info)617 static napi_value AudioRenderStart(napi_env env, napi_callback_info info)
618 {
619 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
620
621 OH_AudioRenderer *audioRenderer;
622 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
623 OH_AudioStream_Result result = OH_AudioRenderer_Start(audioRenderer);
624 OH_AudioRenderer_Release(audioRenderer);
625 OH_AudioStreamBuilder_Destroy(builder);
626 napi_value res;
627 napi_create_int32(env, result, &res);
628 return res;
629 }
630
631
AudioRenderStartErr(napi_env env,napi_callback_info info)632 static napi_value AudioRenderStartErr(napi_env env, napi_callback_info info)
633 {
634 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
635
636 OH_AudioRenderer *audioRenderer;
637 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
638 OH_AudioRenderer_Start(audioRenderer);
639 OH_AudioStream_Result result = OH_AudioRenderer_Start(audioRenderer);
640 OH_AudioRenderer_Release(audioRenderer);
641 OH_AudioStreamBuilder_Destroy(builder);
642 napi_value res;
643 napi_create_int32(env, result, &res);
644 return res;
645 }
646
AudioRenderPause(napi_env env,napi_callback_info info)647 static napi_value AudioRenderPause(napi_env env, napi_callback_info info)
648 {
649 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
650
651 OH_AudioRenderer *audioRenderer;
652 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
653 OH_AudioRenderer_Start(audioRenderer);
654 OH_AudioStream_Result result = OH_AudioRenderer_Pause(audioRenderer);
655 OH_AudioRenderer_Release(audioRenderer);
656 OH_AudioStreamBuilder_Destroy(builder);
657 napi_value res;
658 napi_create_int32(env, result, &res);
659 return res;
660 }
661
AudioRenderPauseErr(napi_env env,napi_callback_info info)662 static napi_value AudioRenderPauseErr(napi_env env, napi_callback_info info)
663 {
664 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
665
666 OH_AudioRenderer *audioRenderer;
667 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
668 OH_AudioStream_Result result = OH_AudioRenderer_Pause(audioRenderer);
669 OH_AudioRenderer_Release(audioRenderer);
670 OH_AudioStreamBuilder_Destroy(builder);
671 napi_value res;
672 napi_create_int32(env, result, &res);
673 return res;
674 }
675
AudioRenderStop(napi_env env,napi_callback_info info)676 static napi_value AudioRenderStop(napi_env env, napi_callback_info info)
677 {
678 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
679
680 OH_AudioRenderer *audioRenderer;
681 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
682 OH_AudioRenderer_Start(audioRenderer);
683 OH_AudioStream_Result result = OH_AudioRenderer_Stop(audioRenderer);
684 OH_AudioRenderer_Release(audioRenderer);
685 OH_AudioStreamBuilder_Destroy(builder);
686 napi_value res;
687 napi_create_int32(env, result, &res);
688 return res;
689 }
690
AudioRenderStopErr(napi_env env,napi_callback_info info)691 static napi_value AudioRenderStopErr(napi_env env, napi_callback_info info)
692 {
693 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
694
695 OH_AudioRenderer *audioRenderer;
696 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
697 OH_AudioStream_Result result = OH_AudioRenderer_Stop(audioRenderer);
698 OH_AudioRenderer_Release(audioRenderer);
699 OH_AudioStreamBuilder_Destroy(builder);
700 napi_value res;
701 napi_create_int32(env, result, &res);
702 return res;
703 }
704
AudioRenderFlush(napi_env env,napi_callback_info info)705 static napi_value AudioRenderFlush(napi_env env, napi_callback_info info)
706 {
707 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
708
709 OH_AudioRenderer *audioRenderer;
710 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
711 OH_AudioRenderer_Start(audioRenderer);
712 OH_AudioStream_Result result = OH_AudioRenderer_Flush(audioRenderer);
713 OH_AudioRenderer_Release(audioRenderer);
714 OH_AudioStreamBuilder_Destroy(builder);
715 napi_value res;
716 napi_create_int32(env, result, &res);
717 return res;
718 }
719
720
AudioRenderFlushErr(napi_env env,napi_callback_info info)721 static napi_value AudioRenderFlushErr(napi_env env, napi_callback_info info)
722 {
723 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
724
725 OH_AudioRenderer *audioRenderer;
726 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
727 OH_AudioStream_Result result = OH_AudioRenderer_Flush(audioRenderer);
728 OH_AudioRenderer_Release(audioRenderer);
729 OH_AudioStreamBuilder_Destroy(builder);
730 napi_value res;
731 napi_create_int32(env, result, &res);
732 return res;
733 }
734
AudioRenderRelease(napi_env env,napi_callback_info info)735 static napi_value AudioRenderRelease(napi_env env, napi_callback_info info)
736 {
737 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
738
739 OH_AudioRenderer *audioRenderer;
740 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
741 OH_AudioRenderer_Start(audioRenderer);
742 OH_AudioStream_Result result = OH_AudioRenderer_Release(audioRenderer);
743 OH_AudioStreamBuilder_Destroy(builder);
744 napi_value res;
745 napi_create_int32(env, result, &res);
746 return res;
747 }
748
749
AudioRenderReleaseErr(napi_env env,napi_callback_info info)750 static napi_value AudioRenderReleaseErr(napi_env env, napi_callback_info info)
751 {
752 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
753
754 OH_AudioRenderer *audioRenderer;
755 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
756 OH_AudioRenderer_Release(audioRenderer);
757 audioRenderer = nullptr;
758 OH_AudioStream_Result result = OH_AudioRenderer_Release(audioRenderer);
759 OH_AudioStreamBuilder_Destroy(builder);
760 napi_value res;
761 napi_create_int32(env, result, &res);
762 return res;
763 }
764
AudioRenderGetCurrentState(napi_env env,napi_callback_info info)765 static napi_value AudioRenderGetCurrentState(napi_env env, napi_callback_info info)
766 {
767 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
768
769 OH_AudioRenderer *audioRenderer;
770 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
771 OH_AudioStream_State state;
772 OH_AudioStream_Result result = OH_AudioRenderer_GetCurrentState(audioRenderer, &state);
773 OH_AudioRenderer_Release(audioRenderer);
774 OH_AudioStreamBuilder_Destroy(builder);
775 napi_value res;
776 napi_create_int32(env, result, &res);
777 return res;
778 }
779
780
AudioRenderGetParameter(napi_env env,napi_callback_info info)781 static napi_value AudioRenderGetParameter(napi_env env, napi_callback_info info)
782 {
783 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
784
785 OH_AudioRenderer *audioRenderer;
786 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
787 OH_AudioStream_LatencyMode latencyMode = AUDIOSTREAM_LATENCY_MODE_NORMAL;
788 OH_AudioStream_Result result = OH_AudioRenderer_GetLatencyMode(audioRenderer, &latencyMode);
789 OH_AudioRenderer_Release(audioRenderer);
790 OH_AudioStreamBuilder_Destroy(builder);
791 napi_value res;
792 napi_create_int32(env, result, &res);
793 return res;
794 }
795
796
AudioRenderGetStreamId(napi_env env,napi_callback_info info)797 static napi_value AudioRenderGetStreamId(napi_env env, napi_callback_info info)
798 {
799 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
800
801 OH_AudioRenderer *audioRenderer;
802 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
803
804 uint32_t streamId;
805 OH_AudioStream_Result result = OH_AudioRenderer_GetStreamId(audioRenderer, &streamId);
806 OH_AudioRenderer_Release(audioRenderer);
807 OH_AudioStreamBuilder_Destroy(builder);
808 napi_value res;
809 napi_create_int32(env, result, &res);
810 return res;
811 }
812
AudioRenderGetSamplingRate(napi_env env,napi_callback_info info)813 static napi_value AudioRenderGetSamplingRate(napi_env env, napi_callback_info info)
814 {
815 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
816
817 OH_AudioRenderer *audioRenderer;
818 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
819 int32_t rate;
820 OH_AudioStream_Result result = OH_AudioRenderer_GetSamplingRate(audioRenderer, &rate);
821 OH_AudioRenderer_Release(audioRenderer);
822 OH_AudioStreamBuilder_Destroy(builder);
823 napi_value res;
824 napi_create_int32(env, result, &res);
825 return res;
826 }
827
828
AudioRenderGetSampleFormat(napi_env env,napi_callback_info info)829 static napi_value AudioRenderGetSampleFormat(napi_env env, napi_callback_info info)
830 {
831 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
832
833 OH_AudioRenderer *audioRenderer;
834 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
835 OH_AudioStream_SampleFormat sampleFormat;
836 OH_AudioStream_Result result = OH_AudioRenderer_GetSampleFormat(audioRenderer, &sampleFormat);
837 OH_AudioRenderer_Release(audioRenderer);
838 OH_AudioStreamBuilder_Destroy(builder);
839 napi_value res;
840 napi_create_int32(env, result, &res);
841 return res;
842 }
843
844
AudioRenderGetEncodingType(napi_env env,napi_callback_info info)845 static napi_value AudioRenderGetEncodingType(napi_env env, napi_callback_info info)
846 {
847 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
848
849 OH_AudioRenderer *audioRenderer;
850 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
851 OH_AudioStream_EncodingType encodingType;
852 OH_AudioStream_Result result = OH_AudioRenderer_GetEncodingType(audioRenderer, &encodingType);
853 OH_AudioRenderer_Release(audioRenderer);
854 OH_AudioStreamBuilder_Destroy(builder);
855 napi_value res;
856 napi_create_int32(env, result, &res);
857 return res;
858 }
859
AudioRenderGetRendererInfo(napi_env env,napi_callback_info info)860 static napi_value AudioRenderGetRendererInfo(napi_env env, napi_callback_info info)
861 {
862 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
863
864 OH_AudioRenderer *audioRenderer;
865 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
866 OH_AudioStream_Usage usage;
867 OH_AudioStream_Result result = OH_AudioRenderer_GetRendererInfo(audioRenderer, &usage);
868 OH_AudioRenderer_Release(audioRenderer);
869 OH_AudioStreamBuilder_Destroy(builder);
870 napi_value res;
871 napi_create_int32(env, result, &res);
872 return res;
873 }
874
875
AudioStreamBuilderSetSamplingRate(napi_env env,napi_callback_info info)876 static napi_value AudioStreamBuilderSetSamplingRate(napi_env env, napi_callback_info info)
877 {
878 OH_AudioStreamBuilder* builder;
879 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
880 OH_AudioStreamBuilder_Create(&builder, type);
881 int32_t samplingRate = 48000;
882 OH_AudioStreamBuilder_SetSamplingRate(builder, samplingRate);
883 OH_AudioStream_Result result = OH_AudioStreamBuilder_Destroy(builder);
884 napi_value res;
885 napi_create_int32(env, result, &res);
886 return res;
887 }
888
AudioStreamBuilderSetChannelCount(napi_env env,napi_callback_info info)889 static napi_value AudioStreamBuilderSetChannelCount(napi_env env, napi_callback_info info)
890 {
891 OH_AudioStreamBuilder* builder;
892 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
893 OH_AudioStreamBuilder_Create(&builder, type);
894 int32_t channelCount = 1;
895 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetChannelCount(builder, channelCount);
896 OH_AudioStreamBuilder_Destroy(builder);
897 napi_value res;
898 napi_create_int32(env, result, &res);
899 return res;
900 }
901
902
AudioStreamBuilderSetSampleFormat(napi_env env,napi_callback_info info)903 static napi_value AudioStreamBuilderSetSampleFormat(napi_env env, napi_callback_info info)
904 {
905 OH_AudioStreamBuilder* builder;
906 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
907 OH_AudioStreamBuilder_Create(&builder, type);
908 OH_AudioStream_SampleFormat format = AUDIOSTREAM_SAMPLE_U8;
909 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetSampleFormat(builder, format);
910 OH_AudioStreamBuilder_Destroy(builder);
911 napi_value res;
912 napi_create_int32(env, result, &res);
913 return res;
914 }
915
916
AudioStreamBuilderSetEncodingType(napi_env env,napi_callback_info info)917 static napi_value AudioStreamBuilderSetEncodingType(napi_env env, napi_callback_info info)
918 {
919 OH_AudioStreamBuilder* builder;
920 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
921 OH_AudioStreamBuilder_Create(&builder, type);
922 OH_AudioStream_EncodingType encodingType = AUDIOSTREAM_ENCODING_TYPE_RAW;
923 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetEncodingType(builder, encodingType);
924 OH_AudioStreamBuilder_Destroy(builder);
925 napi_value res;
926 napi_create_int32(env, result, &res);
927 return res;
928 }
929
930
AudioStreamBuilderSetLatencyMode(napi_env env,napi_callback_info info)931 static napi_value AudioStreamBuilderSetLatencyMode(napi_env env, napi_callback_info info)
932 {
933 OH_AudioStreamBuilder* builder;
934 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
935 OH_AudioStreamBuilder_Create(&builder, type);
936
937 OH_AudioStream_LatencyMode latencyMode = AUDIOSTREAM_LATENCY_MODE_NORMAL;
938 OH_AudioStreamBuilder_SetLatencyMode(builder, latencyMode);
939
940 OH_AudioStream_Result result = OH_AudioStreamBuilder_Destroy(builder);
941 napi_value res;
942 napi_create_int32(env, result, &res);
943 return res;
944 }
945
946
AudioStreamBuilderSetRendererInfo(napi_env env,napi_callback_info info)947 static napi_value AudioStreamBuilderSetRendererInfo(napi_env env, napi_callback_info info)
948 {
949 OH_AudioStreamBuilder* builder;
950 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
951 OH_AudioStreamBuilder_Create(&builder, type);
952 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
953 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
954
955 OH_AudioStreamBuilder_Destroy(builder);
956 napi_value res;
957 napi_create_int32(env, result, &res);
958 return res;
959 }
960
961
AudioStreamBuilderSetCapturerInfo(napi_env env,napi_callback_info info)962 static napi_value AudioStreamBuilderSetCapturerInfo(napi_env env, napi_callback_info info)
963 {
964 OH_AudioStreamBuilder* builder;
965 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
966 OH_AudioStreamBuilder_Create(&builder, type);
967 OH_AudioStream_SourceType sourceType = AUDIOSTREAM_SOURCE_TYPE_MIC;
968 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerInfo(builder, sourceType);
969 OH_AudioStreamBuilder_Destroy(builder);
970 napi_value res;
971 napi_create_int32(env, result, &res);
972 return res;
973 }
974
AudioRendererOnWriteData(OH_AudioRenderer * capturer,void * userData,void * buffer,int32_t bufferLen)975 static int32_t AudioRendererOnWriteData(OH_AudioRenderer* capturer,
976 void* userData,
977 void* buffer,
978 int32_t bufferLen)
979 {
980 return 0;
981 }
AudioStreamBuilderSetRendererCallback(napi_env env,napi_callback_info info)982 static napi_value AudioStreamBuilderSetRendererCallback(napi_env env, napi_callback_info info)
983 {
984 OH_AudioStreamBuilder* builder;
985 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
986 OH_AudioStreamBuilder_Create(&builder, type);
987 OH_AudioRenderer_Callbacks callbacks;
988 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
989 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, NULL);
990 OH_AudioStreamBuilder_Destroy(builder);
991 napi_value res;
992 napi_create_int32(env, result, &res);
993 return res;
994 }
995
AudioCapturerOnReadData(OH_AudioCapturer * capturer,void * userData,void * buffer,int32_t bufferLen)996 static int32_t AudioCapturerOnReadData(
997 OH_AudioCapturer* capturer,
998 void* userData,
999 void* buffer,
1000 int32_t bufferLen)
1001 {
1002 return 0;
1003 }
AudioStreamBuilderSetCapturerCallback(napi_env env,napi_callback_info info)1004 static napi_value AudioStreamBuilderSetCapturerCallback(napi_env env, napi_callback_info info)
1005 {
1006 OH_AudioStreamBuilder* builder;
1007 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
1008 OH_AudioStreamBuilder_Create(&builder, type);
1009
1010 OH_AudioCapturer_Callbacks callbacks;
1011 callbacks.OH_AudioCapturer_OnReadData = AudioCapturerOnReadData;
1012 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerCallback(builder, callbacks, NULL);
1013
1014 OH_AudioStreamBuilder_Destroy(builder);
1015 napi_value res;
1016 napi_create_int32(env, result, &res);
1017 return res;
1018 }
1019
AudioCaptureGetChannelCount(napi_env env,napi_callback_info info)1020 static napi_value AudioCaptureGetChannelCount(napi_env env, napi_callback_info info)
1021 {
1022 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
1023 OH_AudioCapturer *audioCapturer;
1024 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
1025
1026 int32_t channelCount;
1027 OH_AudioStream_Result result = OH_AudioCapturer_GetChannelCount(audioCapturer, &channelCount);
1028 OH_AudioCapturer_Release(audioCapturer);
1029 OH_AudioStreamBuilder_Destroy(builder);
1030 napi_value res;
1031 napi_create_int32(env, result, &res);
1032 return res;
1033 }
1034
AudioRenderGetChannelCount(napi_env env,napi_callback_info info)1035 static napi_value AudioRenderGetChannelCount(napi_env env, napi_callback_info info)
1036 {
1037 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1038
1039 OH_AudioRenderer *audioRenderer;
1040 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1041
1042 int32_t channelCount;
1043 OH_AudioStream_Result result = OH_AudioRenderer_GetChannelCount(audioRenderer, &channelCount);
1044 OH_AudioRenderer_Release(audioRenderer);
1045 OH_AudioStreamBuilder_Destroy(builder);
1046 napi_value res;
1047 napi_create_int32(env, result, &res);
1048 return res;
1049 }
1050
AudioStreamBuilderSetFrameSizeInCallback(napi_env env,napi_callback_info info)1051 static napi_value AudioStreamBuilderSetFrameSizeInCallback(napi_env env, napi_callback_info info)
1052 {
1053 OH_AudioStreamBuilder *builder;
1054 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
1055 OH_AudioStreamBuilder_Create(&builder, type);
1056 int32_t framesize = 960;
1057 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, framesize);
1058 OH_AudioStreamBuilder_Destroy(builder);
1059 napi_value res;
1060 napi_create_int32(env, result, &res);
1061 return res;
1062 }
1063
AudioRendererGetVolume_01(napi_env env,napi_callback_info info)1064 static napi_value AudioRendererGetVolume_01(napi_env env, napi_callback_info info)
1065 {
1066 OH_AudioRenderer* audioRenderer = nullptr;
1067 float volume;
1068 OH_AudioStream_Result result = OH_AudioRenderer_GetVolume(audioRenderer, &volume);
1069 LOG("OH_AudioRenderer_GetVolume, volumeGet is %f, result %{public}d", volume, result);
1070 napi_value res;
1071 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1072 napi_create_int32(env, TEST_FAIL, &res);
1073 } else {
1074 napi_create_int32(env, TEST_PASS, &res);
1075 }
1076 return res;
1077 }
1078
AudioRendererSetVolume_01(napi_env env,napi_callback_info info)1079 static napi_value AudioRendererSetVolume_01(napi_env env, napi_callback_info info)
1080 {
1081 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1082 OH_AudioRenderer* audioRenderer;
1083 napi_value res;
1084 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1085 if (result != AUDIOSTREAM_SUCCESS) {
1086 napi_create_int32(env, TEST_FAIL, &res);
1087 return res;
1088 }
1089 float volumeSet = 1.0;
1090 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1091 LOG("OH_AudioRenderer_SetVolume 1.0, result is %{public}d", result);
1092 if (result != AUDIOSTREAM_SUCCESS) {
1093 napi_create_int32(env, TEST_FAIL, &res);
1094 return res;
1095 }
1096 float volumeGet;
1097 result = OH_AudioRenderer_GetVolume(audioRenderer, &volumeGet);
1098 LOG("OH_AudioRenderer_GetVolume, volumeGet is %f, %{public}d", volumeGet, result);
1099 if (result != AUDIOSTREAM_SUCCESS || volumeGet != volumeSet) {
1100 napi_create_int32(env, TEST_FAIL, &res);
1101 } else {
1102 napi_create_int32(env, TEST_PASS, &res);
1103 }
1104 OH_AudioRenderer_Release(audioRenderer);
1105 OH_AudioStreamBuilder_Destroy(builder);
1106 return res;
1107 }
1108
AudioRendererSetVolume_02(napi_env env,napi_callback_info info)1109 static napi_value AudioRendererSetVolume_02(napi_env env, napi_callback_info info)
1110 {
1111 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1112 OH_AudioRenderer* audioRenderer;
1113 napi_value res;
1114 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1115 if (result != AUDIOSTREAM_SUCCESS) {
1116 napi_create_int32(env, TEST_FAIL, &res);
1117 return res;
1118 }
1119 float volumeSet = 0.0;
1120 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1121 LOG("OH_AudioRenderer_SetVolume 0.0, result is %{public}d", result);
1122 if (result != AUDIOSTREAM_SUCCESS) {
1123 napi_create_int32(env, TEST_FAIL, &res);
1124 return res;
1125 }
1126 float volumeGet;
1127 result = OH_AudioRenderer_GetVolume(audioRenderer, &volumeGet);
1128 LOG("OH_AudioRenderer_GetVolume, volumeGet is %f, %{public}d", volumeGet, result);
1129 if (result != AUDIOSTREAM_SUCCESS || volumeGet != volumeSet) {
1130 napi_create_int32(env, TEST_FAIL, &res);
1131 } else {
1132 napi_create_int32(env, TEST_PASS, &res);
1133 }
1134 OH_AudioRenderer_Release(audioRenderer);
1135 OH_AudioStreamBuilder_Destroy(builder);
1136 return res;
1137 }
1138
AudioRendererSetVolume_03(napi_env env,napi_callback_info info)1139 static napi_value AudioRendererSetVolume_03(napi_env env, napi_callback_info info)
1140 {
1141 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1142 OH_AudioRenderer* audioRenderer;
1143 napi_value res;
1144 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1145 if (result != AUDIOSTREAM_SUCCESS) {
1146 napi_create_int32(env, TEST_FAIL, &res);
1147 return res;
1148 }
1149 float volumeSet = 0.3; // 0.3:value of volumeSet
1150 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1151 LOG("OH_AudioRenderer_SetVolume 0.3, result is %{public}d", result);
1152 if (result != AUDIOSTREAM_SUCCESS) {
1153 napi_create_int32(env, TEST_FAIL, &res);
1154 return res;
1155 }
1156 volumeSet = 0.8; // 0.8:value of volumeSet
1157 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1158 LOG("OH_AudioRenderer_SetVolume 0.8, result is %{public}d", result);
1159 if (result != AUDIOSTREAM_SUCCESS) {
1160 napi_create_int32(env, TEST_FAIL, &res);
1161 return res;
1162 }
1163 float volumeGet;
1164 result = OH_AudioRenderer_GetVolume(audioRenderer, &volumeGet);
1165 LOG("OH_AudioRenderer_GetVolume, volumeGet is %f, %{public}d", volumeGet, result);
1166 if (result != AUDIOSTREAM_SUCCESS || volumeGet != volumeSet) {
1167 napi_create_int32(env, TEST_FAIL, &res);
1168 } else {
1169 napi_create_int32(env, TEST_PASS, &res);
1170 }
1171 OH_AudioRenderer_Release(audioRenderer);
1172 OH_AudioStreamBuilder_Destroy(builder);
1173 return res;
1174 }
1175
AudioRendererSetVolume_04(napi_env env,napi_callback_info info)1176 static napi_value AudioRendererSetVolume_04(napi_env env, napi_callback_info info)
1177 {
1178 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1179 OH_AudioRenderer* audioRenderer;
1180 napi_value res;
1181 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1182 if (result != AUDIOSTREAM_SUCCESS) {
1183 napi_create_int32(env, TEST_FAIL, &res);
1184 return res;
1185 }
1186 float volumeSet = -1.0;
1187 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1188 LOG("OH_AudioRenderer_SetVolume -1.0 result is %{public}d", result);
1189 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1190 napi_create_int32(env, TEST_FAIL, &res);
1191 } else {
1192 napi_create_int32(env, TEST_PASS, &res);
1193 }
1194 OH_AudioRenderer_Release(audioRenderer);
1195 OH_AudioStreamBuilder_Destroy(builder);
1196 return res;
1197 }
1198
AudioRendererSetVolume_05(napi_env env,napi_callback_info info)1199 static napi_value AudioRendererSetVolume_05(napi_env env, napi_callback_info info)
1200 {
1201 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1202 OH_AudioRenderer* audioRenderer;
1203 napi_value res;
1204 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1205 if (result != AUDIOSTREAM_SUCCESS) {
1206 napi_create_int32(env, TEST_FAIL, &res);
1207 return res;
1208 }
1209 float volumeSet = 1.5; // 1.5:value of volumeSet
1210 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1211 LOG("OH_AudioRenderer_SetVolume 1.5 result is %{public}d", result);
1212 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1213 napi_create_int32(env, TEST_FAIL, &res);
1214 } else {
1215 napi_create_int32(env, TEST_PASS, &res);
1216 }
1217 OH_AudioRenderer_Release(audioRenderer);
1218 OH_AudioStreamBuilder_Destroy(builder);
1219 return res;
1220 }
1221
AudioRendererSetVolume_06(napi_env env,napi_callback_info info)1222 static napi_value AudioRendererSetVolume_06(napi_env env, napi_callback_info info)
1223 {
1224 OH_AudioRenderer* audioRenderer = nullptr;
1225 float volumeSet = 0.5; // 0.5:value of volumeSet
1226 napi_value res;
1227 OH_AudioStream_Result result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1228 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1229 napi_create_int32(env, TEST_FAIL, &res);
1230 } else {
1231 napi_create_int32(env, TEST_PASS, &res);
1232 }
1233 LOG("OH_AudioRenderer_GetVolume, volumeGet is %f, %{public}d", volumeSet, result);
1234 return res;
1235 }
1236
AudioRendererSetVolumeWithRamp_01(napi_env env,napi_callback_info info)1237 static napi_value AudioRendererSetVolumeWithRamp_01(napi_env env, napi_callback_info info)
1238 {
1239 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1240 OH_AudioRenderer* audioRenderer;
1241 napi_value res;
1242 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1243 if (result != AUDIOSTREAM_SUCCESS) {
1244 napi_create_int32(env, TEST_FAIL, &res);
1245 return res;
1246 }
1247 float volumeSet = 0.0;
1248 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1249 LOG("OH_AudioRenderer_SetVolume 0.0 result is %{public}d", result);
1250 if (result != AUDIOSTREAM_SUCCESS) {
1251 napi_create_int32(env, TEST_FAIL, &res);
1252 return res;
1253 }
1254 int32_t durationMs = 1000; // 1000:value of durationMs
1255 volumeSet = 1.0;
1256 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1257 LOG("OH_AudioRenderer_SetVolumeWithRamp 0.0->1.0 1000 result is %{public}d", result);
1258 if (result != AUDIOSTREAM_SUCCESS) {
1259 napi_create_int32(env, TEST_FAIL, &res);
1260 } else {
1261 napi_create_int32(env, TEST_PASS, &res);
1262 }
1263 OH_AudioRenderer_Release(audioRenderer);
1264 OH_AudioStreamBuilder_Destroy(builder);
1265 return res;
1266 }
1267
AudioRendererSetVolumeWithRamp_02(napi_env env,napi_callback_info info)1268 static napi_value AudioRendererSetVolumeWithRamp_02(napi_env env, napi_callback_info info)
1269 {
1270 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1271 OH_AudioRenderer* audioRenderer;
1272 napi_value res;
1273 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1274 if (result != AUDIOSTREAM_SUCCESS) {
1275 napi_create_int32(env, TEST_FAIL, &res);
1276 return res;
1277 }
1278 float volumeSet = 1.0;
1279 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1280 LOG("OH_AudioRenderer_SetVolume 1.0 result is %{public}d", result);
1281 if (result != AUDIOSTREAM_SUCCESS) {
1282 napi_create_int32(env, TEST_FAIL, &res);
1283 return res;
1284 }
1285 int32_t durationMs = 100; // 100:value of durationMs
1286 volumeSet = 0.0;
1287 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1288 LOG("OH_AudioRenderer_SetVolumeWithRamp 1.0->0.0 100 result is %{public}d", result);
1289 if (result != AUDIOSTREAM_SUCCESS) {
1290 napi_create_int32(env, TEST_FAIL, &res);
1291 } else {
1292 napi_create_int32(env, TEST_PASS, &res);
1293 }
1294 OH_AudioRenderer_Release(audioRenderer);
1295 OH_AudioStreamBuilder_Destroy(builder);
1296 return res;
1297 }
1298
AudioRendererSetVolumeWithRamp_03(napi_env env,napi_callback_info info)1299 static napi_value AudioRendererSetVolumeWithRamp_03(napi_env env, napi_callback_info info)
1300 {
1301 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1302 OH_AudioRenderer* audioRenderer;
1303 napi_value res;
1304 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1305 if (result != AUDIOSTREAM_SUCCESS) {
1306 napi_create_int32(env, TEST_FAIL, &res);
1307 return res;
1308 }
1309 float volumeSet = 0.0;
1310 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1311 LOG("OH_AudioRenderer_SetVolume 0.0 result is %{public}d", result);
1312 if (result != AUDIOSTREAM_SUCCESS) {
1313 napi_create_int32(env, TEST_FAIL, &res);
1314 return res;
1315 }
1316 int32_t durationMs = 10; // 10:value of durationMs
1317 volumeSet = 0.5; // 0.5:value of volumeSet
1318 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1319 LOG("OH_AudioRenderer_SetVolumeWithRamp 0.0->0.5 10 result is %{public}d", result);
1320 if (result != AUDIOSTREAM_SUCCESS) {
1321 napi_create_int32(env, TEST_FAIL, &res);
1322 } else {
1323 napi_create_int32(env, TEST_PASS, &res);
1324 }
1325 OH_AudioRenderer_Release(audioRenderer);
1326 OH_AudioStreamBuilder_Destroy(builder);
1327 return res;
1328 }
1329
AudioRendererSetVolumeWithRamp_04(napi_env env,napi_callback_info info)1330 static napi_value AudioRendererSetVolumeWithRamp_04(napi_env env, napi_callback_info info)
1331 {
1332 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1333 OH_AudioRenderer* audioRenderer;
1334 napi_value res;
1335 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1336 if (result != AUDIOSTREAM_SUCCESS) {
1337 napi_create_int32(env, TEST_FAIL, &res);
1338 return res;
1339 }
1340 float volumeSet = 1.0;
1341 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1342 LOG("OH_AudioRenderer_SetVolume 1.0 result is %{public}d", result);
1343 if (result != AUDIOSTREAM_SUCCESS) {
1344 napi_create_int32(env, TEST_FAIL, &res);
1345 return res;
1346 }
1347 int32_t durationMs = 10; // 10:value of durationMs
1348 volumeSet = 0.5; // 0.5:value of volumeSet
1349 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1350 LOG("OH_AudioRenderer_SetVolumeWithRamp 1.0->0.5 10 result is %{public}d", result);
1351 if (result != AUDIOSTREAM_SUCCESS) {
1352 napi_create_int32(env, TEST_FAIL, &res);
1353 } else {
1354 napi_create_int32(env, TEST_PASS, &res);
1355 }
1356 OH_AudioRenderer_Release(audioRenderer);
1357 OH_AudioStreamBuilder_Destroy(builder);
1358 return res;
1359 }
1360
AudioRendererSetVolumeWithRamp_05(napi_env env,napi_callback_info info)1361 static napi_value AudioRendererSetVolumeWithRamp_05(napi_env env, napi_callback_info info)
1362 {
1363 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1364 OH_AudioRenderer* audioRenderer;
1365 napi_value res;
1366 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1367 if (result != AUDIOSTREAM_SUCCESS) {
1368 napi_create_int32(env, TEST_FAIL, &res);
1369 return res;
1370 }
1371 float volumeSet = 0.0;
1372 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1373 LOG("OH_AudioRenderer_SetVolume 0.0 result is %{public}d", result);
1374 if (result != AUDIOSTREAM_SUCCESS) {
1375 napi_create_int32(env, TEST_FAIL, &res);
1376 return res;
1377 }
1378 int32_t durationMs = 10; // 10:value of durationMs
1379 volumeSet = 0.0;
1380 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1381 LOG("OH_AudioRenderer_SetVolumeWithRamp 0.0->0.0 10 result is %{public}d", result);
1382 if (result != AUDIOSTREAM_SUCCESS) {
1383 napi_create_int32(env, TEST_FAIL, &res);
1384 } else {
1385 napi_create_int32(env, TEST_PASS, &res);
1386 }
1387 OH_AudioRenderer_Release(audioRenderer);
1388 OH_AudioStreamBuilder_Destroy(builder);
1389 return res;
1390 }
1391
AudioRendererSetVolumeWithRamp_06(napi_env env,napi_callback_info info)1392 static napi_value AudioRendererSetVolumeWithRamp_06(napi_env env, napi_callback_info info)
1393 {
1394 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1395 OH_AudioRenderer* audioRenderer;
1396 napi_value res;
1397 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1398 if (result != AUDIOSTREAM_SUCCESS) {
1399 napi_create_int32(env, TEST_FAIL, &res);
1400 return res;
1401 }
1402 float volumeSet = 1.0;
1403 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1404 LOG("OH_AudioRenderer_SetVolume 1.0 result is %{public}d", result);
1405 if (result != AUDIOSTREAM_SUCCESS) {
1406 napi_create_int32(env, TEST_FAIL, &res);
1407 return res;
1408 }
1409 int32_t durationMs = 10; // 10:value of durationMs
1410 volumeSet = 1.0;
1411 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1412 LOG("OH_AudioRenderer_SetVolumeWithRamp 1.0->1.0 10 result is %{public}d", result);
1413 if (result != AUDIOSTREAM_SUCCESS) {
1414 napi_create_int32(env, TEST_FAIL, &res);
1415 } else {
1416 napi_create_int32(env, TEST_PASS, &res);
1417 }
1418 OH_AudioRenderer_Release(audioRenderer);
1419 OH_AudioStreamBuilder_Destroy(builder);
1420 return res;
1421 }
1422
AudioRendererSetVolumeWithRamp_07(napi_env env,napi_callback_info info)1423 static napi_value AudioRendererSetVolumeWithRamp_07(napi_env env, napi_callback_info info)
1424 {
1425 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1426 OH_AudioRenderer* audioRenderer;
1427 napi_value res;
1428 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1429 if (result != AUDIOSTREAM_SUCCESS) {
1430 napi_create_int32(env, TEST_FAIL, &res);
1431 return res;
1432 }
1433 float volumeSet = 1.0;
1434 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1435 LOG("OH_AudioRenderer_SetVolume 1.0 result is %{public}d", result);
1436 if (result != AUDIOSTREAM_SUCCESS) {
1437 napi_create_int32(env, TEST_FAIL, &res);
1438 return res;
1439 }
1440 int32_t durationMs = 100; // 100:value of durationMs
1441 volumeSet = 1.2; // 1.2:value of volumeSet
1442 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1443 LOG("OH_AudioRenderer_SetVolumeWithRamp 1.0->1.2 100 result is %{public}d", result);
1444 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1445 napi_create_int32(env, TEST_FAIL, &res);
1446 } else {
1447 napi_create_int32(env, TEST_PASS, &res);
1448 }
1449 OH_AudioRenderer_Release(audioRenderer);
1450 OH_AudioStreamBuilder_Destroy(builder);
1451 return res;
1452 }
1453
AudioRendererSetVolumeWithRamp_08(napi_env env,napi_callback_info info)1454 static napi_value AudioRendererSetVolumeWithRamp_08(napi_env env, napi_callback_info info)
1455 {
1456 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1457 OH_AudioRenderer* audioRenderer;
1458 napi_value res;
1459 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1460 if (result != AUDIOSTREAM_SUCCESS) {
1461 napi_create_int32(env, TEST_FAIL, &res);
1462 return res;
1463 }
1464 float volumeSet = 0.0;
1465 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1466 LOG("OH_AudioRenderer_SetVolume 0.0 result is %{public}d", result);
1467 if (result != AUDIOSTREAM_SUCCESS) {
1468 napi_create_int32(env, TEST_FAIL, &res);
1469 return res;
1470 }
1471 int32_t durationMs = 100; // 100:value of durationMs
1472 volumeSet = -0.2; // -0.2:invalid value of volumeSet
1473 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1474 LOG("OH_AudioRenderer_SetVolumeWithRamp 0.0->-0.2 100 result is %{public}d", result);
1475 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1476 napi_create_int32(env, TEST_FAIL, &res);
1477 } else {
1478 napi_create_int32(env, TEST_PASS, &res);
1479 }
1480 OH_AudioRenderer_Release(audioRenderer);
1481 OH_AudioStreamBuilder_Destroy(builder);
1482 return res;
1483 }
1484
AudioRendererSetVolumeWithRamp_09(napi_env env,napi_callback_info info)1485 static napi_value AudioRendererSetVolumeWithRamp_09(napi_env env, napi_callback_info info)
1486 {
1487 OH_AudioRenderer* audioRenderer = nullptr;
1488 float volumeSet = 0.5; // 0.5:value of volumeSet
1489 int32_t durationMs = 10; // 10:value of durationMs
1490 OH_AudioStream_Result result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1491 napi_value res;
1492 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1493 napi_create_int32(env, TEST_FAIL, &res);
1494 } else {
1495 napi_create_int32(env, TEST_PASS, &res);
1496 }
1497 return res;
1498 }
1499
AudioRendererOnMarkReachedCb(OH_AudioRenderer * renderer,uint32_t samplePos,void * userData)1500 static void AudioRendererOnMarkReachedCb(OH_AudioRenderer* renderer, uint32_t samplePos, void* userData)
1501 {
1502 g_flag = true;
1503 LOG("AudioRendererOnMarkReachedCb samplePos: %{public}d \n", samplePos);
1504 }
1505
AudioRendererSetOnMarkReached_01(napi_env env,napi_callback_info info)1506 static napi_value AudioRendererSetOnMarkReached_01(napi_env env, napi_callback_info info)
1507 {
1508 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1509 OH_AudioRenderer *audioRenderer;
1510 napi_value res;
1511 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1512 if (result != AUDIOSTREAM_SUCCESS) {
1513 napi_create_int32(env, TEST_FAIL, &res);
1514 return res;
1515 }
1516 uint32_t samplePos = 1;
1517 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1518 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1519 LOG("OH_Audio_Renderer_SetOnMarkReached_01 result is: %{public}d", result);
1520 if (result != AUDIOSTREAM_SUCCESS) {
1521 napi_create_int32(env, TEST_FAIL, &res);
1522 } else {
1523 napi_create_int32(env, TEST_PASS, &res);
1524 }
1525 OH_AudioRenderer_Release(audioRenderer);
1526 OH_AudioStreamBuilder_Destroy(builder);
1527 return res;
1528 }
1529
AudioRendererSetOnMarkReached_02(napi_env env,napi_callback_info info)1530 static napi_value AudioRendererSetOnMarkReached_02(napi_env env, napi_callback_info info)
1531 {
1532 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1533 OH_AudioRenderer *audioRenderer;
1534 napi_value res;
1535 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1536 if (result != AUDIOSTREAM_SUCCESS) {
1537 napi_create_int32(env, TEST_FAIL, &res);
1538 return res;
1539 }
1540 uint32_t samplePos = 0;
1541 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1542 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1543 LOG("OH_Audio_Renderer_SetOnMarkReached_02 result is: %{public}d", result);
1544 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1545 napi_create_int32(env, TEST_FAIL, &res);
1546 } else {
1547 napi_create_int32(env, TEST_PASS, &res);
1548 }
1549 OH_AudioRenderer_Release(audioRenderer);
1550 OH_AudioStreamBuilder_Destroy(builder);
1551 return res;
1552 }
1553
AudioRendererSetOnMarkReached_03(napi_env env,napi_callback_info info)1554 static napi_value AudioRendererSetOnMarkReached_03(napi_env env, napi_callback_info info)
1555 {
1556 g_flag = false;
1557 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1558 napi_value res;
1559 OH_AudioStreamBuilder_SetSamplingRate(builder, g_samplingRate);
1560 OH_AudioStreamBuilder_SetChannelCount(builder, g_channelCount);
1561 OH_AudioStreamBuilder_SetLatencyMode(builder, (OH_AudioStream_LatencyMode)g_latencyMode);
1562 OH_AudioStreamBuilder_SetSampleFormat(builder, (OH_AudioStream_SampleFormat)g_sampleFormat);
1563 OH_AudioRenderer_Callbacks callbacks;
1564 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
1565 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
1566 if (result != AUDIOSTREAM_SUCCESS) {
1567 napi_create_int32(env, TEST_FAIL, &res);
1568 return res;
1569 }
1570 // set buffer size to g_frameSize
1571 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
1572
1573 OH_AudioRenderer *audioRenderer;
1574 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1575 uint32_t samplePos = 1;
1576 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1577 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1578 LOG("OH_Audio_Renderer_SetOnMarkReached_03 result is: %{public}d", result);
1579 if (result != AUDIOSTREAM_SUCCESS) {
1580 napi_create_int32(env, TEST_FAIL, &res);
1581 return res;
1582 }
1583 const int waitTime = 2;
1584 OH_AudioRenderer_Start(audioRenderer);
1585 sleep(waitTime); // 2:sleep 2 seconds
1586 OH_AudioRenderer_Stop(audioRenderer);
1587 if (!g_flag) {
1588 napi_create_int32(env, TEST_FAIL, &res);
1589 } else {
1590 napi_create_int32(env, TEST_PASS, &res);
1591 }
1592 OH_AudioRenderer_Release(audioRenderer);
1593 OH_AudioStreamBuilder_Destroy(builder);
1594 return res;
1595 }
1596
AudioRendererSetOnMarkReached_04(napi_env env,napi_callback_info info)1597 static napi_value AudioRendererSetOnMarkReached_04(napi_env env, napi_callback_info info)
1598 {
1599 OH_AudioRenderer* audioRenderer = nullptr;
1600 uint32_t samplePos = 1;
1601 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1602 OH_AudioStream_Result result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1603 napi_value res;
1604 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1605 napi_create_int32(env, TEST_FAIL, &res);
1606 } else {
1607 napi_create_int32(env, TEST_PASS, &res);
1608 }
1609 return res;
1610 }
1611
AudioRendererSetOnMarkReached_05(napi_env env,napi_callback_info info)1612 static napi_value AudioRendererSetOnMarkReached_05(napi_env env, napi_callback_info info)
1613 {
1614 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1615 OH_AudioRenderer *audioRenderer;
1616 napi_value res;
1617 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1618 uint32_t samplePos = 4294967295; // 4294967295:uint32_t 2^32 - 1
1619 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1620 OH_AudioStream_Result result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1621 LOG("OH_Audio_Renderer_SetOnMarkReached_05 result is: %{public}d", result);
1622 if (result != AUDIOSTREAM_SUCCESS) {
1623 napi_create_int32(env, TEST_FAIL, &res);
1624 } else {
1625 napi_create_int32(env, TEST_PASS, &res);
1626 }
1627 OH_AudioRenderer_Release(audioRenderer);
1628 OH_AudioStreamBuilder_Destroy(builder);
1629 return res;
1630 }
1631
AudioRendererSetOnMarkReached_06(napi_env env,napi_callback_info info)1632 static napi_value AudioRendererSetOnMarkReached_06(napi_env env, napi_callback_info info)
1633 {
1634 g_flag = false;
1635 g_file = fopen(g_filePath.c_str(), "rb");
1636 if (g_file == nullptr) {
1637 LOG("fopen fail. g_file: %p\n", g_file);
1638 }
1639 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1640 napi_value res;
1641 OH_AudioStreamBuilder_SetSamplingRate(builder, g_samplingRate);
1642 OH_AudioStreamBuilder_SetChannelCount(builder, g_channelCount);
1643 OH_AudioStreamBuilder_SetLatencyMode(builder, (OH_AudioStream_LatencyMode)g_latencyMode);
1644 OH_AudioStreamBuilder_SetSampleFormat(builder, (OH_AudioStream_SampleFormat)g_sampleFormat);
1645 OH_AudioRenderer_Callbacks callbacks;
1646 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnMarkReachedWriteData;
1647 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
1648 if (result != AUDIOSTREAM_SUCCESS) {
1649 napi_create_int32(env, TEST_FAIL, &res);
1650 return res;
1651 }
1652 // set buffer size to g_frameSize
1653 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
1654
1655 OH_AudioRenderer *audioRenderer;
1656 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1657 uint32_t samplePos = 10538568; // 10538568:Test_44100_2.wav The total number of frames in the audio file
1658 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1659 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1660 LOG("OH_Audio_Renderer_SetOnMarkReached_06 result is: %{public}d", result);
1661 if (result != AUDIOSTREAM_SUCCESS) {
1662 napi_create_int32(env, TEST_FAIL, &res);
1663 return res;
1664 }
1665 const int waitTime = 220;
1666 OH_AudioRenderer_Start(audioRenderer);
1667 Delay(waitTime); // 220:Play the entire music
1668 OH_AudioRenderer_Stop(audioRenderer);
1669 if (!g_flag) {
1670 napi_create_int32(env, TEST_FAIL, &res);
1671 } else {
1672 napi_create_int32(env, TEST_PASS, &res);
1673 }
1674 OH_AudioRenderer_Release(audioRenderer);
1675 OH_AudioStreamBuilder_Destroy(builder);
1676 return res;
1677 }
1678
AudioRendererSetOnMarkReached_07(napi_env env,napi_callback_info info)1679 static napi_value AudioRendererSetOnMarkReached_07(napi_env env, napi_callback_info info)
1680 {
1681 g_flag = false;
1682 g_file = fopen(g_filePath.c_str(), "rb");
1683 if (g_file == nullptr) {
1684 LOG("fopen fail. g_file: %p\n", g_file);
1685 }
1686 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1687 napi_value res;
1688 OH_AudioStreamBuilder_SetSamplingRate(builder, g_samplingRate);
1689 OH_AudioStreamBuilder_SetChannelCount(builder, g_channelCount);
1690 OH_AudioStreamBuilder_SetLatencyMode(builder, (OH_AudioStream_LatencyMode)g_latencyMode);
1691 OH_AudioStreamBuilder_SetSampleFormat(builder, (OH_AudioStream_SampleFormat)g_sampleFormat);
1692 OH_AudioRenderer_Callbacks callbacks;
1693 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnMarkReachedWriteData;
1694 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
1695 if (result != AUDIOSTREAM_SUCCESS) {
1696 napi_create_int32(env, TEST_FAIL, &res);
1697 return res;
1698 }
1699 // set buffer size to g_frameSize
1700 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
1701
1702 OH_AudioRenderer *audioRenderer;
1703 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1704 uint32_t samplePos = 10538570; // 10538570:Test_44100_2.wav The total number of frames in the audio file + 2
1705 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1706 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1707 LOG("OH_Audio_Renderer_SetOnMarkReached_07 result is: %{public}d", result);
1708 if (result != AUDIOSTREAM_SUCCESS) {
1709 napi_create_int32(env, TEST_FAIL, &res);
1710 return res;
1711 }
1712 const int waitTime = 10;
1713 OH_AudioRenderer_Start(audioRenderer);
1714 Delay(waitTime); // 10:Play for 10 seconds
1715 OH_AudioRenderer_Stop(audioRenderer);
1716 if (!g_flag) {
1717 napi_create_int32(env, TEST_PASS, &res);
1718 } else {
1719 napi_create_int32(env, TEST_FAIL, &res);
1720 }
1721 OH_AudioRenderer_Release(audioRenderer);
1722 OH_AudioStreamBuilder_Destroy(builder);
1723 return res;
1724 }
1725
AudioRendererSetOnMarkReached_08(napi_env env,napi_callback_info info)1726 static napi_value AudioRendererSetOnMarkReached_08(napi_env env, napi_callback_info info)
1727 {
1728 g_flag = false;
1729 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1730 napi_value res;
1731 OH_AudioStreamBuilder_SetSamplingRate(builder, g_samplingRate);
1732 OH_AudioStreamBuilder_SetChannelCount(builder, g_channelCount);
1733 OH_AudioStreamBuilder_SetLatencyMode(builder, (OH_AudioStream_LatencyMode)g_latencyMode);
1734 OH_AudioStreamBuilder_SetSampleFormat(builder, (OH_AudioStream_SampleFormat)g_sampleFormat);
1735 OH_AudioRenderer_Callbacks callbacks;
1736 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
1737 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
1738 if (result != AUDIOSTREAM_SUCCESS) {
1739 napi_create_int32(env, TEST_FAIL, &res);
1740 return res;
1741 }
1742 // set buffer size to g_frameSize
1743 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
1744
1745 OH_AudioRenderer *audioRenderer;
1746 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1747 uint32_t samplePos = 1;
1748 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1749 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1750 if (result != AUDIOSTREAM_SUCCESS) {
1751 napi_create_int32(env, TEST_FAIL, &res);
1752 return res;
1753 }
1754 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1755 if (result != AUDIOSTREAM_SUCCESS) {
1756 napi_create_int32(env, TEST_FAIL, &res);
1757 return res;
1758 }
1759 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1760 LOG("OH_Audio_Renderer_SetOnMarkReached_08 result is: %{public}d", result);
1761 if (result != AUDIOSTREAM_SUCCESS) {
1762 napi_create_int32(env, TEST_FAIL, &res);
1763 return res;
1764 }
1765 LOG("audioRendererSetOnMarkReached_08 result = AUDIOSTREAM_SUCCESS");
1766 int waitTime = 10;
1767 OH_AudioRenderer_Start(audioRenderer);
1768 LOG("audioRendererSetOnMarkReached_08 OH_AudioRenderer_Start SUCCESS");
1769 Delay(waitTime);
1770 OH_AudioRenderer_Stop(audioRenderer);
1771 LOG("audioRendererSetOnMarkReached_08 OH_AudioRenderer_Stop SUCCESS");
1772 if (!g_flag) {
1773 napi_create_int32(env, TEST_FAIL, &res);
1774 } else {
1775 napi_create_int32(env, TEST_PASS, &res);
1776 }
1777 OH_AudioRenderer_Release(audioRenderer);
1778 LOG("audioRendererSetOnMarkReached_08 OH_AudioRenderer_Release SUCCESS");
1779 OH_AudioStreamBuilder_Destroy(builder);
1780 LOG("audioRendererSetOnMarkReached_08 OH_AudioStreamBuilder_Destroy SUCCESS");
1781 return res;
1782 }
1783
AudioRendererCancelMark_01(napi_env env,napi_callback_info info)1784 static napi_value AudioRendererCancelMark_01(napi_env env, napi_callback_info info)
1785 {
1786 g_flag = false;
1787 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1788 napi_value res;
1789 OH_AudioStreamBuilder_SetSamplingRate(builder, g_samplingRate);
1790 OH_AudioStreamBuilder_SetChannelCount(builder, g_channelCount);
1791 OH_AudioStreamBuilder_SetLatencyMode(builder, (OH_AudioStream_LatencyMode)g_latencyMode);
1792 OH_AudioStreamBuilder_SetSampleFormat(builder, (OH_AudioStream_SampleFormat)g_sampleFormat);
1793 OH_AudioRenderer_Callbacks callbacks;
1794 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
1795 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
1796 if (result != AUDIOSTREAM_SUCCESS) {
1797 napi_create_int32(env, TEST_FAIL, &res);
1798 return res;
1799 }
1800 // set buffer size to g_frameSize
1801 result = OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
1802 if (result != AUDIOSTREAM_SUCCESS) {
1803 napi_create_int32(env, TEST_FAIL, &res);
1804 return res;
1805 }
1806
1807 OH_AudioRenderer *audioRenderer;
1808 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1809 uint32_t samplePos = 1;
1810 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1811 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1812 LOG("OH_Audio_Renderer_SetOnMarkReached_03 result is: %{public}d", result);
1813 if (result != AUDIOSTREAM_SUCCESS) {
1814 napi_create_int32(env, TEST_FAIL, &res);
1815 return res;
1816 }
1817 result = OH_AudioRenderer_Start(audioRenderer);
1818 if (result != AUDIOSTREAM_SUCCESS) {
1819 napi_create_int32(env, TEST_FAIL, &res);
1820 return res;
1821 }
1822 const int waitTime = 2;
1823 sleep(waitTime); // 2:sleep 2 seconds
1824 // CancelMark
1825 result = OH_AudioRenderer_CancelMark(audioRenderer);
1826 LOG("OH_AudioRenderer_CancelMark result is %{public}d", result);
1827 if (result != AUDIOSTREAM_SUCCESS) {
1828 napi_create_int32(env, TEST_FAIL, &res);
1829 return res;
1830 }
1831 OH_AudioRenderer_Stop(audioRenderer);
1832 if (!g_flag) {
1833 napi_create_int32(env, TEST_FAIL, &res);
1834 } else {
1835 napi_create_int32(env, TEST_PASS, &res);
1836 }
1837 OH_AudioRenderer_Release(audioRenderer);
1838 OH_AudioStreamBuilder_Destroy(builder);
1839 return res;
1840 }
1841
AudioRendererCancelMark_02(napi_env env,napi_callback_info info)1842 static napi_value AudioRendererCancelMark_02(napi_env env, napi_callback_info info)
1843 {
1844 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1845 OH_AudioRenderer* audioRenderer;
1846 napi_value res;
1847 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1848 if (result != AUDIOSTREAM_SUCCESS) {
1849 napi_create_int32(env, TEST_FAIL, &res);
1850 return res;
1851 }
1852 result = OH_AudioRenderer_CancelMark(audioRenderer);
1853 LOG("OH_AudioRenderer_CancelMark result is %{public}d", result);
1854 OH_AudioRenderer_Release(audioRenderer);
1855 OH_AudioStreamBuilder_Destroy(builder);
1856 if (result != AUDIOSTREAM_SUCCESS) {
1857 napi_create_int32(env, TEST_FAIL, &res);
1858 } else {
1859 napi_create_int32(env, TEST_PASS, &res);
1860 }
1861 return res;
1862 }
1863
AudioRendererCancelMark_03(napi_env env,napi_callback_info info)1864 static napi_value AudioRendererCancelMark_03(napi_env env, napi_callback_info info)
1865 {
1866 OH_AudioRenderer* audioRenderer = nullptr;
1867 OH_AudioStream_Result result = OH_AudioRenderer_CancelMark(audioRenderer);
1868 napi_value res;
1869 LOG("OH_AudioRenderer_CancelMark result is %{public}d", result);
1870 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1871 napi_create_int32(env, TEST_FAIL, &res);
1872 } else {
1873 napi_create_int32(env, TEST_PASS, &res);
1874 }
1875 return res;
1876 }
1877
AudioRendererInterruptEvent(OH_AudioRenderer * renderer,void * userData,OH_AudioInterrupt_ForceType type,OH_AudioInterrupt_Hint hint)1878 static int32_t AudioRendererInterruptEvent(OH_AudioRenderer* renderer,
1879 void* userData,
1880 OH_AudioInterrupt_ForceType type,
1881 OH_AudioInterrupt_Hint hint)
1882 {
1883 g_mark = true;
1884 LOG("AudioRendererInterruptEvent type = %{public}d, hint = %{public}d\n", type, hint);
1885 return 0;
1886 }
1887
AudioRendererSetInterruptMode_01(napi_env env,napi_callback_info info)1888 static napi_value AudioRendererSetInterruptMode_01(napi_env env, napi_callback_info info)
1889 {
1890 g_mark = false;
1891 napi_value res;
1892 // 1. create builder
1893 OH_AudioStreamBuilder* builder1;
1894 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
1895 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
1896 OH_AudioStreamBuilder_Create(&builder1, type);
1897
1898 OH_AudioStreamBuilder* builder2;
1899 OH_AudioStreamBuilder_Create(&builder2, type);
1900
1901 // 2. set builder1 builder2 params
1902 OH_AudioStreamBuilder_SetRendererInfo(builder1, usage);
1903 OH_AudioRenderer_Callbacks callbacks;
1904 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
1905 callbacks.OH_AudioRenderer_OnInterruptEvent = AudioRendererInterruptEvent;
1906 OH_AudioStreamBuilder_SetRendererCallback(builder1, callbacks, nullptr);
1907 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder1, g_frameSize);
1908
1909 usage = AUDIOSTREAM_USAGE_MOVIE;
1910 OH_AudioStreamBuilder_SetRendererInfo(builder2, usage);
1911 OH_AudioStreamBuilder_SetRendererCallback(builder2, callbacks, nullptr);
1912 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder2, g_frameSize);
1913
1914 OH_AudioInterrupt_Mode mode = AUDIOSTREAM_INTERRUPT_MODE_SHARE;
1915 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder1, mode);
1916 LOG("OH_AudioStreamBuilder_SetRendererInterruptMode builder1 result is %{public}d", result);
1917 if (result != AUDIOSTREAM_SUCCESS) {
1918 napi_create_int32(env, TEST_FAIL, &res);
1919 return res;
1920 }
1921 result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder2, mode);
1922 LOG("OH_AudioStreamBuilder_SetRendererInterruptMode builder2 result is %{public}d", result);
1923 if (result != AUDIOSTREAM_SUCCESS) {
1924 napi_create_int32(env, TEST_FAIL, &res);
1925 return res;
1926 }
1927
1928 // 3. create audioRenderer1 audioRenderer2
1929 OH_AudioRenderer* audioRenderer1;
1930 result = OH_AudioStreamBuilder_GenerateRenderer(builder1, &audioRenderer1);
1931 if (result != AUDIOSTREAM_SUCCESS) {
1932 napi_create_int32(env, TEST_FAIL, &res);
1933 return res;
1934 }
1935
1936 OH_AudioRenderer* audioRenderer2;
1937 result = OH_AudioStreamBuilder_GenerateRenderer(builder2, &audioRenderer2);
1938 if (result != AUDIOSTREAM_SUCCESS) {
1939 napi_create_int32(env, TEST_FAIL, &res);
1940 return res;
1941 }
1942
1943 // 4. start
1944 result = OH_AudioRenderer_Start(audioRenderer1);
1945 if (result != AUDIOSTREAM_SUCCESS) {
1946 napi_create_int32(env, TEST_FAIL, &res);
1947 return res;
1948 }
1949 const int waitTime = 1;
1950 Delay(waitTime);
1951 result = OH_AudioRenderer_Start(audioRenderer2);
1952 if (result != AUDIOSTREAM_SUCCESS) {
1953 napi_create_int32(env, TEST_FAIL, &res);
1954 } else {
1955 napi_create_int32(env, TEST_PASS, &res);
1956 }
1957
1958 // 5. stop and release client
1959 OH_AudioRenderer_Stop(audioRenderer2);
1960 OH_AudioRenderer_Release(audioRenderer2);
1961 OH_AudioRenderer_Stop(audioRenderer1);
1962 OH_AudioRenderer_Release(audioRenderer1);
1963 OH_AudioStreamBuilder_Destroy(builder2);
1964 OH_AudioStreamBuilder_Destroy(builder1);
1965 return res;
1966 }
1967
AudioRendererSetInterruptMode_02(napi_env env,napi_callback_info info)1968 static napi_value AudioRendererSetInterruptMode_02(napi_env env, napi_callback_info info)
1969 {
1970 g_mark = false;
1971 napi_value res;
1972 // 1. create builder
1973 OH_AudioStreamBuilder* builder;
1974 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
1975 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
1976 OH_AudioStreamBuilder_Create(&builder, type);
1977
1978 OH_AudioStreamBuilder* builder2;
1979 OH_AudioStreamBuilder_Create(&builder2, type);
1980
1981 // 2. set builder params
1982 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
1983 OH_AudioRenderer_Callbacks callbacks;
1984 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
1985 callbacks.OH_AudioRenderer_OnInterruptEvent = AudioRendererInterruptEvent;
1986 OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
1987 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
1988
1989 usage = AUDIOSTREAM_USAGE_VOICE_MESSAGE;
1990 OH_AudioStreamBuilder_SetRendererInfo(builder2, usage);
1991 OH_AudioStreamBuilder_SetRendererCallback(builder2, callbacks, nullptr);
1992 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder2, g_frameSize);
1993
1994 OH_AudioInterrupt_Mode mode = AUDIOSTREAM_INTERRUPT_MODE_INDEPENDENT;
1995 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder, mode);
1996 LOG("OH_AudioStreamBuilder_SetRendererInterruptMode builder1 result is %{public}d", result);
1997 if (result != AUDIOSTREAM_SUCCESS) {
1998 napi_create_int32(env, TEST_FAIL, &res);
1999 return res;
2000 }
2001 result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder2, mode);
2002 LOG("OH_AudioStreamBuilder_SetRendererInterruptMode builder2 result is %{public}d", result);
2003 if (result != AUDIOSTREAM_SUCCESS) {
2004 napi_create_int32(env, TEST_FAIL, &res);
2005 return res;
2006 }
2007 LOG("AudioRendererSetInterruptMode_02 result == AUDIOSTREAM_SUCCESS");
2008 // 3. create audioRenderer1 audioRenderer2
2009 OH_AudioRenderer* audioRenderer1;
2010 result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer1);
2011 if (result != AUDIOSTREAM_SUCCESS) {
2012 napi_create_int32(env, TEST_FAIL, &res);
2013 return res;
2014 }
2015 LOG("AudioRendererSetInterruptMode_02 after audioRenderer1 OH_AudioStreamBuilder_GenerateRenderer");
2016 OH_AudioRenderer* audioRenderer2;
2017 result = OH_AudioStreamBuilder_GenerateRenderer(builder2, &audioRenderer2);
2018 if (result != AUDIOSTREAM_SUCCESS) {
2019 napi_create_int32(env, TEST_FAIL, &res);
2020 return res;
2021 }
2022 LOG("AudioRendererSetInterruptMode_02 after audioRenderer2 OH_AudioStreamBuilder_GenerateRenderer");
2023 // 4. start
2024 result = OH_AudioRenderer_Start(audioRenderer1);
2025 if (result != AUDIOSTREAM_SUCCESS) {
2026 napi_create_int32(env, TEST_FAIL, &res);
2027 return res;
2028 }
2029 LOG("AudioRendererSetInterruptMode_02 after audioRenderer1 OH_AudioRenderer_Start");
2030 const int waitTime = 1;
2031 sleep(waitTime);
2032 result = OH_AudioRenderer_Start(audioRenderer2);
2033 if (result != AUDIOSTREAM_SUCCESS) {
2034 napi_create_int32(env, TEST_FAIL, &res);
2035 return res;
2036 }
2037 LOG("AudioRendererSetInterruptMode_02 after audioRenderer2 OH_AudioRenderer_Start");
2038 sleep(waitTime); // 2:sleep 2 seconds
2039
2040 if (!g_mark) {
2041 napi_create_int32(env, TEST_FAIL, &res);
2042 } else {
2043 napi_create_int32(env, TEST_PASS, &res);
2044 }
2045 if (g_mark) {
2046 LOG("AudioRendererSetInterruptMode_02 g_mark is : %{public}d", 1);
2047 } else {
2048 LOG("AudioRendererSetInterruptMode_02 g_mark is : %{public}d", 0);
2049 }
2050 // 5. stop and release client
2051 OH_AudioRenderer_Stop(audioRenderer2);
2052 OH_AudioRenderer_Release(audioRenderer2);
2053 OH_AudioRenderer_Stop(audioRenderer1);
2054 OH_AudioRenderer_Release(audioRenderer1);
2055 OH_AudioStreamBuilder_Destroy(builder);
2056 OH_AudioStreamBuilder_Destroy(builder2);
2057 LOG("AudioRendererSetInterruptMode_02 res is: %{public}d", res);
2058 return res;
2059 }
2060
AudioRendererSetInterruptMode_03(napi_env env,napi_callback_info info)2061 static napi_value AudioRendererSetInterruptMode_03(napi_env env, napi_callback_info info)
2062 {
2063 napi_value res;
2064 OH_AudioStreamBuilder* builder = nullptr;
2065 OH_AudioInterrupt_Mode mode = AUDIOSTREAM_INTERRUPT_MODE_SHARE;
2066 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder, mode);
2067 LOG("OH_AudioRenderer_SetInterruptMode_03, result is: %{public}d", result);
2068 OH_AudioStreamBuilder_Destroy(builder);
2069 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
2070 napi_create_int32(env, TEST_FAIL, &res);
2071 } else {
2072 napi_create_int32(env, TEST_PASS, &res);
2073 }
2074 return res;
2075 }
2076
AudioRendererSetInterruptMode_04(napi_env env,napi_callback_info info)2077 static napi_value AudioRendererSetInterruptMode_04(napi_env env, napi_callback_info info)
2078 {
2079 napi_value res;
2080 OH_AudioStreamBuilder* builder = nullptr;
2081 OH_AudioInterrupt_Mode mode = static_cast<OH_AudioInterrupt_Mode>(-2);
2082 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder, mode);
2083 LOG("OH_AudioRenderer_SetInterruptMode_04, result is: %{public}d", result);
2084 OH_AudioStreamBuilder_Destroy(builder);
2085 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
2086 napi_create_int32(env, TEST_FAIL, &res);
2087 } else {
2088 napi_create_int32(env, TEST_PASS, &res);
2089 }
2090 return res;
2091 }
2092
DeviceChangeCallback(OH_AudioDevice_ChangeType type,OH_AudioDeviceDescriptorArray * audioDeviceDescriptorArray)2093 static int32_t DeviceChangeCallback(OH_AudioDevice_ChangeType type,
2094 OH_AudioDeviceDescriptorArray *audioDeviceDescriptorArray)
2095 {
2096 LOG("DeviceChangeCallback triggrred, ChangeType: %{public}d\n", type);
2097 if (type == AUDIO_DEVICE_CHANGE_TYPE_CONNECT) {
2098 int size = audioDeviceDescriptorArray->size;
2099 for (int index = 0; index < size; index++) {
2100 OH_AudioDeviceDescriptor *audioDeviceDescriptor = audioDeviceDescriptorArray->descriptors[index];
2101 if (audioDeviceDescriptor) {
2102 OH_AudioDevice_Role deviceRole = AUDIO_DEVICE_ROLE_OUTPUT;
2103 OH_AudioDeviceDescriptor_GetDeviceRole(audioDeviceDescriptor, &deviceRole);
2104 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_INVALID;
2105 OH_AudioDeviceDescriptor_GetDeviceType(audioDeviceDescriptor, &deviceType);
2106 LOG("Receive new device: DeviceRole: %{public}d, DeviceType: %{public}d\n", deviceRole, deviceType);
2107 }
2108 }
2109 }
2110 return 0;
2111 }
2112
AudioManagerGetAudioRoutingManager_01(napi_env env,napi_callback_info info)2113 static napi_value AudioManagerGetAudioRoutingManager_01(napi_env env, napi_callback_info info)
2114 {
2115 napi_value res;
2116 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2117 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2118 LOG("AudioManagerGetAudioRoutingManager_01, result is: %{public}d", result);
2119 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2120 napi_create_int32(env, TEST_FAIL, &res);
2121 } else {
2122 napi_create_int32(env, TEST_PASS, &res);
2123 }
2124 return res;
2125 }
2126
AudioRoutingManagerGetDevices_01(napi_env env,napi_callback_info info)2127 static napi_value AudioRoutingManagerGetDevices_01(napi_env env, napi_callback_info info)
2128 {
2129 napi_value res;
2130 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2131 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2132 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2133 napi_create_int32(env, TEST_FAIL, &res);
2134 return res;
2135 }
2136 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_NONE;
2137 OH_AudioDeviceDescriptorArray *array = nullptr;
2138 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2139 LOG("AudioRoutingManagerGetDevices_01, result is: %{public}d", result);
2140 if (result != AUDIOCOMMON_RESULT_ERROR_NO_MEMORY || array != nullptr) {
2141 napi_create_int32(env, TEST_FAIL, &res);
2142 } else {
2143 napi_create_int32(env, TEST_PASS, &res);
2144 }
2145 return res;
2146 }
2147
AudioRoutingManagerGetDevices_02(napi_env env,napi_callback_info info)2148 static napi_value AudioRoutingManagerGetDevices_02(napi_env env, napi_callback_info info)
2149 {
2150 napi_value res;
2151 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2152 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2153 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2154 napi_create_int32(env, TEST_FAIL, &res);
2155 return res;
2156 }
2157 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
2158 OH_AudioDeviceDescriptorArray *array = nullptr;
2159 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2160 LOG("AudioRoutingManagerGetDevices_02, result is: %{public}d", result);
2161 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
2162 napi_create_int32(env, TEST_FAIL, &res);
2163 } else {
2164 napi_create_int32(env, TEST_PASS, &res);
2165 }
2166 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2167 return res;
2168 }
2169
AudioRoutingManagerGetDevices_03(napi_env env,napi_callback_info info)2170 static napi_value AudioRoutingManagerGetDevices_03(napi_env env, napi_callback_info info)
2171 {
2172 napi_value res;
2173 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2174 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2175 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2176 napi_create_int32(env, TEST_FAIL, &res);
2177 return res;
2178 }
2179 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_INPUT;
2180 OH_AudioDeviceDescriptorArray *array = nullptr;
2181 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2182 LOG("AudioRoutingManagerGetDevices_03, result is: %{public}d", result);
2183 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
2184 napi_create_int32(env, TEST_FAIL, &res);
2185 } else {
2186 napi_create_int32(env, TEST_PASS, &res);
2187 }
2188 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2189 return res;
2190 }
2191
AudioRoutingManagerGetDevices_04(napi_env env,napi_callback_info info)2192 static napi_value AudioRoutingManagerGetDevices_04(napi_env env, napi_callback_info info)
2193 {
2194 napi_value res;
2195 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2196 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2197 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2198 napi_create_int32(env, TEST_FAIL, &res);
2199 return res;
2200 }
2201 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
2202 OH_AudioDeviceDescriptorArray *array = nullptr;
2203 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2204 LOG("AudioRoutingManagerGetDevices_04, result is: %{public}d", result);
2205 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
2206 napi_create_int32(env, TEST_FAIL, &res);
2207 } else {
2208 napi_create_int32(env, TEST_PASS, &res);
2209 }
2210 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2211 return res;
2212 }
2213
AudioRoutingManagerGetDevices_05(napi_env env,napi_callback_info info)2214 static napi_value AudioRoutingManagerGetDevices_05(napi_env env, napi_callback_info info)
2215 {
2216 napi_value res;
2217 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2218 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2219 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2220 napi_create_int32(env, TEST_FAIL, &res);
2221 return res;
2222 }
2223 int32_t flag = -1;
2224 OH_AudioDevice_Flag deviceFlag = (OH_AudioDevice_Flag)flag;
2225 OH_AudioDeviceDescriptorArray *array = nullptr;
2226 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2227 LOG("AudioRoutingManagerGetDevices_05, result is: %{public}d", result);
2228 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM || array != nullptr) {
2229 napi_create_int32(env, TEST_FAIL, &res);
2230 } else {
2231 napi_create_int32(env, TEST_PASS, &res);
2232 }
2233 return res;
2234 }
2235
AudioRoutingManagerGetDevices_06(napi_env env,napi_callback_info info)2236 static napi_value AudioRoutingManagerGetDevices_06(napi_env env, napi_callback_info info)
2237 {
2238 napi_value res;
2239 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2240 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
2241 OH_AudioDeviceDescriptorArray *array = nullptr;
2242 OH_AudioCommon_Result result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2243 LOG("AudioRoutingManagerGetDevices_06, result is: %{public}d", result);
2244 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM || array != nullptr) {
2245 napi_create_int32(env, TEST_FAIL, &res);
2246 } else {
2247 napi_create_int32(env, TEST_PASS, &res);
2248 }
2249 return res;
2250 }
2251
AudioRoutingManagerGetDevices_07(napi_env env,napi_callback_info info)2252 static napi_value AudioRoutingManagerGetDevices_07(napi_env env, napi_callback_info info)
2253 {
2254 napi_value res;
2255 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2256 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2257 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2258 napi_create_int32(env, TEST_FAIL, &res);
2259 return res;
2260 }
2261 int32_t flag = 4;
2262 OH_AudioDevice_Flag deviceFlag = (OH_AudioDevice_Flag)flag;
2263 OH_AudioDeviceDescriptorArray *array = nullptr;
2264 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2265 LOG("AudioRoutingManagerGetDevices_07, result is: %{public}d", result);
2266 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM || array != nullptr) {
2267 napi_create_int32(env, TEST_FAIL, &res);
2268 } else {
2269 napi_create_int32(env, TEST_PASS, &res);
2270 }
2271 return res;
2272 }
2273
AudioManagerGetManager_01(napi_env env,napi_callback_info info)2274 static napi_value AudioManagerGetManager_01(napi_env env, napi_callback_info info)
2275 {
2276 napi_value res;
2277 OH_AudioManager **audioManager = nullptr;
2278 OH_AudioCommon_Result result = OH_GetAudioManager(audioManager);
2279 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2280 napi_create_int32(env, TEST_FAIL, &res);
2281 return res;
2282 }
2283 napi_create_int32(env, TEST_PASS, &res);
2284 return res;
2285 }
2286
AudioManagerGetManager_02(napi_env env,napi_callback_info info)2287 static napi_value AudioManagerGetManager_02(napi_env env, napi_callback_info info)
2288 {
2289 napi_value res;
2290 OH_AudioManager *audioManager = nullptr;
2291 OH_AudioCommon_Result result = OH_GetAudioManager(&audioManager);
2292 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioManager == nullptr) {
2293 napi_create_int32(env, TEST_FAIL, &res);
2294 return res;
2295 }
2296 napi_create_int32(env, TEST_PASS, &res);
2297 return res;
2298 }
2299
AudioManagerGetAudioScene_01(napi_env env,napi_callback_info info)2300 static napi_value AudioManagerGetAudioScene_01(napi_env env, napi_callback_info info)
2301 {
2302 napi_value res;
2303 OH_AudioManager *audioManager = nullptr;
2304 OH_AudioCommon_Result result = OH_GetAudioManager(&audioManager);
2305 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioManager == nullptr) {
2306 napi_create_int32(env, TEST_FAIL, &res);
2307 return res;
2308 }
2309 OH_AudioScene scene = AUDIO_SCENE_DEFAULT;
2310 result = OH_GetAudioScene(audioManager, &scene);
2311 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2312 napi_create_int32(env, TEST_FAIL, &res);
2313 return res;
2314 }
2315 napi_create_int32(env, TEST_PASS, &res);
2316 return res;
2317 }
2318
AudioManagerGetAudioScene_02(napi_env env,napi_callback_info info)2319 static napi_value AudioManagerGetAudioScene_02(napi_env env, napi_callback_info info)
2320 {
2321 napi_value res;
2322
2323 OH_AudioScene scene = AUDIO_SCENE_DEFAULT;
2324 OH_AudioCommon_Result result = OH_GetAudioScene(nullptr, &scene);
2325 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2326 napi_create_int32(env, TEST_FAIL, &res);
2327 return res;
2328 }
2329
2330 result = OH_GetAudioScene(nullptr, nullptr);
2331 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2332 napi_create_int32(env, TEST_FAIL, &res);
2333 return res;
2334 }
2335
2336 OH_AudioManager *audioManager = nullptr;
2337 result = OH_GetAudioManager(&audioManager);
2338 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioManager == nullptr) {
2339 napi_create_int32(env, TEST_FAIL, &res);
2340 return res;
2341 }
2342
2343 result = OH_GetAudioScene(audioManager, nullptr);
2344 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2345 napi_create_int32(env, TEST_FAIL, &res);
2346 return res;
2347 }
2348
2349 napi_create_int32(env, TEST_PASS, &res);
2350 return res;
2351 }
2352
AudioRoutingManagerGetAvailableDevices001(napi_env env,napi_callback_info info)2353 static napi_value AudioRoutingManagerGetAvailableDevices001(napi_env env, napi_callback_info info)
2354 {
2355 napi_value res;
2356 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2357 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2358 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2359 napi_create_int32(env, TEST_FAIL, &res);
2360 return res;
2361 }
2362 OH_AudioDevice_Usage deviceUsage = AUDIO_DEVICE_USAGE_MEDIA_OUTPUT;
2363 OH_AudioDeviceDescriptorArray *array;
2364 result = OH_AudioRoutingManager_GetAvailableDevices(audioRoutingManager, deviceUsage, &array);
2365 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2366 napi_create_int32(env, TEST_FAIL, &res);
2367 return res;
2368 }
2369
2370 result = OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2371 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2372 napi_create_int32(env, TEST_FAIL, &res);
2373 return res;
2374 }
2375 napi_create_int32(env, TEST_PASS, &res);
2376 return res;
2377 }
2378
AudioRoutingManagerGetPreferredOutputDevice001(napi_env env,napi_callback_info info)2379 static napi_value AudioRoutingManagerGetPreferredOutputDevice001(napi_env env, napi_callback_info info)
2380 {
2381 napi_value res;
2382 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2383 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2384 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2385 napi_create_int32(env, TEST_FAIL, &res);
2386 return res;
2387 }
2388 OH_AudioStream_Usage streamUsage = AUDIOSTREAM_USAGE_MUSIC;
2389 OH_AudioDeviceDescriptorArray *array;
2390 result = OH_AudioRoutingManager_GetPreferredOutputDevice(audioRoutingManager, streamUsage, &array);
2391 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2392 napi_create_int32(env, TEST_FAIL, &res);
2393 return res;
2394 }
2395
2396 result = OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2397 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2398 napi_create_int32(env, TEST_FAIL, &res);
2399 return res;
2400 }
2401 napi_create_int32(env, TEST_PASS, &res);
2402 return res;
2403 }
2404
AudioRoutingManagerGetPreferredInputDevice001(napi_env env,napi_callback_info info)2405 static napi_value AudioRoutingManagerGetPreferredInputDevice001(napi_env env, napi_callback_info info)
2406 {
2407 napi_value res;
2408 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2409 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2410 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2411 napi_create_int32(env, TEST_FAIL, &res);
2412 return res;
2413 }
2414 OH_AudioStream_SourceType sourceType = AUDIOSTREAM_SOURCE_TYPE_MIC;
2415 OH_AudioDeviceDescriptorArray *array;
2416 result = OH_AudioRoutingManager_GetPreferredInputDevice(audioRoutingManager, sourceType, &array);
2417 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2418 napi_create_int32(env, TEST_FAIL, &res);
2419 return res;
2420 }
2421
2422 result = OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2423 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2424 napi_create_int32(env, TEST_FAIL, &res);
2425 return res;
2426 }
2427 napi_create_int32(env, TEST_PASS, &res);
2428 return res;
2429 }
2430
AudioRoutingManagerSetMicBlockStatusCallback_001(napi_env env,napi_callback_info info)2431 static napi_value AudioRoutingManagerSetMicBlockStatusCallback_001(napi_env env, napi_callback_info info)
2432 {
2433 napi_value res;
2434 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2435 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2436 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result1 is: %{public}d", result);
2437 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2438 napi_create_int32(env, TEST_FAIL, &res);
2439 return res;
2440 }
2441 bool supported = false;
2442 void *userData = nullptr;
2443 result = OH_AudioRoutingManager_IsMicBlockDetectionSupported(audioRoutingManager, &supported);
2444 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result2 is: %{public}d", result);
2445 if (result == AUDIOCOMMON_RESULT_SUCCESS) {
2446 if (supported == true) {
2447 OH_AudioRoutingManager_OnDeviceBlockStatusCallback micBlockedCallback = MicBlockedCallback;
2448 result = OH_AudioRoutingManager_SetMicBlockStatusCallback(audioRoutingManager, micBlockedCallback, userData);
2449 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result3 is: %{public}d", result);
2450 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2451 napi_create_int32(env, TEST_FAIL, &res);
2452 return res;
2453 }
2454 } else {
2455 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result3 is: false");
2456 }
2457 } else {
2458 napi_create_int32(env, TEST_FAIL, &res);
2459 return res;
2460 }
2461 napi_create_int32(env, TEST_PASS, &res);
2462 return res;
2463 }
2464
AudioRoutingManagerSetMicBlockStatusCallback_002(napi_env env,napi_callback_info info)2465 static napi_value AudioRoutingManagerSetMicBlockStatusCallback_002(napi_env env, napi_callback_info info)
2466 {
2467 napi_value res;
2468 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2469 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2470 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result1 is: %{public}d", result);
2471 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2472 napi_create_int32(env, TEST_FAIL, &res);
2473 return res;
2474 }
2475 bool supported = false;
2476 void *userData = nullptr;
2477 result = OH_AudioRoutingManager_IsMicBlockDetectionSupported(audioRoutingManager, &supported);
2478 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result2 is: %{public}d", result);
2479 if (result == AUDIOCOMMON_RESULT_SUCCESS) {
2480 if (supported == true) {
2481 OH_AudioRoutingManager_OnDeviceBlockStatusCallback micBlockedCallback = MicBlockedCallback;
2482 result = OH_AudioRoutingManager_SetMicBlockStatusCallback(nullptr, micBlockedCallback, userData);
2483 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result3 is: %{public}d", result);
2484 if (result == AUDIOCOMMON_RESULT_SUCCESS) {
2485 napi_create_int32(env, TEST_FAIL, &res);
2486 return res;
2487 }
2488 } else {
2489 LOG("OH_AudioRoutingManager_IsMicBlockDetectionSupported_Test, supported is: false");
2490 }
2491 } else {
2492 napi_create_int32(env, TEST_FAIL, &res);
2493 return res;
2494 }
2495 napi_create_int32(env, TEST_PASS, &res);
2496 return res;
2497 }
2498
AudioRoutingManagerRegisterDeviceChangeCallback_001(napi_env env,napi_callback_info info)2499 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_001(napi_env env, napi_callback_info info)
2500 {
2501 napi_value res;
2502 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2503 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2504 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2505 napi_create_int32(env, TEST_FAIL, &res);
2506 return res;
2507 }
2508 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_NONE;
2509 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2510 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2511 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_001, result is: %{public}d", result);
2512 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2513 napi_create_int32(env, TEST_FAIL, &res);
2514 } else {
2515 napi_create_int32(env, TEST_PASS, &res);
2516 }
2517 return res;
2518 }
2519
AudioRoutingManagerRegisterDeviceChangeCallback_002(napi_env env,napi_callback_info info)2520 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_002(napi_env env, napi_callback_info info)
2521 {
2522 napi_value res;
2523 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2524 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2525 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2526 napi_create_int32(env, TEST_FAIL, &res);
2527 return res;
2528 }
2529 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
2530 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2531 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2532 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_002, result is: %{public}d", result);
2533 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2534 napi_create_int32(env, TEST_FAIL, &res);
2535 } else {
2536 napi_create_int32(env, TEST_PASS, &res);
2537 }
2538 return res;
2539 }
2540
AudioRoutingManagerRegisterDeviceChangeCallback_003(napi_env env,napi_callback_info info)2541 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_003(napi_env env, napi_callback_info info)
2542 {
2543 napi_value res;
2544 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2545 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2546 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2547 napi_create_int32(env, TEST_FAIL, &res);
2548 return res;
2549 }
2550 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_INPUT;
2551 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2552 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2553 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_003, result is: %{public}d", result);
2554 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2555 napi_create_int32(env, TEST_FAIL, &res);
2556 } else {
2557 napi_create_int32(env, TEST_PASS, &res);
2558 }
2559 return res;
2560 }
2561
AudioRoutingManagerRegisterDeviceChangeCallback_004(napi_env env,napi_callback_info info)2562 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_004(napi_env env, napi_callback_info info)
2563 {
2564 napi_value res;
2565 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2566 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2567 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2568 napi_create_int32(env, TEST_FAIL, &res);
2569 return res;
2570 }
2571 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
2572 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2573 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2574 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_004, result is: %{public}d", result);
2575 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2576 napi_create_int32(env, TEST_FAIL, &res);
2577 } else {
2578 napi_create_int32(env, TEST_PASS, &res);
2579 }
2580 return res;
2581 }
2582
AudioRoutingManagerRegisterDeviceChangeCallback_005(napi_env env,napi_callback_info info)2583 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_005(napi_env env, napi_callback_info info)
2584 {
2585 napi_value res;
2586 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2587 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
2588 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2589 OH_AudioCommon_Result result =
2590 OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2591 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_005, result is: %{public}d", result);
2592 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2593 napi_create_int32(env, TEST_FAIL, &res);
2594 } else {
2595 napi_create_int32(env, TEST_PASS, &res);
2596 }
2597 return res;
2598 }
2599
AudioRoutingManagerRegisterDeviceChangeCallback_006(napi_env env,napi_callback_info info)2600 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_006(napi_env env, napi_callback_info info)
2601 {
2602 napi_value res;
2603 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2604 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2605 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2606 napi_create_int32(env, TEST_FAIL, &res);
2607 return res;
2608 }
2609 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
2610 OH_AudioRoutingManager_OnDeviceChangedCallback callback = nullptr;
2611 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2612 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_006, result is: %{public}d", result);
2613 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2614 napi_create_int32(env, TEST_FAIL, &res);
2615 } else {
2616 napi_create_int32(env, TEST_PASS, &res);
2617 }
2618 return res;
2619 }
2620
AudioRoutingManagerRegisterDeviceChangeCallback_007(napi_env env,napi_callback_info info)2621 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_007(napi_env env, napi_callback_info info)
2622 {
2623 napi_value res;
2624 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2625 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2626 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2627 napi_create_int32(env, TEST_FAIL, &res);
2628 return res;
2629 }
2630 int32_t flag = -1;
2631 OH_AudioDevice_Flag deviceFlag = (OH_AudioDevice_Flag)flag;
2632 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2633 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2634 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_007, result is: %{public}d", result);
2635 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2636 napi_create_int32(env, TEST_FAIL, &res);
2637 } else {
2638 napi_create_int32(env, TEST_PASS, &res);
2639 }
2640 return res;
2641 }
2642
AudioRoutingManagerRegisterDeviceChangeCallback_008(napi_env env,napi_callback_info info)2643 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_008(napi_env env, napi_callback_info info)
2644 {
2645 napi_value res;
2646 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2647 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2648 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2649 napi_create_int32(env, TEST_FAIL, &res);
2650 return res;
2651 }
2652 int32_t flag = 4;
2653 OH_AudioDevice_Flag deviceFlag = (OH_AudioDevice_Flag)flag;
2654 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2655 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2656 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_008, result is: %{public}d", result);
2657 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2658 napi_create_int32(env, TEST_FAIL, &res);
2659 } else {
2660 napi_create_int32(env, TEST_PASS, &res);
2661 }
2662 return res;
2663 }
2664
AudioRoutingManagerUnregisterDeviceChangeCallback_001(napi_env env,napi_callback_info info)2665 static napi_value AudioRoutingManagerUnregisterDeviceChangeCallback_001(napi_env env, napi_callback_info info)
2666 {
2667 napi_value res;
2668 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2669 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2670 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2671 napi_create_int32(env, TEST_FAIL, &res);
2672 return res;
2673 }
2674 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2675 result = OH_AudioRoutingManager_UnregisterDeviceChangeCallback(audioRoutingManager, callback);
2676 LOG("AudioRoutingManagerUnregisterDeviceChangeCallback_001, result is: %{public}d", result);
2677 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2678 napi_create_int32(env, TEST_FAIL, &res);
2679 } else {
2680 napi_create_int32(env, TEST_PASS, &res);
2681 }
2682 return res;
2683 }
2684
AudioRoutingManagerUnregisterDeviceChangeCallback_002(napi_env env,napi_callback_info info)2685 static napi_value AudioRoutingManagerUnregisterDeviceChangeCallback_002(napi_env env, napi_callback_info info)
2686 {
2687 napi_value res;
2688 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2689 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2690 OH_AudioCommon_Result result = OH_AudioRoutingManager_UnregisterDeviceChangeCallback(
2691 audioRoutingManager, callback);
2692 LOG("AudioRoutingManagerUnregisterDeviceChangeCallback_002, result is: %{public}d", result);
2693 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2694 napi_create_int32(env, TEST_FAIL, &res);
2695 } else {
2696 napi_create_int32(env, TEST_PASS, &res);
2697 }
2698 return res;
2699 }
2700
AudioRoutingManagerUnregisterDeviceChangeCallback_003(napi_env env,napi_callback_info info)2701 static napi_value AudioRoutingManagerUnregisterDeviceChangeCallback_003(napi_env env, napi_callback_info info)
2702 {
2703 napi_value res;
2704 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2705 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2706 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2707 napi_create_int32(env, TEST_FAIL, &res);
2708 return res;
2709 }
2710 OH_AudioRoutingManager_OnDeviceChangedCallback callback = nullptr;
2711 result = OH_AudioRoutingManager_UnregisterDeviceChangeCallback(audioRoutingManager, callback);
2712 LOG("AudioRoutingManagerUnregisterDeviceChangeCallback_003, result is: %{public}d", result);
2713 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2714 napi_create_int32(env, TEST_FAIL, &res);
2715 } else {
2716 napi_create_int32(env, TEST_PASS, &res);
2717 }
2718 return res;
2719 }
2720
AudioRoutingManagerReleaseDevices_001(napi_env env,napi_callback_info info)2721 static napi_value AudioRoutingManagerReleaseDevices_001(napi_env env, napi_callback_info info)
2722 {
2723 napi_value res;
2724 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2725 OH_AudioDeviceDescriptorArray *audioDeviceDescriptorArray = nullptr;
2726 OH_AudioCommon_Result result =
2727 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, audioDeviceDescriptorArray);
2728 LOG("AudioRoutingManagerReleaseDevices_001, result is: %{public}d", result);
2729 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2730 napi_create_int32(env, TEST_FAIL, &res);
2731 } else {
2732 napi_create_int32(env, TEST_PASS, &res);
2733 }
2734 return res;
2735 }
2736
AudioRoutingManagerReleaseDevices_002(napi_env env,napi_callback_info info)2737 static napi_value AudioRoutingManagerReleaseDevices_002(napi_env env, napi_callback_info info)
2738 {
2739 napi_value res;
2740 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2741 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2742 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2743 napi_create_int32(env, TEST_FAIL, &res);
2744 return res;
2745 }
2746 OH_AudioDeviceDescriptorArray *audioDeviceDescriptorArray = nullptr;
2747 result = OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, audioDeviceDescriptorArray);
2748 LOG("AudioRoutingManagerReleaseDevices_002, result is: %{public}d", result);
2749 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2750 napi_create_int32(env, TEST_FAIL, &res);
2751 } else {
2752 napi_create_int32(env, TEST_PASS, &res);
2753 }
2754 return res;
2755 }
2756
AudioAudioDeviceDescriptorGetDeviceType_001(napi_env env,napi_callback_info info)2757 static napi_value AudioAudioDeviceDescriptorGetDeviceType_001(napi_env env, napi_callback_info info)
2758 {
2759 napi_value res;
2760 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2761 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2762 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2763 napi_create_int32(env, TEST_FAIL, &res);
2764 return res;
2765 }
2766 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
2767 OH_AudioDeviceDescriptorArray *array = nullptr;
2768 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2769 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
2770 napi_create_int32(env, TEST_FAIL, &res);
2771 return res;
2772 }
2773 int size = array->size;
2774 for (int i = 0; i < size; i++) {
2775 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
2776 if (descriptor == nullptr) {
2777 napi_create_int32(env, TEST_FAIL, &res);
2778 return res;
2779 }
2780 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_INVALID;
2781 result = OH_AudioDeviceDescriptor_GetDeviceType(descriptor, &deviceType);
2782 LOG("AudioAudioDeviceDescriptorGetDeviceType_001, result is: %{public}d", result);
2783 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2784 napi_create_int32(env, TEST_FAIL, &res);
2785 break;
2786 } else {
2787 napi_create_int32(env, TEST_PASS, &res);
2788 }
2789 }
2790 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2791 return res;
2792 }
2793
AudioAudioDeviceDescriptorGetDeviceType_002(napi_env env,napi_callback_info info)2794 static napi_value AudioAudioDeviceDescriptorGetDeviceType_002(napi_env env, napi_callback_info info)
2795 {
2796 napi_value res;
2797 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2798 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2799 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2800 napi_create_int32(env, TEST_FAIL, &res);
2801 return res;
2802 }
2803 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
2804 OH_AudioDeviceDescriptorArray *array = nullptr;
2805 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2806 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
2807 if (result != AUDIOCOMMON_RESULT_SUCCESS || descriptor == nullptr || array == nullptr) {
2808 napi_create_int32(env, TEST_FAIL, &res);
2809 return res;
2810 }
2811
2812 result = OH_AudioDeviceDescriptor_GetDeviceType(descriptor, nullptr);
2813 LOG("AudioAudioDeviceDescriptorGetDeviceType_002, result is: %{public}d", result);
2814 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2815 napi_create_int32(env, TEST_FAIL, &res);
2816 } else {
2817 napi_create_int32(env, TEST_PASS, &res);
2818 }
2819 return res;
2820 }
2821
AudioAudioDeviceDescriptorGetDeviceType_003(napi_env env,napi_callback_info info)2822 static napi_value AudioAudioDeviceDescriptorGetDeviceType_003(napi_env env, napi_callback_info info)
2823 {
2824 OH_AudioDeviceDescriptor *descriptor = nullptr;
2825 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_INVALID;
2826 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceType(descriptor, &deviceType);
2827 LOG("AudioAudioDeviceDescriptorGetDeviceType_003, result is: %{public}d", result);
2828 napi_value res;
2829 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2830 napi_create_int32(env, TEST_FAIL, &res);
2831 } else {
2832 napi_create_int32(env, TEST_PASS, &res);
2833 }
2834 return res;
2835 }
2836
AudioAudioDeviceDescriptorGetDeviceRole_001(napi_env env,napi_callback_info info)2837 static napi_value AudioAudioDeviceDescriptorGetDeviceRole_001(napi_env env, napi_callback_info info)
2838 {
2839 napi_value res;
2840 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2841 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2842 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2843 napi_create_int32(env, TEST_FAIL, &res);
2844 return res;
2845 }
2846 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
2847 OH_AudioDeviceDescriptorArray *array = nullptr;
2848 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2849 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
2850 napi_create_int32(env, TEST_FAIL, &res);
2851 return res;
2852 }
2853
2854 int size = array->size;
2855 for (int i = 0; i < size; i++) {
2856 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
2857 if (descriptor == nullptr) {
2858 napi_create_int32(env, TEST_FAIL, &res);
2859 return res;
2860 }
2861 OH_AudioDevice_Role deviceRole = AUDIO_DEVICE_ROLE_OUTPUT;
2862 result = OH_AudioDeviceDescriptor_GetDeviceRole(descriptor, &deviceRole);
2863 LOG("AudioAudioDeviceDescriptorGetDeviceRole_001, result is: %{public}d", result);
2864 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2865 napi_create_int32(env, TEST_FAIL, &res);
2866 break;
2867 } else {
2868 napi_create_int32(env, TEST_PASS, &res);
2869 }
2870 }
2871 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2872 return res;
2873 }
2874
AudioAudioDeviceDescriptorGetDeviceRole_002(napi_env env,napi_callback_info info)2875 static napi_value AudioAudioDeviceDescriptorGetDeviceRole_002(napi_env env, napi_callback_info info)
2876 {
2877 napi_value res;
2878 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2879 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2880 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2881 napi_create_int32(env, TEST_FAIL, &res);
2882 return res;
2883 }
2884 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
2885 OH_AudioDeviceDescriptorArray *array = nullptr;
2886 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2887 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
2888 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
2889 napi_create_int32(env, TEST_FAIL, &res);
2890 return res;
2891 }
2892
2893 result = OH_AudioDeviceDescriptor_GetDeviceRole(descriptor, nullptr);
2894 LOG("AudioAudioDeviceDescriptorGetDeviceRole_002, result is: %{public}d", result);
2895 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2896 napi_create_int32(env, TEST_FAIL, &res);
2897 } else {
2898 napi_create_int32(env, TEST_PASS, &res);
2899 }
2900 return res;
2901 }
2902
AudioAudioDeviceDescriptorGetDeviceRole_003(napi_env env,napi_callback_info info)2903 static napi_value AudioAudioDeviceDescriptorGetDeviceRole_003(napi_env env, napi_callback_info info)
2904 {
2905 napi_value res;
2906 OH_AudioDeviceDescriptor *descriptor = nullptr;
2907 OH_AudioDevice_Role deviceRole = AUDIO_DEVICE_ROLE_OUTPUT;
2908 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceRole(descriptor, &deviceRole);
2909 LOG("AudioAudioDeviceDescriptorGetDeviceRole_003, result is: %{public}d", result);
2910 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2911 napi_create_int32(env, TEST_FAIL, &res);
2912 } else {
2913 napi_create_int32(env, TEST_PASS, &res);
2914 }
2915 return res;
2916 }
2917
AudioAudioDeviceDescriptorGetDeviceId_001(napi_env env,napi_callback_info info)2918 static napi_value AudioAudioDeviceDescriptorGetDeviceId_001(napi_env env, napi_callback_info info)
2919 {
2920 napi_value res;
2921 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2922 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2923 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2924 napi_create_int32(env, TEST_FAIL, &res);
2925 return res;
2926 }
2927 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
2928 OH_AudioDeviceDescriptorArray *array = nullptr;
2929 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2930 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
2931 napi_create_int32(env, TEST_FAIL, &res);
2932 return res;
2933 }
2934
2935 int size = array->size;
2936 for (int i = 0; i < size; i++) {
2937 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
2938 if (descriptor == nullptr) {
2939 napi_create_int32(env, TEST_FAIL, &res);
2940 return res;
2941 }
2942 uint32_t id = 0;
2943 result = OH_AudioDeviceDescriptor_GetDeviceId(descriptor, &id);
2944 LOG("AudioAudioDeviceDescriptorGetDeviceId_001, result is: %{public}d", result);
2945 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2946 napi_create_int32(env, TEST_FAIL, &res);
2947 break;
2948 } else {
2949 napi_create_int32(env, TEST_PASS, &res);
2950 }
2951 }
2952 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2953 return res;
2954 }
2955
AudioAudioDeviceDescriptorGetDeviceId_002(napi_env env,napi_callback_info info)2956 static napi_value AudioAudioDeviceDescriptorGetDeviceId_002(napi_env env, napi_callback_info info)
2957 {
2958 napi_value res;
2959 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2960 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2961 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2962 napi_create_int32(env, TEST_FAIL, &res);
2963 return res;
2964 }
2965 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
2966 OH_AudioDeviceDescriptorArray *array = nullptr;
2967 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2968 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
2969 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
2970 napi_create_int32(env, TEST_FAIL, &res);
2971 return res;
2972 }
2973
2974 result = OH_AudioDeviceDescriptor_GetDeviceId(descriptor, nullptr);
2975 LOG("AudioAudioDeviceDescriptorGetDeviceId_002, result is: %{public}d", result);
2976 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2977 napi_create_int32(env, TEST_FAIL, &res);
2978 } else {
2979 napi_create_int32(env, TEST_PASS, &res);
2980 }
2981 return res;
2982 }
2983
AudioAudioDeviceDescriptorGetDeviceId_003(napi_env env,napi_callback_info info)2984 static napi_value AudioAudioDeviceDescriptorGetDeviceId_003(napi_env env, napi_callback_info info)
2985 {
2986 napi_value res;
2987 OH_AudioDeviceDescriptor *descriptor = nullptr;
2988 uint32_t id = 0;
2989 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceId(descriptor, &id);
2990 LOG("AudioAudioDeviceDescriptorGetDeviceId_003, result is: %{public}d", result);
2991 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2992 napi_create_int32(env, TEST_FAIL, &res);
2993 } else {
2994 napi_create_int32(env, TEST_PASS, &res);
2995 }
2996 return res;
2997 }
2998
AudioAudioDeviceDescriptorGetDeviceName_001(napi_env env,napi_callback_info info)2999 static napi_value AudioAudioDeviceDescriptorGetDeviceName_001(napi_env env, napi_callback_info info)
3000 {
3001 napi_value res;
3002 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3003 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3004 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3005 napi_create_int32(env, TEST_FAIL, &res);
3006 return res;
3007 }
3008 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3009 OH_AudioDeviceDescriptorArray *array = nullptr;
3010 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3011 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3012 napi_create_int32(env, TEST_FAIL, &res);
3013 return res;
3014 }
3015
3016 int size = array->size;
3017 for (int i = 0; i < size; i++) {
3018 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3019 if (descriptor == nullptr) {
3020 napi_create_int32(env, TEST_FAIL, &res);
3021 return res;
3022 }
3023 char* deviceName;
3024 result = OH_AudioDeviceDescriptor_GetDeviceName(descriptor, &deviceName);
3025 LOG("AudioAudioDeviceDescriptorGetDeviceName_001, result is: %{public}d", result);
3026 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3027 napi_create_int32(env, TEST_FAIL, &res);
3028 break;
3029 } else {
3030 napi_create_int32(env, TEST_PASS, &res);
3031 }
3032 }
3033 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3034 return res;
3035 }
3036
AudioAudioDeviceDescriptorGetDeviceName_002(napi_env env,napi_callback_info info)3037 static napi_value AudioAudioDeviceDescriptorGetDeviceName_002(napi_env env, napi_callback_info info)
3038 {
3039 napi_value res;
3040 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3041 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3042 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3043 napi_create_int32(env, TEST_FAIL, &res);
3044 return res;
3045 }
3046 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3047 OH_AudioDeviceDescriptorArray *array = nullptr;
3048 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3049 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3050 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3051 napi_create_int32(env, TEST_FAIL, &res);
3052 return res;
3053 }
3054
3055 result = OH_AudioDeviceDescriptor_GetDeviceName(descriptor, nullptr);
3056 LOG("AudioAudioDeviceDescriptorGetDeviceName_002, result is: %{public}d", result);
3057 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3058 napi_create_int32(env, TEST_FAIL, &res);
3059 } else {
3060 napi_create_int32(env, TEST_PASS, &res);
3061 }
3062 return res;
3063 }
3064
AudioAudioDeviceDescriptorGetDeviceName_003(napi_env env,napi_callback_info info)3065 static napi_value AudioAudioDeviceDescriptorGetDeviceName_003(napi_env env, napi_callback_info info)
3066 {
3067 napi_value res;
3068 OH_AudioDeviceDescriptor *descriptor = nullptr;
3069 char* deviceName;
3070 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceName(descriptor, &deviceName);
3071 LOG("AudioAudioDeviceDescriptorGetDeviceName_003, result is: %{public}d", result);
3072 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3073 napi_create_int32(env, TEST_FAIL, &res);
3074 } else {
3075 napi_create_int32(env, TEST_PASS, &res);
3076 }
3077 return res;
3078 }
3079
AudioAudioDeviceDescriptorGetDeviceAddress_001(napi_env env,napi_callback_info info)3080 static napi_value AudioAudioDeviceDescriptorGetDeviceAddress_001(napi_env env, napi_callback_info info)
3081 {
3082 napi_value res;
3083 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3084 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3085 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3086 napi_create_int32(env, TEST_FAIL, &res);
3087 return res;
3088 }
3089 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3090 OH_AudioDeviceDescriptorArray *array = nullptr;
3091 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3092 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3093 napi_create_int32(env, TEST_FAIL, &res);
3094 return res;
3095 }
3096
3097 int size = array->size;
3098 for (int i = 0; i < size; i++) {
3099 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3100 if (descriptor == nullptr) {
3101 napi_create_int32(env, TEST_FAIL, &res);
3102 return res;
3103 }
3104 char *address;
3105 result = OH_AudioDeviceDescriptor_GetDeviceAddress(descriptor, &address);
3106 LOG("AudioAudioDeviceDescriptorGetDeviceAddress_001, result is: %{public}d", result);
3107 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3108 napi_create_int32(env, TEST_FAIL, &res);
3109 break;
3110 } else {
3111 napi_create_int32(env, TEST_PASS, &res);
3112 }
3113 }
3114 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3115 return res;
3116 }
3117
AudioAudioDeviceDescriptorGetDeviceAddress_002(napi_env env,napi_callback_info info)3118 static napi_value AudioAudioDeviceDescriptorGetDeviceAddress_002(napi_env env, napi_callback_info info)
3119 {
3120 napi_value res;
3121 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3122 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3123 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3124 napi_create_int32(env, TEST_FAIL, &res);
3125 return res;
3126 }
3127 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3128 OH_AudioDeviceDescriptorArray *array = nullptr;
3129 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3130 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3131 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3132 napi_create_int32(env, TEST_FAIL, &res);
3133 return res;
3134 }
3135
3136 result = OH_AudioDeviceDescriptor_GetDeviceAddress(descriptor, nullptr);
3137 LOG("AudioAudioDeviceDescriptorGetDeviceAddress_002, result is: %{public}d", result);
3138 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3139 napi_create_int32(env, TEST_FAIL, &res);
3140 } else {
3141 napi_create_int32(env, TEST_PASS, &res);
3142 }
3143 return res;
3144 }
3145
AudioAudioDeviceDescriptorGetDeviceAddress_003(napi_env env,napi_callback_info info)3146 static napi_value AudioAudioDeviceDescriptorGetDeviceAddress_003(napi_env env, napi_callback_info info)
3147 {
3148 napi_value res;
3149 OH_AudioDeviceDescriptor *descriptor = nullptr;
3150 char *address;
3151 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceAddress(descriptor, &address);
3152 LOG("AudioAudioDeviceDescriptorGetDeviceAddress_003, result is: %{public}d", result);
3153 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3154 napi_create_int32(env, TEST_FAIL, &res);
3155 } else {
3156 napi_create_int32(env, TEST_PASS, &res);
3157 }
3158 return res;
3159 }
3160
AudioAudioDeviceDescriptorGetDeviceSampleRates_001(napi_env env,napi_callback_info info)3161 static napi_value AudioAudioDeviceDescriptorGetDeviceSampleRates_001(napi_env env, napi_callback_info info)
3162 {
3163 napi_value res;
3164 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3165 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3166 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3167 napi_create_int32(env, TEST_FAIL, &res);
3168 return res;
3169 }
3170 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3171 OH_AudioDeviceDescriptorArray *array = nullptr;
3172 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3173 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3174 napi_create_int32(env, TEST_FAIL, &res);
3175 return res;
3176 }
3177
3178 int size = array->size;
3179 for (int i = 0; i < size; i++) {
3180 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3181 if (descriptor == nullptr) {
3182 napi_create_int32(env, TEST_FAIL, &res);
3183 return res;
3184 }
3185 uint32_t *sampleRates;
3186 uint32_t size = 0;
3187 result = OH_AudioDeviceDescriptor_GetDeviceSampleRates(descriptor, &sampleRates, &size);
3188 LOG("AudioAudioDeviceDescriptorGetDeviceSampleRates_001, result is: %{public}d", result);
3189 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3190 napi_create_int32(env, TEST_FAIL, &res);
3191 break;
3192 } else {
3193 napi_create_int32(env, TEST_PASS, &res);
3194 }
3195 }
3196 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3197 return res;
3198 }
3199
AudioAudioDeviceDescriptorGetDeviceSampleRates_002(napi_env env,napi_callback_info info)3200 static napi_value AudioAudioDeviceDescriptorGetDeviceSampleRates_002(napi_env env, napi_callback_info info)
3201 {
3202 napi_value res;
3203 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3204 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3205 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3206 napi_create_int32(env, TEST_FAIL, &res);
3207 return res;
3208 }
3209 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3210 OH_AudioDeviceDescriptorArray *array = nullptr;
3211 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3212 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3213 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3214 napi_create_int32(env, TEST_FAIL, &res);
3215 return res;
3216 }
3217
3218 uint32_t size = 0;
3219 result = OH_AudioDeviceDescriptor_GetDeviceSampleRates(descriptor, nullptr, &size);
3220 LOG("AudioAudioDeviceDescriptorGetDeviceSampleRates_002, result is: %{public}d", result);
3221 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3222 napi_create_int32(env, TEST_FAIL, &res);
3223 } else {
3224 napi_create_int32(env, TEST_PASS, &res);
3225 }
3226 return res;
3227 }
3228
AudioAudioDeviceDescriptorGetDeviceSampleRates_003(napi_env env,napi_callback_info info)3229 static napi_value AudioAudioDeviceDescriptorGetDeviceSampleRates_003(napi_env env, napi_callback_info info)
3230 {
3231 napi_value res;
3232 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3233 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3234 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3235 napi_create_int32(env, TEST_FAIL, &res);
3236 return res;
3237 }
3238 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3239 OH_AudioDeviceDescriptorArray *array = nullptr;
3240 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3241 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3242 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3243 napi_create_int32(env, TEST_FAIL, &res);
3244 return res;
3245 }
3246
3247 uint32_t *sampleRates;
3248 result = OH_AudioDeviceDescriptor_GetDeviceSampleRates(descriptor, &sampleRates, nullptr);
3249 LOG("AudioAudioDeviceDescriptorGetDeviceSampleRates_003, result is: %{public}d", result);
3250 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3251 napi_create_int32(env, TEST_FAIL, &res);
3252 } else {
3253 napi_create_int32(env, TEST_PASS, &res);
3254 }
3255 return res;
3256 }
3257
AudioAudioDeviceDescriptorGetDeviceSampleRates_004(napi_env env,napi_callback_info info)3258 static napi_value AudioAudioDeviceDescriptorGetDeviceSampleRates_004(napi_env env, napi_callback_info info)
3259 {
3260 napi_value res;
3261 OH_AudioDeviceDescriptor *descriptor = nullptr;
3262 uint32_t *sampleRates;
3263 uint32_t size = 0;
3264 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceSampleRates(descriptor, &sampleRates, &size);
3265 LOG("AudioAudioDeviceDescriptorGetDeviceSampleRates_004, result is: %{public}d", result);
3266 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3267 napi_create_int32(env, TEST_FAIL, &res);
3268 } else {
3269 napi_create_int32(env, TEST_PASS, &res);
3270 }
3271 return res;
3272 }
3273
AudioAudioDeviceDescriptorGetDeviceChannelCounts_001(napi_env env,napi_callback_info info)3274 static napi_value AudioAudioDeviceDescriptorGetDeviceChannelCounts_001(napi_env env, napi_callback_info info)
3275 {
3276 napi_value res;
3277 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3278 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3279 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3280 napi_create_int32(env, TEST_FAIL, &res);
3281 return res;
3282 }
3283 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3284 OH_AudioDeviceDescriptorArray *array = nullptr;
3285 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3286 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3287 napi_create_int32(env, TEST_FAIL, &res);
3288 return res;
3289 }
3290
3291 int size = array->size;
3292 for (int i = 0; i < size; i++) {
3293 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3294 if (descriptor == nullptr) {
3295 napi_create_int32(env, TEST_FAIL, &res);
3296 return res;
3297 }
3298 uint32_t *channelCounts;
3299 uint32_t channelSize = 0;
3300 result = OH_AudioDeviceDescriptor_GetDeviceChannelCounts(descriptor, &channelCounts, &channelSize);
3301 LOG("AudioAudioDeviceDescriptorGetDeviceChannelCounts_001, result is: %{public}d", result);
3302 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3303 napi_create_int32(env, TEST_FAIL, &res);
3304 break;
3305 } else {
3306 napi_create_int32(env, TEST_PASS, &res);
3307 }
3308 }
3309 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3310 return res;
3311 }
3312
AudioAudioDeviceDescriptorGetDeviceChannelCounts_002(napi_env env,napi_callback_info info)3313 static napi_value AudioAudioDeviceDescriptorGetDeviceChannelCounts_002(napi_env env, napi_callback_info info)
3314 {
3315 napi_value res;
3316 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3317 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3318 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3319 napi_create_int32(env, TEST_FAIL, &res);
3320 return res;
3321 }
3322 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3323 OH_AudioDeviceDescriptorArray *array = nullptr;
3324 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3325 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3326 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3327 napi_create_int32(env, TEST_FAIL, &res);
3328 return res;
3329 }
3330
3331 uint32_t channelSize = 0;
3332 result = OH_AudioDeviceDescriptor_GetDeviceChannelCounts(descriptor, nullptr, &channelSize);
3333 LOG("AudioAudioDeviceDescriptorGetDeviceChannelCounts_002, result is: %{public}d", result);
3334 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3335 napi_create_int32(env, TEST_FAIL, &res);
3336 } else {
3337 napi_create_int32(env, TEST_PASS, &res);
3338 }
3339 return res;
3340 }
3341
AudioAudioDeviceDescriptorGetDeviceChannelCounts_003(napi_env env,napi_callback_info info)3342 static napi_value AudioAudioDeviceDescriptorGetDeviceChannelCounts_003(napi_env env, napi_callback_info info)
3343 {
3344 napi_value res;
3345 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3346 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3347 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3348 napi_create_int32(env, TEST_FAIL, &res);
3349 return res;
3350 }
3351 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3352 OH_AudioDeviceDescriptorArray *array = nullptr;
3353 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3354 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3355 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3356 napi_create_int32(env, TEST_FAIL, &res);
3357 return res;
3358 }
3359
3360 uint32_t *channelCounts;
3361 result = OH_AudioDeviceDescriptor_GetDeviceChannelCounts(descriptor, &channelCounts, nullptr);
3362 LOG("AudioAudioDeviceDescriptorGetDeviceChannelCounts_003, result is: %{public}d", result);
3363 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3364 napi_create_int32(env, TEST_FAIL, &res);
3365 } else {
3366 napi_create_int32(env, TEST_PASS, &res);
3367 }
3368 return res;
3369 }
3370
AudioAudioDeviceDescriptorGetDeviceChannelCounts_004(napi_env env,napi_callback_info info)3371 static napi_value AudioAudioDeviceDescriptorGetDeviceChannelCounts_004(napi_env env, napi_callback_info info)
3372 {
3373 napi_value res;
3374 OH_AudioDeviceDescriptor *descriptor = nullptr;
3375 uint32_t *channelCounts;
3376 uint32_t channelSize = 0;
3377 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceChannelCounts(
3378 descriptor, &channelCounts, &channelSize);
3379 LOG("AudioAudioDeviceDescriptorGetDeviceChannelCounts_004, result is: %{public}d", result);
3380 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3381 napi_create_int32(env, TEST_FAIL, &res);
3382 } else {
3383 napi_create_int32(env, TEST_PASS, &res);
3384 }
3385 return res;
3386 }
3387
AudioAudioDeviceDescriptorGetDeviceDisplayName_001(napi_env env,napi_callback_info info)3388 static napi_value AudioAudioDeviceDescriptorGetDeviceDisplayName_001(napi_env env, napi_callback_info info)
3389 {
3390 napi_value res;
3391 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3392 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3393 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3394 napi_create_int32(env, TEST_FAIL, &res);
3395 return res;
3396 }
3397 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3398 OH_AudioDeviceDescriptorArray *array = nullptr;
3399 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3400 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3401 napi_create_int32(env, TEST_FAIL, &res);
3402 return res;
3403 }
3404
3405 int size = array->size;
3406 for (int i = 0; i < size; i++) {
3407 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3408 if (descriptor == nullptr) {
3409 napi_create_int32(env, TEST_FAIL, &res);
3410 return res;
3411 }
3412 char *displayName;
3413 result = OH_AudioDeviceDescriptor_GetDeviceDisplayName(descriptor, &displayName);
3414 LOG("AudioAudioDeviceDescriptorGetDeviceDisplayName_001, result is: %{public}d", result);
3415 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3416 napi_create_int32(env, TEST_FAIL, &res);
3417 break;
3418 } else {
3419 napi_create_int32(env, TEST_PASS, &res);
3420 }
3421 }
3422 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3423 return res;
3424 }
3425
AudioAudioDeviceDescriptorGetDeviceDisplayName_002(napi_env env,napi_callback_info info)3426 static napi_value AudioAudioDeviceDescriptorGetDeviceDisplayName_002(napi_env env, napi_callback_info info)
3427 {
3428 napi_value res;
3429 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3430 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3431 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3432 napi_create_int32(env, TEST_FAIL, &res);
3433 return res;
3434 }
3435 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3436 OH_AudioDeviceDescriptorArray *array = nullptr;
3437 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3438 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3439 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3440 napi_create_int32(env, TEST_FAIL, &res);
3441 return res;
3442 }
3443
3444 result = OH_AudioDeviceDescriptor_GetDeviceDisplayName(descriptor, nullptr);
3445 LOG("AudioAudioDeviceDescriptorGetDeviceDisplayName_002, result is: %{public}d", result);
3446 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3447 napi_create_int32(env, TEST_FAIL, &res);
3448 } else {
3449 napi_create_int32(env, TEST_PASS, &res);
3450 }
3451 return res;
3452 }
3453
AudioAudioDeviceDescriptorGetDeviceDisplayName_003(napi_env env,napi_callback_info info)3454 static napi_value AudioAudioDeviceDescriptorGetDeviceDisplayName_003(napi_env env, napi_callback_info info)
3455 {
3456 napi_value res;
3457 OH_AudioDeviceDescriptor *descriptor = nullptr;
3458 char *displayName;
3459 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceDisplayName(descriptor, &displayName);
3460 LOG("AudioAudioDeviceDescriptorGetDeviceDisplayName_003, result is: %{public}d", result);
3461 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3462 napi_create_int32(env, TEST_FAIL, &res);
3463 } else {
3464 napi_create_int32(env, TEST_PASS, &res);
3465 }
3466 return res;
3467 }
3468
AudioAudioDeviceDescriptorGetDeviceEncodingTypes_001(napi_env env,napi_callback_info info)3469 static napi_value AudioAudioDeviceDescriptorGetDeviceEncodingTypes_001(napi_env env, napi_callback_info info)
3470 {
3471 napi_value res;
3472 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3473 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3474 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3475 napi_create_int32(env, TEST_FAIL, &res);
3476 return res;
3477 }
3478 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3479 OH_AudioDeviceDescriptorArray *array = nullptr;
3480 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3481 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3482 napi_create_int32(env, TEST_FAIL, &res);
3483 return res;
3484 }
3485
3486 int size = array->size;
3487 for (int i = 0; i < size; i++) {
3488 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3489 if (descriptor == nullptr) {
3490 napi_create_int32(env, TEST_FAIL, &res);
3491 return res;
3492 }
3493 OH_AudioStream_EncodingType *encodingTypes;
3494 uint32_t encodingTypeSize = 0;
3495 result = OH_AudioDeviceDescriptor_GetDeviceEncodingTypes(descriptor, &encodingTypes, &encodingTypeSize);
3496 LOG("AudioAudioDeviceDescriptorGetDeviceEncodingTypes_001, result is: %{public}d", result);
3497 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3498 napi_create_int32(env, TEST_FAIL, &res);
3499 break;
3500 } else {
3501 napi_create_int32(env, TEST_PASS, &res);
3502 }
3503 }
3504 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3505 return res;
3506 }
3507
AudioAudioDeviceDescriptorGetDeviceEncodingTypes_002(napi_env env,napi_callback_info info)3508 static napi_value AudioAudioDeviceDescriptorGetDeviceEncodingTypes_002(napi_env env, napi_callback_info info)
3509 {
3510 napi_value res;
3511 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3512 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3513 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3514 napi_create_int32(env, TEST_FAIL, &res);
3515 return res;
3516 }
3517 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3518 OH_AudioDeviceDescriptorArray *array = nullptr;
3519 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3520 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3521 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3522 napi_create_int32(env, TEST_FAIL, &res);
3523 return res;
3524 }
3525
3526 uint32_t encodingTypeSize = 0;
3527 result = OH_AudioDeviceDescriptor_GetDeviceEncodingTypes(descriptor, nullptr, &encodingTypeSize);
3528 LOG("AudioAudioDeviceDescriptorGetDeviceEncodingTypes_002, result is: %{public}d", result);
3529 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3530 napi_create_int32(env, TEST_FAIL, &res);
3531 } else {
3532 napi_create_int32(env, TEST_PASS, &res);
3533 }
3534 return res;
3535 }
3536
AudioAudioDeviceDescriptorGetDeviceEncodingTypes_003(napi_env env,napi_callback_info info)3537 static napi_value AudioAudioDeviceDescriptorGetDeviceEncodingTypes_003(napi_env env, napi_callback_info info)
3538 {
3539 napi_value res;
3540 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3541 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3542 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3543 napi_create_int32(env, TEST_FAIL, &res);
3544 return res;
3545 }
3546 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3547 OH_AudioDeviceDescriptorArray *array = nullptr;
3548 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3549 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3550 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3551 napi_create_int32(env, TEST_FAIL, &res);
3552 return res;
3553 }
3554
3555 OH_AudioStream_EncodingType *encodingTypes;
3556 result = OH_AudioDeviceDescriptor_GetDeviceEncodingTypes(descriptor, &encodingTypes, nullptr);
3557 LOG("AudioAudioDeviceDescriptorGetDeviceEncodingTypes_003, result is: %{public}d", result);
3558 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3559 napi_create_int32(env, TEST_FAIL, &res);
3560 } else {
3561 napi_create_int32(env, TEST_PASS, &res);
3562 }
3563 return res;
3564 }
3565
AudioAudioDeviceDescriptorGetDeviceEncodingTypes_004(napi_env env,napi_callback_info info)3566 static napi_value AudioAudioDeviceDescriptorGetDeviceEncodingTypes_004(napi_env env, napi_callback_info info)
3567 {
3568 napi_value res;
3569 OH_AudioDeviceDescriptor *descriptor = nullptr;
3570 OH_AudioStream_EncodingType *encodingTypes;
3571 uint32_t encodingTypeSize = 0;
3572 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceEncodingTypes(
3573 descriptor, &encodingTypes, &encodingTypeSize);
3574 LOG("AudioAudioDeviceDescriptorGetDeviceEncodingTypes_004, result is: %{public}d", result);
3575 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3576 napi_create_int32(env, TEST_FAIL, &res);
3577 } else {
3578 napi_create_int32(env, TEST_PASS, &res);
3579 }
3580 return res;
3581 }
3582
AudioAudioInternalRecordingSuccess01(napi_env env,napi_callback_info info)3583 static napi_value AudioAudioInternalRecordingSuccess01(napi_env env, napi_callback_info info)
3584 {
3585 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
3586 OH_AudioRenderer *audioRenderer;
3587 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
3588 OH_AudioStream_PrivacyType type = AUDIO_STREAM_PRIVACY_TYPE_PUBLIC;
3589 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererPrivacy(builder, type);
3590 OH_AudioRenderer_Release(audioRenderer);
3591 OH_AudioStreamBuilder_Destroy(builder);
3592 napi_value res;
3593 napi_create_int32(env, result, &res);
3594 return res;
3595 }
3596
AudioAudioInternalRecordingSuccess02(napi_env env,napi_callback_info info)3597 static napi_value AudioAudioInternalRecordingSuccess02(napi_env env, napi_callback_info info)
3598 {
3599 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
3600 OH_AudioStream_PrivacyType type = AUDIO_STREAM_PRIVACY_TYPE_PRIVATE;
3601 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererPrivacy(builder, type);
3602 OH_AudioRenderer *audioRenderer = nullptr;
3603 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
3604 OH_AudioStream_PrivacyType type_get;
3605 OH_AudioStream_Result result1 = OH_AudioRenderer_GetRendererPrivacy(audioRenderer, &type_get);
3606 if (result == AUDIOSTREAM_SUCCESS && result1 == AUDIOSTREAM_SUCCESS
3607 && type_get == AUDIO_STREAM_PRIVACY_TYPE_PRIVATE) {
3608 result = AUDIOSTREAM_SUCCESS;
3609 } else {
3610 result = AUDIOSTREAM_ERROR_INVALID_PARAM;
3611 };
3612 OH_AudioRenderer_Release(audioRenderer);
3613 OH_AudioStreamBuilder_Destroy(builder);
3614 napi_value res;
3615 napi_create_int32(env, result, &res);
3616 return res;
3617 }
3618
AudioAudioInternalRecordingFalse(napi_env env,napi_callback_info info)3619 static napi_value AudioAudioInternalRecordingFalse(napi_env env, napi_callback_info info)
3620 {
3621 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
3622 OH_AudioRenderer *audioRenderer;
3623 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
3624 OH_AudioStream_PrivacyType type = static_cast<OH_AudioStream_PrivacyType>(2);
3625 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererPrivacy(builder, type);
3626 OH_AudioRenderer_Release(audioRenderer);
3627 OH_AudioStreamBuilder_Destroy(builder);
3628 napi_value res;
3629 napi_create_int32(env, result, &res);
3630 return res;
3631 }
3632
WriteDataCallbackWithValidResult(OH_AudioRenderer * renderer,void * userData,void * buffer,int32_t bufferLen)3633 static OH_AudioData_Callback_Result WriteDataCallbackWithValidResult(OH_AudioRenderer* renderer,
3634 void* userData,
3635 void* buffer,
3636 int32_t bufferLen)
3637 {
3638 return AUDIO_DATA_CALLBACK_RESULT_VALID;
3639 }
3640
WriteDataCallbackWithInvalidResult(OH_AudioRenderer * renderer,void * userData,void * buffer,int32_t bufferLen)3641 static OH_AudioData_Callback_Result WriteDataCallbackWithInvalidResult(OH_AudioRenderer* renderer,
3642 void* userData,
3643 void* buffer,
3644 int32_t bufferLen)
3645 {
3646 return AUDIO_DATA_CALLBACK_RESULT_INVALID;
3647 }
3648
AudioStreamBuilderSetRendererWriteDataCallback_001(napi_env env,napi_callback_info info)3649 static napi_value AudioStreamBuilderSetRendererWriteDataCallback_001(napi_env env, napi_callback_info info)
3650 {
3651 OH_AudioStreamBuilder* builder;
3652 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
3653 OH_AudioStreamBuilder_Create(&builder, type);
3654 OH_AudioRenderer_OnWriteDataCallback onWriteDataCallback = WriteDataCallbackWithValidResult;
3655 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererWriteDataCallback(builder,
3656 onWriteDataCallback, nullptr);
3657 OH_AudioStreamBuilder_Destroy(builder);
3658 napi_value res;
3659 napi_create_int32(env, result, &res);
3660 return res;
3661 }
3662
AudioStreamBuilderSetRendererWriteDataCallback_002(napi_env env,napi_callback_info info)3663 static napi_value AudioStreamBuilderSetRendererWriteDataCallback_002(napi_env env, napi_callback_info info)
3664 {
3665 OH_AudioStreamBuilder* builder;
3666 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
3667 OH_AudioStreamBuilder_Create(&builder, type);
3668 OH_AudioRenderer_OnWriteDataCallback onWriteDataCallback = WriteDataCallbackWithInvalidResult;
3669 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererWriteDataCallback(builder,
3670 onWriteDataCallback, nullptr);
3671 OH_AudioStreamBuilder_Destroy(builder);
3672 napi_value res;
3673 napi_create_int32(env, result, &res);
3674 return res;
3675 }
3676
audioCapturerGetOverflowCount_001(napi_env env,napi_callback_info info)3677 static napi_value audioCapturerGetOverflowCount_001(napi_env env, napi_callback_info info)
3678 {
3679 OH_AudioStreamBuilder* builder = CreateCapturerBuilder();
3680 int32_t samplingRate = 48000;
3681 OH_AudioStreamBuilder_SetSamplingRate(builder, samplingRate);
3682 int32_t channelCount = 2;
3683 OH_AudioStreamBuilder_SetChannelCount(builder, channelCount);
3684
3685 OH_AudioCapturer_Callbacks callbacks;
3686 callbacks.OH_AudioCapturer_OnReadData = AudioCapturerOnReadData;
3687 OH_AudioStreamBuilder_SetCapturerCallback(builder, callbacks, NULL);
3688
3689 OH_AudioCapturer* audioCapturer;
3690 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
3691 result = OH_AudioCapturer_Start(audioCapturer);
3692
3693 uint32_t overFlowCount;
3694 result = OH_AudioCapturer_GetOverflowCount(audioCapturer, &overFlowCount);
3695
3696 OH_AudioCapturer_Stop(audioCapturer);
3697 OH_AudioCapturer_Release(audioCapturer);
3698
3699 OH_AudioStreamBuilder_Destroy(builder);
3700 napi_value res;
3701 napi_create_int32(env, result, &res);
3702 return res;
3703 }
3704
AudioSessionManagerStrategy_001(napi_env env,napi_callback_info info)3705 static napi_value AudioSessionManagerStrategy_001(napi_env env, napi_callback_info info)
3706 {
3707 napi_value res;
3708 OH_AudioSessionManager* audioSessionManager;
3709 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
3710 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
3711 napi_create_int32(env, TEST_FAIL, &res);
3712 LOG("resultManager, result is: %{public}d", TEST_FAIL);
3713 return res;
3714 }
3715 OH_AudioSession_Strategy strategy = {
3716 CONCURRENCY_MIX_WITH_OTHERS
3717 };
3718 // 设置音频并发模式并激活音频会话
3719 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
3720 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
3721 napi_create_int32(env, TEST_FAIL, &res);
3722 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
3723 return res;
3724 }
3725
3726 // 查询音频会话是否已激活。
3727 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
3728 if (!isActivated) {
3729 napi_create_int32(env, TEST_FAIL, &res);
3730 LOG("isActivated, result is: %{public}d", TEST_FAIL);
3731 return res;
3732 }
3733
3734 // 监听音频会话停用事件
3735 OH_AudioCommon_Result resultRegister =
3736 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
3737 audioSessionManager, MyAudioSessionDeactivatedCallback);
3738 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
3739 napi_create_int32(env, TEST_FAIL, &res);
3740 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
3741 return res;
3742 }
3743
3744 // 等待1秒
3745 Delay(1);
3746
3747 // 取消监听音频会话停用事件
3748 OH_AudioCommon_Result resultUnregister =
3749 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
3750 audioSessionManager, MyAudioSessionDeactivatedCallback);
3751 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
3752 napi_create_int32(env, TEST_FAIL, &res);
3753 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
3754 return res;
3755 }
3756
3757 // 停用音频会话
3758 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
3759 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
3760 napi_create_int32(env, TEST_FAIL, &res);
3761 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
3762 return res;
3763 }
3764
3765 // 查询音频会话是否已激活。
3766 isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
3767 if (isActivated) {
3768 napi_create_int32(env, TEST_FAIL, &res);
3769 LOG("isActivated, result is: %{public}d", TEST_FAIL);
3770 return res;
3771 }
3772
3773 napi_create_int32(env, TEST_PASS, &res);
3774 return res;
3775 }
3776
3777
AudioSessionManagerStrategy_002(napi_env env,napi_callback_info info)3778 static napi_value AudioSessionManagerStrategy_002(napi_env env, napi_callback_info info)
3779 {
3780 napi_value res;
3781 OH_AudioSessionManager* audioSessionManager;
3782 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
3783 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
3784 napi_create_int32(env, TEST_FAIL, &res);
3785 LOG("resultManager, result is: %{public}d", TEST_FAIL);
3786 return res;
3787 }
3788 OH_AudioSession_Strategy strategy = {
3789 CONCURRENCY_DEFAULT
3790 };
3791
3792 // 设置音频并发模式并激活音频会话
3793 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
3794 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
3795 napi_create_int32(env, TEST_FAIL, &res);
3796 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
3797 return res;
3798 }
3799
3800 // 查询音频会话是否已激活。
3801 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
3802 if (!isActivated) {
3803 napi_create_int32(env, TEST_FAIL, &res);
3804 LOG("isActivated, result is: %{public}d", TEST_FAIL);
3805 return res;
3806 }
3807
3808 // 监听音频会话停用事件
3809 OH_AudioCommon_Result resultRegister =
3810 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
3811 audioSessionManager, MyAudioSessionDeactivatedCallback);
3812 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
3813 napi_create_int32(env, TEST_FAIL, &res);
3814 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
3815 return res;
3816 }
3817 // sleep 1 seconds
3818 Delay(1);
3819
3820 // 取消监听音频会话停用事件
3821 OH_AudioCommon_Result resultUnregister =
3822 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
3823 audioSessionManager, MyAudioSessionDeactivatedCallback);
3824 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
3825 napi_create_int32(env, TEST_FAIL, &res);
3826 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
3827 return res;
3828 }
3829
3830 // 停用音频会话
3831 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
3832 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
3833 napi_create_int32(env, TEST_FAIL, &res);
3834 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
3835 return res;
3836 }
3837
3838 napi_create_int32(env, TEST_PASS, &res);
3839 return res;
3840 }
3841
3842
AudioSessionManagerStrategy_003(napi_env env,napi_callback_info info)3843 static napi_value AudioSessionManagerStrategy_003(napi_env env, napi_callback_info info)
3844 {
3845 napi_value res;
3846 OH_AudioSessionManager* audioSessionManager;
3847 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
3848 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
3849 napi_create_int32(env, TEST_FAIL, &res);
3850 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
3851 return res;
3852 }
3853 OH_AudioSession_Strategy strategy = {
3854 CONCURRENCY_DUCK_OTHERS
3855 };
3856
3857 // 设置音频并发模式并激活音频会话
3858 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
3859 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
3860 napi_create_int32(env, TEST_FAIL, &res);
3861 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
3862 return res;
3863 }
3864
3865 // 查询音频会话是否已激活。
3866 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
3867 if (!isActivated) {
3868 napi_create_int32(env, TEST_FAIL, &res);
3869 LOG("isActivated, result is: %{public}d", TEST_FAIL);
3870 return res;
3871 }
3872
3873 // 监听音频会话停用事件
3874 OH_AudioCommon_Result resultRegister =
3875 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
3876 audioSessionManager, MyAudioSessionDeactivatedCallback);
3877 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
3878 napi_create_int32(env, TEST_FAIL, &res);
3879 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
3880 return res;
3881 }
3882 // sleep 1 seconds
3883 Delay(1);
3884
3885 // 取消监听音频会话停用事件
3886 OH_AudioCommon_Result resultUnregister =
3887 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
3888 audioSessionManager, MyAudioSessionDeactivatedCallback);
3889 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
3890 napi_create_int32(env, TEST_FAIL, &res);
3891 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
3892 return res;
3893 }
3894
3895 // 停用音频会话
3896 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
3897 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
3898 napi_create_int32(env, TEST_FAIL, &res);
3899 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
3900 return res;
3901 }
3902
3903 napi_create_int32(env, TEST_PASS, &res);
3904 return res;
3905 }
3906
3907
AudioSessionManagerStrategy_004(napi_env env,napi_callback_info info)3908 static napi_value AudioSessionManagerStrategy_004(napi_env env, napi_callback_info info)
3909 {
3910 napi_value res;
3911 OH_AudioSessionManager* audioSessionManager;
3912 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
3913 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
3914 napi_create_int32(env, TEST_FAIL, &res);
3915 LOG("resultManager, result is: %{public}d", TEST_FAIL);
3916 return res;
3917 }
3918 OH_AudioSession_Strategy strategy = {
3919 CONCURRENCY_PAUSE_OTHERS
3920 };
3921
3922 // 设置音频并发模式并激活音频会话
3923 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
3924 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
3925 napi_create_int32(env, TEST_FAIL, &res);
3926 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
3927 return res;
3928 }
3929
3930 // 查询音频会话是否已激活。
3931 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
3932 if (!isActivated) {
3933 napi_create_int32(env, TEST_FAIL, &res);
3934 LOG("isActivated, result is: %{public}d", TEST_FAIL);
3935 return res;
3936 }
3937
3938 // 监听音频会话停用事件
3939 OH_AudioCommon_Result resultRegister =
3940 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
3941 audioSessionManager, MyAudioSessionDeactivatedCallback);
3942 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
3943 napi_create_int32(env, TEST_FAIL, &res);
3944 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
3945 return res;
3946 }
3947 // sleep 1 seconds
3948 Delay(1);
3949
3950 // 取消监听音频会话停用事件
3951 OH_AudioCommon_Result resultUnregister =
3952 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
3953 audioSessionManager, MyAudioSessionDeactivatedCallback);
3954 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
3955 napi_create_int32(env, TEST_FAIL, &res);
3956 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
3957 return res;
3958 }
3959
3960 // 停用音频会话
3961 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
3962 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
3963 napi_create_int32(env, TEST_FAIL, &res);
3964 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
3965 return res;
3966 }
3967
3968 napi_create_int32(env, TEST_PASS, &res);
3969 return res;
3970 }
3971
3972
AudioSessionManagerStrategyError_001(napi_env env,napi_callback_info info)3973 static napi_value AudioSessionManagerStrategyError_001(napi_env env, napi_callback_info info)
3974 {
3975 napi_value res;
3976 OH_AudioSessionManager* audioSessionManager;
3977 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
3978 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
3979 napi_create_int32(env, TEST_FAIL, &res);
3980 LOG("resultManager, result is: %{public}d", TEST_FAIL);
3981 return res;
3982 }
3983 OH_AudioSession_Strategy strategy = {
3984 CONCURRENCY_MIX_WITH_OTHERS
3985 };
3986
3987 // 设置音频并发模式并激活音频会话
3988 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(nullptr, &strategy);
3989 if (resultActivate != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3990 napi_create_int32(env, TEST_FAIL, &res);
3991 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
3992 return res;
3993 }
3994
3995 napi_create_int32(env, TEST_PASS, &res);
3996 return res;
3997 }
3998
3999
AudioSessionManagerActivatedError_001(napi_env env,napi_callback_info info)4000 static napi_value AudioSessionManagerActivatedError_001(napi_env env, napi_callback_info info)
4001 {
4002 napi_value res;
4003 OH_AudioSessionManager* audioSessionManager;
4004 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4005 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4006 napi_create_int32(env, TEST_FAIL, &res);
4007 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4008 return res;
4009 }
4010 OH_AudioSession_Strategy strategy = {
4011 CONCURRENCY_MIX_WITH_OTHERS
4012 };
4013
4014 // 设置音频并发模式并激活音频会话
4015 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4016 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4017 napi_create_int32(env, TEST_FAIL, &res);
4018 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4019 return res;
4020 }
4021
4022 // 查询音频会话是否已激活
4023 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(nullptr);
4024 if (isActivated) {
4025 napi_create_int32(env, TEST_FAIL, &res);
4026 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4027 return res;
4028 }
4029
4030 // 停用音频会话
4031 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4032 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4033 napi_create_int32(env, TEST_FAIL, &res);
4034 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4035 return res;
4036 }
4037
4038 napi_create_int32(env, TEST_PASS, &res);
4039 return res;
4040 }
4041
4042
AudioSessionManagerStopError_001(napi_env env,napi_callback_info info)4043 static napi_value AudioSessionManagerStopError_001(napi_env env, napi_callback_info info)
4044 {
4045 napi_value res;
4046 OH_AudioSessionManager* audioSessionManager;
4047 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4048 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4049 napi_create_int32(env, TEST_FAIL, &res);
4050 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4051 return res;
4052 }
4053 OH_AudioSession_Strategy strategy = {
4054 CONCURRENCY_MIX_WITH_OTHERS
4055 };
4056
4057 // 设置音频并发模式并激活音频会话
4058 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4059 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4060 napi_create_int32(env, TEST_FAIL, &res);
4061 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4062 return res;
4063 }
4064
4065 // 停用音频会话
4066 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(nullptr);
4067 if (resultDeactivate != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
4068 napi_create_int32(env, TEST_FAIL, &res);
4069 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4070 return res;
4071 }
4072
4073 // 停用音频会话
4074 resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4075 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4076 napi_create_int32(env, TEST_FAIL, &res);
4077 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4078 return res;
4079 }
4080
4081 napi_create_int32(env, TEST_PASS, &res);
4082 return res;
4083 }
4084
4085
AudioSessionManagerStopError_002(napi_env env,napi_callback_info info)4086 static napi_value AudioSessionManagerStopError_002(napi_env env, napi_callback_info info)
4087 {
4088 napi_value res;
4089 OH_AudioSessionManager* audioSessionManager;
4090 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4091 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4092 napi_create_int32(env, TEST_FAIL, &res);
4093 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4094 return res;
4095 }
4096 OH_AudioSession_Strategy strategy = {
4097 CONCURRENCY_MIX_WITH_OTHERS
4098 };
4099
4100 // 设置音频并发模式并激活音频会话
4101 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4102 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4103 napi_create_int32(env, TEST_FAIL, &res);
4104 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4105 return res;
4106 }
4107 // 停用音频会话
4108 OH_AudioCommon_Result resultDeactivate1 = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4109 if (resultDeactivate1 != AUDIOCOMMON_RESULT_SUCCESS) {
4110 napi_create_int32(env, TEST_FAIL, &res);
4111 LOG("resultDeactivate1, result is: %{public}d", TEST_FAIL);
4112 return res;
4113 }
4114 // 停用音频会话
4115 OH_AudioCommon_Result resultDeactivate2 = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4116 if (resultDeactivate2 != AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE) {
4117 napi_create_int32(env, TEST_FAIL, &res);
4118 LOG("resultDeactivate2, result is: %{public}d", TEST_FAIL);
4119 return res;
4120 }
4121
4122 napi_create_int32(env, TEST_PASS, &res);
4123 return res;
4124 }
4125
4126
AudioSessionManagerRegisterError_001(napi_env env,napi_callback_info info)4127 static napi_value AudioSessionManagerRegisterError_001(napi_env env, napi_callback_info info)
4128 {
4129 napi_value res;
4130 OH_AudioSessionManager* audioSessionManager;
4131 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4132 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4133 napi_create_int32(env, TEST_FAIL, &res);
4134 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4135 return res;
4136 }
4137 OH_AudioSession_Strategy strategy = {
4138 CONCURRENCY_MIX_WITH_OTHERS
4139 };
4140
4141 // 设置音频并发模式并激活音频会话
4142 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4143 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4144 napi_create_int32(env, TEST_FAIL, &res);
4145 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4146 return res;
4147 }
4148
4149 // 查询音频会话是否已激活。
4150 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4151 if (!isActivated) {
4152 napi_create_int32(env, TEST_FAIL, &res);
4153 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4154 return res;
4155 }
4156
4157 // 监听音频会话停用事件
4158 OH_AudioCommon_Result resultRegister =
4159 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(nullptr, MyAudioSessionDeactivatedCallback);
4160 if (resultRegister != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
4161 napi_create_int32(env, TEST_FAIL, &res);
4162 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4163 return res;
4164 }
4165
4166 // 停用音频会话
4167 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4168 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4169 napi_create_int32(env, TEST_FAIL, &res);
4170 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4171 return res;
4172 }
4173
4174 napi_create_int32(env, TEST_PASS, &res);
4175 return res;
4176 }
4177
4178
AudioSessionManagerRegisterError_002(napi_env env,napi_callback_info info)4179 static napi_value AudioSessionManagerRegisterError_002(napi_env env, napi_callback_info info)
4180 {
4181 napi_value res;
4182 OH_AudioSessionManager* audioSessionManager;
4183 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4184 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4185 napi_create_int32(env, TEST_FAIL, &res);
4186 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4187 return res;
4188 }
4189 OH_AudioSession_Strategy strategy = {
4190 CONCURRENCY_MIX_WITH_OTHERS
4191 };
4192
4193 // 设置音频并发模式并激活音频会话
4194 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4195 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4196 napi_create_int32(env, TEST_FAIL, &res);
4197 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4198 return res;
4199 }
4200
4201 // 查询音频会话是否已激活。
4202 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4203 if (!isActivated) {
4204 napi_create_int32(env, TEST_FAIL, &res);
4205 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4206 return res;
4207 }
4208
4209 // 监听音频会话停用事件
4210 OH_AudioCommon_Result resultRegister =
4211 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(audioSessionManager, nullptr);
4212 if (resultRegister != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
4213 napi_create_int32(env, TEST_FAIL, &res);
4214 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4215 return res;
4216 }
4217
4218 // 停用音频会话
4219 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4220 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4221 napi_create_int32(env, TEST_FAIL, &res);
4222 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4223 return res;
4224 }
4225
4226 napi_create_int32(env, TEST_PASS, &res);
4227 return res;
4228 }
4229
4230
AudioSessionManagerUnregisterError_001(napi_env env,napi_callback_info info)4231 static napi_value AudioSessionManagerUnregisterError_001(napi_env env, napi_callback_info info)
4232 {
4233 napi_value res;
4234 OH_AudioSessionManager* audioSessionManager;
4235 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4236 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4237 napi_create_int32(env, TEST_FAIL, &res);
4238 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4239 return res;
4240 }
4241 OH_AudioSession_Strategy strategy = {
4242 CONCURRENCY_MIX_WITH_OTHERS
4243 };
4244
4245 // 设置音频并发模式并激活音频会话
4246 OH_AudioCommon_Result resultActivate =
4247 OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4248 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4249 napi_create_int32(env, TEST_FAIL, &res);
4250 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4251 return res;
4252 }
4253
4254 // 查询音频会话是否已激活。
4255 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4256 if (!isActivated) {
4257 napi_create_int32(env, TEST_FAIL, &res);
4258 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4259 return res;
4260 }
4261
4262 // 监听音频会话停用事件
4263 OH_AudioCommon_Result resultRegister =
4264 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
4265 audioSessionManager, MyAudioSessionDeactivatedCallback);
4266 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
4267 napi_create_int32(env, TEST_FAIL, &res);
4268 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4269 return res;
4270 }
4271
4272 // 取消监听音频会话停用事件
4273 OH_AudioCommon_Result resultUnregister =
4274 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(nullptr, MyAudioSessionDeactivatedCallback);
4275 if (resultUnregister != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
4276 napi_create_int32(env, TEST_FAIL, &res);
4277 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4278 return res;
4279 }
4280
4281 // 取消监听音频会话停用事件
4282 resultUnregister =
4283 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
4284 audioSessionManager, MyAudioSessionDeactivatedCallback);
4285 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
4286 napi_create_int32(env, TEST_FAIL, &res);
4287 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4288 return res;
4289 }
4290
4291 // 停用音频会话
4292 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4293 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4294 napi_create_int32(env, TEST_FAIL, &res);
4295 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4296 return res;
4297 }
4298
4299 napi_create_int32(env, TEST_PASS, &res);
4300 return res;
4301 }
4302
4303
AudioSessionManagerUnregisterError_002(napi_env env,napi_callback_info info)4304 static napi_value AudioSessionManagerUnregisterError_002(napi_env env, napi_callback_info info)
4305 {
4306 napi_value res;
4307 OH_AudioSessionManager* audioSessionManager;
4308 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4309 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4310 napi_create_int32(env, TEST_FAIL, &res);
4311 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4312 return res;
4313 }
4314 OH_AudioSession_Strategy strategy = {
4315 CONCURRENCY_MIX_WITH_OTHERS
4316 };
4317
4318 // 设置音频并发模式并激活音频会话
4319 OH_AudioCommon_Result resultActivate =
4320 OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4321 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4322 napi_create_int32(env, TEST_FAIL, &res);
4323 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4324 return res;
4325 }
4326
4327 // 查询音频会话是否已激活。
4328 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4329 if (!isActivated) {
4330 napi_create_int32(env, TEST_FAIL, &res);
4331 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4332 return res;
4333 }
4334
4335 // 监听音频会话停用事件
4336 OH_AudioCommon_Result resultRegister =
4337 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
4338 audioSessionManager, MyAudioSessionDeactivatedCallback);
4339 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
4340 napi_create_int32(env, TEST_FAIL, &res);
4341 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4342 return res;
4343 }
4344
4345 // 取消监听音频会话停用事件
4346 OH_AudioCommon_Result resultUnregister =
4347 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(audioSessionManager, nullptr);
4348 if (resultUnregister != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
4349 napi_create_int32(env, TEST_FAIL, &res);
4350 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4351 return res;
4352 }
4353
4354 // 取消监听音频会话停用事件
4355 resultUnregister =
4356 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
4357 audioSessionManager, MyAudioSessionDeactivatedCallback);
4358 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
4359 napi_create_int32(env, TEST_FAIL, &res);
4360 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4361 return res;
4362 }
4363
4364 // 停用音频会话
4365 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4366 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4367 napi_create_int32(env, TEST_FAIL, &res);
4368 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4369 return res;
4370 }
4371
4372 napi_create_int32(env, TEST_PASS, &res);
4373 return res;
4374 }
4375
4376
AudioSessionManagerReason_001(napi_env env,napi_callback_info info)4377 static napi_value AudioSessionManagerReason_001(napi_env env, napi_callback_info info)
4378 {
4379 napi_value res;
4380 OH_AudioSessionManager* audioSessionManager;
4381 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4382 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4383 napi_create_int32(env, TEST_FAIL, &res);
4384 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4385 return res;
4386 }
4387 OH_AudioSession_Strategy strategy = {
4388 CONCURRENCY_MIX_WITH_OTHERS
4389 };
4390
4391 // 设置音频并发模式并激活音频会话
4392 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4393 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4394 napi_create_int32(env, TEST_FAIL, &res);
4395 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4396 return res;
4397 }
4398
4399 // 查询音频会话是否已激活。
4400 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4401 if (!isActivated) {
4402 napi_create_int32(env, TEST_FAIL, &res);
4403 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4404 return res;
4405 }
4406
4407 // create builder
4408 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4409 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
4410 OH_AudioStreamBuilder* builder;
4411 OH_AudioStreamBuilder_Create(&builder, type);
4412 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
4413 OH_AudioRenderer* audioRenderer1;
4414 OH_AudioStream_Result createResult = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer1);
4415 if (createResult != AUDIOSTREAM_SUCCESS) {
4416 napi_create_int32(env, TEST_FAIL, &res);
4417 return res;
4418 }
4419
4420 // create audioRenderer1 audioRenderer2
4421 OH_AudioStreamBuilder* builder2;
4422 OH_AudioStreamBuilder_Create(&builder2, type);
4423 OH_AudioStreamBuilder_SetRendererInfo(builder2, usage);
4424 OH_AudioRenderer* audioRenderer2;
4425 createResult = OH_AudioStreamBuilder_GenerateRenderer(builder2, &audioRenderer2);
4426 if (createResult != AUDIOSTREAM_SUCCESS) {
4427 napi_create_int32(env, TEST_FAIL, &res);
4428 return res;
4429 }
4430
4431 // 监听音频会话停用事件
4432 OH_AudioCommon_Result resultRegister =
4433 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
4434 audioSessionManager, MyAudioSessionDeactivatedCallback);
4435 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
4436 napi_create_int32(env, TEST_FAIL, &res);
4437 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4438 return res;
4439 }
4440
4441 // start
4442 createResult = OH_AudioRenderer_Start(audioRenderer1);
4443 if (createResult != AUDIOSTREAM_SUCCESS) {
4444 napi_create_int32(env, TEST_FAIL, &res);
4445 return res;
4446 }
4447 //sleep 1 seconds
4448 Delay(1);
4449 createResult = OH_AudioRenderer_Start(audioRenderer2);
4450 if (createResult != AUDIOSTREAM_SUCCESS) {
4451 napi_create_int32(env, TEST_FAIL, &res);
4452 return res;
4453 }
4454 //sleep 1 seconds
4455 Delay(1);
4456
4457 // stop and release client
4458 OH_AudioRenderer_Release(audioRenderer2);
4459 OH_AudioRenderer_Release(audioRenderer1);
4460 OH_AudioStreamBuilder_Destroy(builder);
4461 OH_AudioStreamBuilder_Destroy(builder2);
4462 Delay(1);
4463
4464 // 取消监听音频会话停用事件
4465 OH_AudioCommon_Result resultUnregister =
4466 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
4467 audioSessionManager, MyAudioSessionDeactivatedCallback);
4468 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
4469 napi_create_int32(env, TEST_FAIL, &res);
4470 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4471 return res;
4472 }
4473
4474 // 停用音频会话
4475 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4476 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4477 napi_create_int32(env, TEST_FAIL, &res);
4478 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4479 return res;
4480 }
4481
4482 napi_create_int32(env, TEST_PASS, &res);
4483 return res;
4484 }
4485
4486
AudioSessionManagerReason_002(napi_env env,napi_callback_info info)4487 static napi_value AudioSessionManagerReason_002(napi_env env, napi_callback_info info)
4488 {
4489 napi_value res;
4490 OH_AudioSessionManager* audioSessionManager;
4491 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4492 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4493 napi_create_int32(env, TEST_FAIL, &res);
4494 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4495 return res;
4496 }
4497 OH_AudioSession_Strategy strategy = {
4498 CONCURRENCY_MIX_WITH_OTHERS
4499 };
4500
4501 // 设置音频并发模式并激活音频会话
4502 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4503 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4504 napi_create_int32(env, TEST_FAIL, &res);
4505 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4506 return res;
4507 }
4508
4509 // 查询音频会话是否已激活。
4510 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4511 if (!isActivated) {
4512 napi_create_int32(env, TEST_FAIL, &res);
4513 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4514 return res;
4515 }
4516
4517 // create builder
4518 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4519 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
4520 OH_AudioStreamBuilder* builder;
4521 OH_AudioStreamBuilder_Create(&builder, type);
4522 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
4523 OH_AudioRenderer* audioRenderer1;
4524 OH_AudioStream_Result createResult = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer1);
4525 if (createResult != AUDIOSTREAM_SUCCESS) {
4526 napi_create_int32(env, TEST_FAIL, &res);
4527 return res;
4528 }
4529
4530 // 监听音频会话停用事件
4531 OH_AudioCommon_Result resultRegister =
4532 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
4533 audioSessionManager, MyAudioSessionDeactivatedCallback);
4534 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
4535 napi_create_int32(env, TEST_FAIL, &res);
4536 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4537 return res;
4538 }
4539
4540 // start
4541 createResult = OH_AudioRenderer_Start(audioRenderer1);
4542 if (createResult != AUDIOSTREAM_SUCCESS) {
4543 napi_create_int32(env, TEST_FAIL, &res);
4544 return res;
4545 }
4546 Delay(1);
4547 OH_AudioRenderer_Stop(audioRenderer1);
4548 //sleep 65 seconds 创造超时条件
4549 Delay(65);
4550
4551 // release client
4552 OH_AudioRenderer_Release(audioRenderer1);
4553 OH_AudioStreamBuilder_Destroy(builder);
4554
4555 // 取消监听音频会话停用事件
4556 OH_AudioCommon_Result resultUnregister =
4557 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
4558 audioSessionManager, MyAudioSessionDeactivatedCallback);
4559 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
4560 napi_create_int32(env, TEST_FAIL, &res);
4561 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4562 return res;
4563 }
4564
4565 napi_create_int32(env, TEST_PASS, &res);
4566 return res;
4567 }
4568
AudioRendererSetDefaultOutputDevice_01(napi_env env,napi_callback_info info)4569 static napi_value AudioRendererSetDefaultOutputDevice_01(napi_env env, napi_callback_info info)
4570 {
4571 napi_value res;
4572 OH_AudioStreamBuilder* builder;
4573 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4574 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_VOICE_COMMUNICATION;
4575 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_WIRED_HEADSET;
4576 OH_AudioStreamBuilder_Create(&builder, type);
4577
4578 // 2. set builder params
4579 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
4580
4581 OH_AudioRenderer_Callbacks callbacks;
4582 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
4583 OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
4584
4585 // 3. generate audiorenderer
4586 OH_AudioRenderer* audioRenderer;
4587 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
4588 if (result != AUDIOSTREAM_SUCCESS) {
4589 napi_create_int32(env, TEST_FAIL, &res);
4590 return res;
4591 }
4592
4593 // 4. start
4594 result = OH_AudioRenderer_Start(audioRenderer);
4595 if (result != AUDIOSTREAM_SUCCESS) {
4596 napi_create_int32(env, TEST_FAIL, &res);
4597 return res;
4598 }
4599
4600 // 5. OH_AudioRenderer_SetDefaultOutputDevice
4601 result = OH_AudioRenderer_SetDefaultOutputDevice(audioRenderer, deviceType);
4602 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
4603 napi_create_int32(env, TEST_FAIL, &res);
4604 } else {
4605 napi_create_int32(env, TEST_PASS, &res);
4606 }
4607
4608 OH_AudioRenderer_Release(audioRenderer);
4609 OH_AudioStreamBuilder_Destroy(builder);
4610 return res;
4611 }
4612
AudioRendererSetDefaultOutputDevice_02(napi_env env,napi_callback_info info)4613 static napi_value AudioRendererSetDefaultOutputDevice_02(napi_env env, napi_callback_info info)
4614 {
4615 napi_value res;
4616 OH_AudioStreamBuilder* builder;
4617 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4618 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
4619 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_SPEAKER;
4620 OH_AudioStreamBuilder_Create(&builder, type);
4621
4622 // 2. set builder params
4623 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
4624
4625 OH_AudioRenderer_Callbacks callbacks;
4626 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
4627 OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
4628
4629 // 3. generate audiorenderer
4630 OH_AudioRenderer* audioRenderer;
4631 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
4632 if (result != AUDIOSTREAM_SUCCESS) {
4633 napi_create_int32(env, TEST_FAIL, &res);
4634 return res;
4635 }
4636
4637 // 4. start
4638 result = OH_AudioRenderer_Start(audioRenderer);
4639 if (result != AUDIOSTREAM_SUCCESS) {
4640 napi_create_int32(env, TEST_FAIL, &res);
4641 return res;
4642 }
4643
4644 // 5. OH_AudioRenderer_SetDefaultOutputDevice
4645 result = OH_AudioRenderer_SetDefaultOutputDevice(audioRenderer, deviceType);
4646 if (result != AUDIOSTREAM_ERROR_ILLEGAL_STATE) {
4647 napi_create_int32(env, TEST_FAIL, &res);
4648 } else {
4649 napi_create_int32(env, TEST_PASS, &res);
4650 }
4651
4652 OH_AudioRenderer_Release(audioRenderer);
4653 OH_AudioStreamBuilder_Destroy(builder);
4654 return res;
4655 }
4656
AudioRendererSetDefaultOutputDevice_03(napi_env env,napi_callback_info info)4657 static napi_value AudioRendererSetDefaultOutputDevice_03(napi_env env, napi_callback_info info)
4658 {
4659 napi_value res;
4660 OH_AudioStreamBuilder* builder;
4661 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4662 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_VOICE_COMMUNICATION;
4663 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_SPEAKER;
4664 OH_AudioStreamBuilder_Create(&builder, type);
4665
4666 // 2. set builder params
4667 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
4668
4669 OH_AudioRenderer_Callbacks callbacks;
4670 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
4671 OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
4672
4673 // 3. generate audiorenderer
4674 OH_AudioRenderer* audioRenderer;
4675 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
4676 if (result != AUDIOSTREAM_SUCCESS) {
4677 napi_create_int32(env, TEST_FAIL, &res);
4678 return res;
4679 }
4680
4681 // 4. start
4682 result = OH_AudioRenderer_Start(audioRenderer);
4683 if (result != AUDIOSTREAM_SUCCESS) {
4684 napi_create_int32(env, TEST_FAIL, &res);
4685 return res;
4686 }
4687
4688 // 5. OH_AudioRenderer_SetDefaultOutputDevice
4689 result = OH_AudioRenderer_SetDefaultOutputDevice(nullptr, deviceType);
4690 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
4691 napi_create_int32(env, TEST_FAIL, &res);
4692 } else {
4693 napi_create_int32(env, TEST_PASS, &res);
4694 }
4695
4696 OH_AudioRenderer_Release(audioRenderer);
4697 OH_AudioStreamBuilder_Destroy(builder);
4698 return res;
4699 }
4700
Add(napi_env env,napi_callback_info info)4701 static napi_value Add(napi_env env, napi_callback_info info)
4702 {
4703 size_t requireArgc = 2;
4704 size_t argc = 2;
4705 napi_value args[2] = {nullptr};
4706
4707 napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
4708
4709 napi_valuetype valuetype0;
4710 napi_typeof(env, args[0], &valuetype0);
4711
4712 napi_valuetype valuetype1;
4713 napi_typeof(env, args[1], &valuetype1);
4714
4715 double value0;
4716 napi_get_value_double(env, args[0], &value0);
4717
4718 double value1;
4719 napi_get_value_double(env, args[1], &value1);
4720
4721 napi_value sum;
4722 napi_create_double(env, value0 + value1, &sum);
4723
4724 return sum;
4725 }
4726
4727 EXTERN_C_START
4728 napi_property_descriptor desc1[] = {
4729 {"createAudioStreamBuilder", nullptr, CreateAudioStreamBuilder, nullptr, nullptr, nullptr, napi_default, nullptr},
4730 {"audioCaptureGenerate", nullptr, AudioCaptureGenerate, nullptr, nullptr, nullptr, napi_default, nullptr},
4731 {"audioCaptureGenerateErr", nullptr, AudioCaptureGenerateErr,
4732 nullptr, nullptr, nullptr, napi_default, nullptr},
4733 {"audioCaptureStart", nullptr, AudioCaptureStart, nullptr, nullptr, nullptr, napi_default, nullptr},
4734 {"audioCaptureStartErr", nullptr, AudioCaptureStartErr, nullptr, nullptr, nullptr, napi_default, nullptr},
4735 {"audioCapturePause", nullptr, AudioCapturePause, nullptr, nullptr, nullptr, napi_default, nullptr},
4736 {"audioCapturePauseErr", nullptr, AudioCapturePauseErr, nullptr, nullptr, nullptr, napi_default, nullptr},
4737 {"audioCaptureStop", nullptr, AudioCaptureStop, nullptr, nullptr, nullptr, napi_default, nullptr},
4738 {"audioCaptureStopErr", nullptr, AudioCaptureStopErr, nullptr, nullptr, nullptr, napi_default, nullptr},
4739 {"audioCaptureFlush", nullptr, AudioCaptureFlush, nullptr, nullptr, nullptr, napi_default, nullptr},
4740 {"audioCaptureFlushErr", nullptr, AudioCaptureFlushErr, nullptr, nullptr, nullptr, napi_default, nullptr},
4741 {"audioCaptureRelease", nullptr, AudioCaptureRelease, nullptr, nullptr, nullptr, napi_default, nullptr},
4742 {"audioCaptureReleaseErr", nullptr, AudioCaptureReleaseErr, nullptr, nullptr, nullptr, napi_default, nullptr},
4743 {"audioCaptureGetParameter", nullptr, AudioCaptureGetParameter,
4744 nullptr, nullptr, nullptr, napi_default, nullptr},
4745 {"audioCaptureGetCurrentState", nullptr, AudioCaptureGetCurrentState,
4746 nullptr, nullptr, nullptr, napi_default, nullptr},
4747 {"audioCaptureGetStreamId", nullptr, AudioCaptureGetStreamId,
4748 nullptr, nullptr, nullptr, napi_default, nullptr},
4749 {"audioCaptureGetSamplingRate", nullptr, AudioCaptureGetSamplingRate,
4750 nullptr, nullptr, nullptr, napi_default, nullptr},
4751 {"audioCaptureGetSampleFormat", nullptr, AudioCaptureGetSampleFormat,
4752 nullptr, nullptr, nullptr, napi_default, nullptr},
4753 {"audioCaptureGetEncodingType", nullptr, AudioCaptureGetEncodingType,
4754 nullptr, nullptr, nullptr, napi_default, nullptr},
4755 {"audioCaptureGetCapturerInfo", nullptr, AudioCaptureGetCapturerInfo,
4756 nullptr, nullptr, nullptr, napi_default, nullptr},
4757 {"audioCaptureGetTimestamp", nullptr, AudioCaptureGetTimestamp,
4758 nullptr, nullptr, nullptr, napi_default, nullptr},
4759 {"audioCaptureGetFramesRead", nullptr, AudioCaptureGetFramesRead,
4760 nullptr, nullptr, nullptr, napi_default, nullptr},
4761 {"audioCaptureGetFrameSizeInCallback", nullptr, AudioCaptureGetFrameSizeInCallback,
4762 nullptr, nullptr, nullptr, napi_default, nullptr},
4763 {"audioRendererSetSpeed", nullptr, AudioRendererSetSpeed,
4764 nullptr, nullptr, nullptr, napi_default, nullptr},
4765 {"audioRendererGetSpeed", nullptr, AudioRendererGetSpeed,
4766 nullptr, nullptr, nullptr, napi_default, nullptr},
4767 {"audioRendererSetGetSpeed", nullptr, AudioRendererSetGetSpeed,
4768 nullptr, nullptr, nullptr, napi_default, nullptr},
4769 {"audioSetRendererOutputDeviceChangeCallback", nullptr, AudioSetRendererOutputDeviceChangeCallback,
4770 nullptr, nullptr, nullptr, napi_default, nullptr},
4771 {"audioRenderGetFramesWritten", nullptr, AudioRenderGetFramesWritten,
4772 nullptr, nullptr, nullptr, napi_default, nullptr},
4773 {"audioRenderGetTimestamp", nullptr, AudioRenderGetTimestamp,
4774 nullptr, nullptr, nullptr, napi_default, nullptr},
4775 {"audioRenderGetFrameSizeInCallback", nullptr, AudioRenderGetFrameSizeInCallback,
4776 nullptr, nullptr, nullptr, napi_default, nullptr},
4777 {"audioRenderGenerate", nullptr, AudioRenderGenerate, nullptr, nullptr, nullptr, napi_default, nullptr},
4778 {"audioRenderGenerateErr", nullptr, AudioRenderGenerateErr, nullptr, nullptr, nullptr, napi_default, nullptr},
4779 {"audioRenderStart", nullptr, AudioRenderStart, nullptr, nullptr, nullptr, napi_default, nullptr},
4780 {"audioRenderStartErr", nullptr, AudioRenderStartErr, nullptr, nullptr, nullptr, napi_default, nullptr},
4781 {"audioRenderPause", nullptr, AudioRenderPause, nullptr, nullptr, nullptr, napi_default, nullptr},
4782 {"audioRenderPauseErr", nullptr, AudioRenderPauseErr, nullptr, nullptr, nullptr, napi_default, nullptr},
4783 {"audioRenderStop", nullptr, AudioRenderStop, nullptr, nullptr, nullptr, napi_default, nullptr},
4784 {"audioRenderStopErr", nullptr, AudioRenderStopErr, nullptr, nullptr, nullptr, napi_default, nullptr},
4785 {"audioRenderFlush", nullptr, AudioRenderFlush, nullptr, nullptr, nullptr, napi_default, nullptr},
4786 {"audioRenderFlushErr", nullptr, AudioRenderFlushErr, nullptr, nullptr, nullptr, napi_default, nullptr},
4787 {"audioRenderRelease", nullptr, AudioRenderRelease, nullptr, nullptr, nullptr, napi_default, nullptr},
4788 {"audioRenderReleaseErr", nullptr, AudioRenderReleaseErr, nullptr, nullptr, nullptr, napi_default, nullptr},
4789 {"audioRenderGetCurrentState", nullptr, AudioRenderGetCurrentState,
4790 nullptr, nullptr, nullptr, napi_default, nullptr},
4791 {"audioRenderGetParameter", nullptr, AudioRenderGetParameter,
4792 nullptr, nullptr, nullptr, napi_default, nullptr},
4793 {"audioRenderGetStreamId", nullptr, AudioRenderGetStreamId, nullptr, nullptr, nullptr, napi_default, nullptr},
4794 {"audioRenderGetSamplingRate", nullptr, AudioRenderGetSamplingRate,
4795 nullptr, nullptr, nullptr, napi_default, nullptr},
4796 {"audioRenderGetSampleFormat", nullptr, AudioRenderGetSampleFormat,
4797 nullptr, nullptr, nullptr, napi_default, nullptr},
4798 {"audioRenderGetEncodingType", nullptr, AudioRenderGetEncodingType,
4799 nullptr, nullptr, nullptr, napi_default, nullptr},
4800 {"audioRenderGetRendererInfo", nullptr, AudioRenderGetRendererInfo,
4801 nullptr, nullptr, nullptr, napi_default, nullptr},
4802 {"audioStreamBuilderSetSamplingRate", nullptr, AudioStreamBuilderSetSamplingRate,
4803 nullptr, nullptr, nullptr, napi_default, nullptr},
4804 {"audioStreamBuilderSetChannelCount", nullptr, AudioStreamBuilderSetChannelCount,
4805 nullptr, nullptr, nullptr, napi_default, nullptr},
4806 {"audioStreamBuilderSetSampleFormat", nullptr, AudioStreamBuilderSetSampleFormat,
4807 nullptr, nullptr, nullptr, napi_default, nullptr},
4808 {"audioStreamBuilderSetEncodingType", nullptr, AudioStreamBuilderSetEncodingType,
4809 nullptr, nullptr, nullptr, napi_default, nullptr},
4810 {"audioStreamBuilderSetLatencyMode", nullptr, AudioStreamBuilderSetLatencyMode,
4811 nullptr, nullptr, nullptr, napi_default, nullptr},
4812 {"audioStreamBuilderSetRendererInfo", nullptr, AudioStreamBuilderSetRendererInfo,
4813 nullptr, nullptr, nullptr, napi_default, nullptr},
4814 {"audioStreamBuilderSetCapturerInfo", nullptr, AudioStreamBuilderSetCapturerInfo,
4815 nullptr, nullptr, nullptr, napi_default, nullptr},
4816 {"audioStreamBuilderSetRendererCallback", nullptr, AudioStreamBuilderSetRendererCallback,
4817 nullptr, nullptr, nullptr, napi_default, nullptr},
4818 {"audioStreamBuilderSetCapturerCallback", nullptr, AudioStreamBuilderSetCapturerCallback,
4819 nullptr, nullptr, nullptr, napi_default, nullptr},
4820 {"audioCaptureGetChannelCount", nullptr, AudioCaptureGetChannelCount,
4821 nullptr, nullptr, nullptr, napi_default, nullptr},
4822 {"audioRenderGetChannelCount", nullptr, AudioRenderGetChannelCount,
4823 nullptr, nullptr, nullptr, napi_default, nullptr},
4824 {"audioStreamBuilderSetFrameSizeInCallback", nullptr, AudioStreamBuilderSetFrameSizeInCallback,
4825 nullptr, nullptr, nullptr, napi_default, nullptr},
4826 {"audioRendererGetVolume_01", nullptr, AudioRendererGetVolume_01,
4827 nullptr, nullptr, nullptr, napi_default, nullptr},
4828 {"audioRendererSetVolume_01", nullptr, AudioRendererSetVolume_01,
4829 nullptr, nullptr, nullptr, napi_default, nullptr},
4830 {"audioRendererSetVolume_02", nullptr, AudioRendererSetVolume_02,
4831 nullptr, nullptr, nullptr, napi_default, nullptr},
4832 {"audioRendererSetVolume_03", nullptr, AudioRendererSetVolume_03,
4833 nullptr, nullptr, nullptr, napi_default, nullptr},
4834 {"audioRendererSetVolume_04", nullptr, AudioRendererSetVolume_04,
4835 nullptr, nullptr, nullptr, napi_default, nullptr},
4836 {"audioRendererSetVolume_05", nullptr, AudioRendererSetVolume_05,
4837 nullptr, nullptr, nullptr, napi_default, nullptr},
4838 {"audioRendererSetVolume_06", nullptr, AudioRendererSetVolume_06,
4839 nullptr, nullptr, nullptr, napi_default, nullptr},
4840 {"audioRendererSetVolumeWithRamp_01", nullptr, AudioRendererSetVolumeWithRamp_01,
4841 nullptr, nullptr, nullptr, napi_default, nullptr},
4842 {"audioRendererSetVolumeWithRamp_02", nullptr, AudioRendererSetVolumeWithRamp_02,
4843 nullptr, nullptr, nullptr, napi_default, nullptr},
4844 {"audioRendererSetVolumeWithRamp_03", nullptr, AudioRendererSetVolumeWithRamp_03,
4845 nullptr, nullptr, nullptr, napi_default, nullptr},
4846 {"audioRendererSetVolumeWithRamp_04", nullptr, AudioRendererSetVolumeWithRamp_04,
4847 nullptr, nullptr, nullptr, napi_default, nullptr},
4848 {"audioRendererSetVolumeWithRamp_05", nullptr, AudioRendererSetVolumeWithRamp_05,
4849 nullptr, nullptr, nullptr, napi_default, nullptr},
4850 {"audioRendererSetVolumeWithRamp_06", nullptr, AudioRendererSetVolumeWithRamp_06,
4851 nullptr, nullptr, nullptr, napi_default, nullptr},
4852 {"audioRendererSetVolumeWithRamp_07", nullptr, AudioRendererSetVolumeWithRamp_07,
4853 nullptr, nullptr, nullptr, napi_default, nullptr},
4854 {"audioRendererSetVolumeWithRamp_08", nullptr, AudioRendererSetVolumeWithRamp_08,
4855 nullptr, nullptr, nullptr, napi_default, nullptr},
4856 {"audioRendererSetVolumeWithRamp_09", nullptr, AudioRendererSetVolumeWithRamp_09,
4857 nullptr, nullptr, nullptr, napi_default, nullptr},
4858 {"audioRendererSetOnMarkReached_01", nullptr, AudioRendererSetOnMarkReached_01,
4859 nullptr, nullptr, nullptr, napi_default, nullptr},
4860 {"audioRendererSetOnMarkReached_02", nullptr, AudioRendererSetOnMarkReached_02,
4861 nullptr, nullptr, nullptr, napi_default, nullptr},
4862 {"audioRendererSetOnMarkReached_03", nullptr, AudioRendererSetOnMarkReached_03,
4863 nullptr, nullptr, nullptr, napi_default, nullptr},
4864 {"audioRendererSetOnMarkReached_04", nullptr, AudioRendererSetOnMarkReached_04,
4865 nullptr, nullptr, nullptr, napi_default, nullptr},
4866 {"audioRendererSetOnMarkReached_05", nullptr, AudioRendererSetOnMarkReached_05,
4867 nullptr, nullptr, nullptr, napi_default, nullptr},
4868 {"audioRendererSetOnMarkReached_06", nullptr, AudioRendererSetOnMarkReached_06,
4869 nullptr, nullptr, nullptr, napi_default, nullptr},
4870 {"audioRendererSetOnMarkReached_07", nullptr, AudioRendererSetOnMarkReached_07,
4871 nullptr, nullptr, nullptr, napi_default, nullptr},
4872 {"audioRendererSetOnMarkReached_08", nullptr, AudioRendererSetOnMarkReached_08,
4873 nullptr, nullptr, nullptr, napi_default, nullptr},
4874 {"audioRendererCancelMark_01", nullptr, AudioRendererCancelMark_01,
4875 nullptr, nullptr, nullptr, napi_default, nullptr},
4876 {"audioRendererCancelMark_02", nullptr, AudioRendererCancelMark_02,
4877 nullptr, nullptr, nullptr, napi_default, nullptr},
4878 {"audioRendererCancelMark_03", nullptr, AudioRendererCancelMark_03,
4879 nullptr, nullptr, nullptr, napi_default, nullptr},
4880 {"audioRendererSetInterruptMode_01", nullptr, AudioRendererSetInterruptMode_01,
4881 nullptr, nullptr, nullptr, napi_default, nullptr},
4882 {"audioRendererSetInterruptMode_02", nullptr, AudioRendererSetInterruptMode_02,
4883 nullptr, nullptr, nullptr, napi_default, nullptr},
4884 {"audioRendererSetInterruptMode_03", nullptr, AudioRendererSetInterruptMode_03,
4885 nullptr, nullptr, nullptr, napi_default, nullptr},
4886 {"audioRendererSetInterruptMode_04", nullptr, AudioRendererSetInterruptMode_04,
4887 nullptr, nullptr, nullptr, napi_default, nullptr},
4888 {"audioManagerGetAudioRoutingManager_01", nullptr, AudioManagerGetAudioRoutingManager_01,
4889 nullptr, nullptr, nullptr, napi_default, nullptr},
4890 {"audioRoutingManagerGetDevices_01", nullptr, AudioRoutingManagerGetDevices_01,
4891 nullptr, nullptr, nullptr, napi_default, nullptr},
4892 {"audioRoutingManagerGetDevices_02", nullptr, AudioRoutingManagerGetDevices_02,
4893 nullptr, nullptr, nullptr, napi_default, nullptr},
4894 {"audioRoutingManagerGetDevices_03", nullptr, AudioRoutingManagerGetDevices_03,
4895 nullptr, nullptr, nullptr, napi_default, nullptr},
4896 {"audioRoutingManagerGetDevices_04", nullptr, AudioRoutingManagerGetDevices_04,
4897 nullptr, nullptr, nullptr, napi_default, nullptr},
4898 {"audioRoutingManagerGetDevices_05", nullptr, AudioRoutingManagerGetDevices_05,
4899 nullptr, nullptr, nullptr, napi_default, nullptr},
4900 {"audioRoutingManagerGetDevices_06", nullptr, AudioRoutingManagerGetDevices_06,
4901 nullptr, nullptr, nullptr, napi_default, nullptr},
4902 {"audioRoutingManagerGetDevices_07", nullptr, AudioRoutingManagerGetDevices_07,
4903 nullptr, nullptr, nullptr, napi_default, nullptr},
4904 {"audioManagerGetManager_01", nullptr, AudioManagerGetManager_01, nullptr, nullptr, nullptr, napi_default,
4905 nullptr},
4906 {"audioManagerGetManager_02", nullptr, AudioManagerGetManager_02, nullptr, nullptr, nullptr, napi_default,
4907 nullptr},
4908 {"audioManagerGetAudioScene_01", nullptr, AudioManagerGetAudioScene_01, nullptr, nullptr, nullptr, napi_default,
4909 nullptr}
4910 };
4911 napi_property_descriptor desc2[] = {
4912 {"audioManagerGetAudioScene_02", nullptr, AudioManagerGetAudioScene_02, nullptr, nullptr, nullptr, napi_default,
4913 nullptr},
4914 {"audioRoutingManagerGetAvailableDevices001", nullptr, AudioRoutingManagerGetAvailableDevices001, nullptr,
4915 nullptr, nullptr, napi_default, nullptr},
4916 {"audioRoutingManagerGetPreferredOutputDevice001", nullptr, AudioRoutingManagerGetPreferredOutputDevice001,
4917 nullptr, nullptr, nullptr, napi_default, nullptr},
4918 {"audioRoutingManagerGetPreferredInputDevice001", nullptr, AudioRoutingManagerGetPreferredInputDevice001,
4919 nullptr, nullptr, nullptr, napi_default, nullptr},
4920 {"audioRoutingManagerSetMicBlockStatusCallback_001", nullptr,
4921 AudioRoutingManagerSetMicBlockStatusCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
4922 {"audioRoutingManagerSetMicBlockStatusCallback_002", nullptr,
4923 AudioRoutingManagerSetMicBlockStatusCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
4924 {"audioRoutingManagerRegisterDeviceChangeCallback_001", nullptr,
4925 AudioRoutingManagerRegisterDeviceChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
4926 {"audioRoutingManagerRegisterDeviceChangeCallback_002", nullptr,
4927 AudioRoutingManagerRegisterDeviceChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
4928 {"audioRoutingManagerRegisterDeviceChangeCallback_003", nullptr,
4929 AudioRoutingManagerRegisterDeviceChangeCallback_003, nullptr, nullptr, nullptr, napi_default, nullptr},
4930 {"audioRoutingManagerRegisterDeviceChangeCallback_004", nullptr,
4931 AudioRoutingManagerRegisterDeviceChangeCallback_004, nullptr, nullptr, nullptr, napi_default, nullptr},
4932 {"audioRoutingManagerRegisterDeviceChangeCallback_005", nullptr,
4933 AudioRoutingManagerRegisterDeviceChangeCallback_005, nullptr, nullptr, nullptr, napi_default, nullptr},
4934 {"audioRoutingManagerRegisterDeviceChangeCallback_006", nullptr,
4935 AudioRoutingManagerRegisterDeviceChangeCallback_006, nullptr, nullptr, nullptr, napi_default, nullptr},
4936 {"audioRoutingManagerRegisterDeviceChangeCallback_007", nullptr,
4937 AudioRoutingManagerRegisterDeviceChangeCallback_007, nullptr, nullptr, nullptr, napi_default, nullptr},
4938 {"audioRoutingManagerRegisterDeviceChangeCallback_008", nullptr,
4939 AudioRoutingManagerRegisterDeviceChangeCallback_008, nullptr, nullptr, nullptr, napi_default, nullptr},
4940 {"audioRoutingManagerUnregisterDeviceChangeCallback_001", nullptr,
4941 AudioRoutingManagerUnregisterDeviceChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
4942 {"audioRoutingManagerUnregisterDeviceChangeCallback_002", nullptr,
4943 AudioRoutingManagerUnregisterDeviceChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
4944 {"audioRoutingManagerUnregisterDeviceChangeCallback_003", nullptr,
4945 AudioRoutingManagerUnregisterDeviceChangeCallback_003, nullptr, nullptr, nullptr, napi_default, nullptr},
4946 {"audioRoutingManagerReleaseDevices_001", nullptr, AudioRoutingManagerReleaseDevices_001,
4947 nullptr, nullptr, nullptr, napi_default, nullptr},
4948 {"audioRoutingManagerReleaseDevices_002", nullptr, AudioRoutingManagerReleaseDevices_002,
4949 nullptr, nullptr, nullptr, napi_default, nullptr},
4950 {"audioAudioDeviceDescriptorGetDeviceType_001", nullptr, AudioAudioDeviceDescriptorGetDeviceType_001,
4951 nullptr, nullptr, nullptr, napi_default, nullptr},
4952 {"audioAudioDeviceDescriptorGetDeviceType_002", nullptr, AudioAudioDeviceDescriptorGetDeviceType_002,
4953 nullptr, nullptr, nullptr, napi_default, nullptr},
4954 {"audioAudioDeviceDescriptorGetDeviceType_003", nullptr, AudioAudioDeviceDescriptorGetDeviceType_003,
4955 nullptr, nullptr, nullptr, napi_default, nullptr},
4956 {"audioAudioDeviceDescriptorGetDeviceRole_001", nullptr, AudioAudioDeviceDescriptorGetDeviceRole_001,
4957 nullptr, nullptr, nullptr, napi_default, nullptr},
4958 {"audioAudioDeviceDescriptorGetDeviceRole_002", nullptr, AudioAudioDeviceDescriptorGetDeviceRole_002,
4959 nullptr, nullptr, nullptr, napi_default, nullptr},
4960 {"audioAudioDeviceDescriptorGetDeviceRole_003", nullptr, AudioAudioDeviceDescriptorGetDeviceRole_003,
4961 nullptr, nullptr, nullptr, napi_default, nullptr},
4962 {"audioAudioDeviceDescriptorGetDeviceId_001", nullptr, AudioAudioDeviceDescriptorGetDeviceId_001,
4963 nullptr, nullptr, nullptr, napi_default, nullptr},
4964 {"audioAudioDeviceDescriptorGetDeviceId_002", nullptr, AudioAudioDeviceDescriptorGetDeviceId_002,
4965 nullptr, nullptr, nullptr, napi_default, nullptr},
4966 {"audioAudioDeviceDescriptorGetDeviceId_003", nullptr, AudioAudioDeviceDescriptorGetDeviceId_003,
4967 nullptr, nullptr, nullptr, napi_default, nullptr},
4968 {"audioAudioDeviceDescriptorGetDeviceName_001", nullptr, AudioAudioDeviceDescriptorGetDeviceName_001,
4969 nullptr, nullptr, nullptr, napi_default, nullptr},
4970 {"audioAudioDeviceDescriptorGetDeviceName_002", nullptr, AudioAudioDeviceDescriptorGetDeviceName_002,
4971 nullptr, nullptr, nullptr, napi_default, nullptr},
4972 {"audioAudioDeviceDescriptorGetDeviceName_003", nullptr, AudioAudioDeviceDescriptorGetDeviceName_003,
4973 nullptr, nullptr, nullptr, napi_default, nullptr},
4974 {"audioAudioDeviceDescriptorGetDeviceAddress_001", nullptr, AudioAudioDeviceDescriptorGetDeviceAddress_001,
4975 nullptr, nullptr, nullptr, napi_default, nullptr},
4976 {"audioAudioDeviceDescriptorGetDeviceAddress_002", nullptr, AudioAudioDeviceDescriptorGetDeviceAddress_002,
4977 nullptr, nullptr, nullptr, napi_default, nullptr},
4978 {"audioAudioDeviceDescriptorGetDeviceAddress_003", nullptr, AudioAudioDeviceDescriptorGetDeviceAddress_003,
4979 nullptr, nullptr, nullptr, napi_default, nullptr},
4980 {"audioAudioDeviceDescriptorGetDeviceSampleRates_001", nullptr,
4981 AudioAudioDeviceDescriptorGetDeviceSampleRates_001, nullptr, nullptr, nullptr, napi_default, nullptr},
4982 {"audioAudioDeviceDescriptorGetDeviceSampleRates_002", nullptr,
4983 AudioAudioDeviceDescriptorGetDeviceSampleRates_002, nullptr, nullptr, nullptr, napi_default, nullptr},
4984 {"audioAudioDeviceDescriptorGetDeviceSampleRates_003", nullptr,
4985 AudioAudioDeviceDescriptorGetDeviceSampleRates_003, nullptr, nullptr, nullptr, napi_default, nullptr},
4986 {"audioAudioDeviceDescriptorGetDeviceSampleRates_004", nullptr,
4987 AudioAudioDeviceDescriptorGetDeviceSampleRates_004, nullptr, nullptr, nullptr, napi_default, nullptr},
4988 {"audioAudioDeviceDescriptorGetDeviceChannelCounts_001", nullptr,
4989 AudioAudioDeviceDescriptorGetDeviceChannelCounts_001, nullptr, nullptr, nullptr, napi_default, nullptr},
4990 {"audioAudioDeviceDescriptorGetDeviceChannelCounts_002", nullptr,
4991 AudioAudioDeviceDescriptorGetDeviceChannelCounts_002, nullptr, nullptr, nullptr, napi_default, nullptr},
4992 {"audioAudioDeviceDescriptorGetDeviceChannelCounts_003", nullptr,
4993 AudioAudioDeviceDescriptorGetDeviceChannelCounts_003, nullptr, nullptr, nullptr, napi_default, nullptr},
4994 {"audioAudioDeviceDescriptorGetDeviceChannelCounts_004", nullptr,
4995 AudioAudioDeviceDescriptorGetDeviceChannelCounts_004, nullptr, nullptr, nullptr, napi_default, nullptr},
4996 {"audioAudioDeviceDescriptorGetDeviceDisplayName_001", nullptr,
4997 AudioAudioDeviceDescriptorGetDeviceDisplayName_001, nullptr, nullptr, nullptr, napi_default, nullptr},
4998 {"audioAudioDeviceDescriptorGetDeviceDisplayName_002", nullptr,
4999 AudioAudioDeviceDescriptorGetDeviceDisplayName_002, nullptr, nullptr, nullptr, napi_default, nullptr},
5000 {"audioAudioDeviceDescriptorGetDeviceDisplayName_003", nullptr,
5001 AudioAudioDeviceDescriptorGetDeviceDisplayName_003, nullptr, nullptr, nullptr, napi_default, nullptr},
5002 {"audioAudioDeviceDescriptorGetDeviceEncodingTypes_001", nullptr,
5003 AudioAudioDeviceDescriptorGetDeviceEncodingTypes_001, nullptr, nullptr, nullptr, napi_default, nullptr},
5004 {"audioAudioDeviceDescriptorGetDeviceEncodingTypes_002", nullptr,
5005 AudioAudioDeviceDescriptorGetDeviceEncodingTypes_002, nullptr, nullptr, nullptr, napi_default, nullptr},
5006 {"audioAudioDeviceDescriptorGetDeviceEncodingTypes_003", nullptr,
5007 AudioAudioDeviceDescriptorGetDeviceEncodingTypes_003, nullptr, nullptr, nullptr, napi_default, nullptr},
5008 {"audioAudioDeviceDescriptorGetDeviceEncodingTypes_004", nullptr,
5009 AudioAudioDeviceDescriptorGetDeviceEncodingTypes_004, nullptr, nullptr, nullptr, napi_default, nullptr},
5010 {"audioAudioInternalRecordingSuccess01", nullptr,
5011 AudioAudioInternalRecordingSuccess01, nullptr, nullptr, nullptr, napi_default, nullptr},
5012 {"audioAudioInternalRecordingSuccess02", nullptr,
5013 AudioAudioInternalRecordingSuccess02, nullptr, nullptr, nullptr, napi_default, nullptr},
5014 {"audioAudioInternalRecordingFalse", nullptr,
5015 AudioAudioInternalRecordingFalse, nullptr, nullptr, nullptr, napi_default, nullptr},
5016 {"audioStreamBuilderSetRendererWriteDataCallback_001", nullptr,
5017 AudioStreamBuilderSetRendererWriteDataCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
5018 {"audioStreamBuilderSetRendererWriteDataCallback_002", nullptr,
5019 AudioStreamBuilderSetRendererWriteDataCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
5020 {"audioCapturerGetOverflowCount_001", nullptr,
5021 audioCapturerGetOverflowCount_001, nullptr, nullptr, nullptr, napi_default, nullptr},
5022 {"AudioSessionManagerStrategy_001", nullptr,
5023 AudioSessionManagerStrategy_001, nullptr, nullptr, nullptr, napi_default, nullptr},
5024 {"AudioSessionManagerStrategy_002", nullptr,
5025 AudioSessionManagerStrategy_002, nullptr, nullptr, nullptr, napi_default, nullptr},
5026 {"AudioSessionManagerStrategy_003", nullptr,
5027 AudioSessionManagerStrategy_003, nullptr, nullptr, nullptr, napi_default, nullptr},
5028 {"AudioSessionManagerStrategy_004", nullptr,
5029 AudioSessionManagerStrategy_004, nullptr, nullptr, nullptr, napi_default, nullptr},
5030 {"AudioSessionManagerStrategyError_001", nullptr,
5031 AudioSessionManagerStrategyError_001, nullptr, nullptr, nullptr, napi_default, nullptr},
5032 {"AudioSessionManagerActivatedError_001", nullptr,
5033 AudioSessionManagerActivatedError_001, nullptr, nullptr, nullptr, napi_default, nullptr},
5034 {"AudioSessionManagerStopError_001", nullptr,
5035 AudioSessionManagerStopError_001, nullptr, nullptr, nullptr, napi_default, nullptr},
5036 {"AudioSessionManagerStopError_002", nullptr,
5037 AudioSessionManagerStopError_002, nullptr, nullptr, nullptr, napi_default, nullptr},
5038 {"AudioSessionManagerRegisterError_001", nullptr,
5039 AudioSessionManagerRegisterError_001, nullptr, nullptr, nullptr, napi_default, nullptr},
5040 {"AudioSessionManagerRegisterError_002", nullptr,
5041 AudioSessionManagerRegisterError_002, nullptr, nullptr, nullptr, napi_default, nullptr},
5042 {"AudioSessionManagerUnregisterError_001", nullptr,
5043 AudioSessionManagerUnregisterError_001, nullptr, nullptr, nullptr, napi_default, nullptr},
5044 {"AudioSessionManagerUnregisterError_002", nullptr,
5045 AudioSessionManagerUnregisterError_002, nullptr, nullptr, nullptr, napi_default, nullptr},
5046 {"AudioSessionManagerReason_001", nullptr,
5047 AudioSessionManagerReason_001, nullptr, nullptr, nullptr, napi_default, nullptr},
5048 {"AudioSessionManagerReason_002", nullptr,
5049 AudioSessionManagerReason_002, nullptr, nullptr, nullptr, napi_default, nullptr},
5050 {"audioRendererSetDefaultOutputDevice_01", nullptr,
5051 AudioRendererSetDefaultOutputDevice_01, nullptr, nullptr, nullptr, napi_default, nullptr},
5052 {"audioRendererSetDefaultOutputDevice_02", nullptr,
5053 AudioRendererSetDefaultOutputDevice_02, nullptr, nullptr, nullptr, napi_default, nullptr},
5054 {"audioRendererSetDefaultOutputDevice_03", nullptr,
5055 AudioRendererSetDefaultOutputDevice_03, nullptr, nullptr, nullptr, napi_default, nullptr}
5056 };
5057
Init(napi_env env,napi_value exports)5058 static napi_value Init(napi_env env, napi_value exports)
5059 {
5060 size_t mergedLength = sizeof(desc1) / sizeof(desc1[0]) +
5061 sizeof(desc2) / sizeof(desc2[0]);
5062 napi_property_descriptor mergedArray[mergedLength];
5063 for (size_t i = 0; i < sizeof(desc1) / sizeof(desc1[0]); ++i) {
5064 mergedArray[i] = desc1[i];
5065 }
5066 for (size_t i = 0; i < sizeof(desc2) / sizeof(desc2[0]); ++i) {
5067 mergedArray[sizeof(desc1) / sizeof(desc1[0]) + i] = desc2[i];
5068 }
5069 napi_define_properties(env, exports, mergedLength, mergedArray);
5070 return exports;
5071 }
5072 EXTERN_C_END
5073
5074 /*
5075
5076 * module define
5077 */
5078 static napi_module g_module = {
5079 .nm_version = 1,
5080 .nm_flags = 0,
5081 .nm_filename = nullptr,
5082 .nm_register_func = Init,
5083 .nm_modname = "entry",
5084 .nm_priv = ((void *)0),
5085 .reserved = {0}};
5086
5087 /*
5088 * module register
5089 */
RegisterEntryModule(void)5090 extern "C" __attribute__((constructor)) void RegisterEntryModule(void)
5091 {
5092 napi_module_register(&g_module);
5093 }