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 "ohaudio/native_audio_resource_manager.h"
32 #include "ohaudio/native_audio_volume_manager.h"
33 #include "ohaudio/native_audio_stream_manager.h"
34 #include "hilog/log.h"
35 #include <ctime>
36 #include <set>
37 #include <algorithm>
38 #include <random>
39
40 #include "AudioResourceManagerTest.h"
41
42 #define AUDIO_LOG_TAG "AUDIO_TAGLOG"
43 #define AUDIO_LOG_DOMAIN 0x3200
44
45 #define LOG(fmt, ...) (void)OH_LOG_Print(LOG_APP, LOG_INFO, AUDIO_LOG_DOMAIN, AUDIO_LOG_TAG, fmt, ##__VA_ARGS__)
46
47 const int32_t g_samplingRate = 48000; // 48000:g_samplingRate value
48 const int32_t g_channelCount = 2; // 2:g_channelCount value
49 const int32_t g_latencyMode = 0;
50 const int32_t g_sampleFormat = 1;
51 const int32_t g_frameSize = 240; // 240:g_frameSize value
52 const int32_t CHANNEL_LAYOUT = 3;
53 const int32_t ENCODING_TYPE = 0;
54 const int32_t STATE_TIME = 0;
55 const int32_t END_TIME = 20;
56 const int32_t NORMAL_RATE = 32000;
57 bool g_flag = false;
58 bool g_mark = false;
59 static std::string g_filePath = "/data/storage/el2/base/haps/entry_test/files/test_44100_2.wav";
60 FILE *g_file = nullptr;
61 bool g_readEnd = false;
62 const int32_t TEST_PASS = 0; // success result
63 const int32_t TEST_FAIL = 1; // fail result
64
65 static OH_AudioCapturer *g_audioCapturer;
66 static OH_AudioRenderer *g_audioRenderer;
67 static OH_AudioStreamBuilder *g_capturerBuilder;
68 static OH_AudioStreamBuilder *g_rendererBuilder;
69 static std::string g_pcmFilePath = "/data/storage/el2/base/haps/entry_test/files/oh_test_audio.pcm";
70 FILE *g_pcmFile = nullptr;
71
72 OH_AudioStream_Usage g_ohRendererStreamUsage;
73 OH_AudioStream_SourceType g_ohCapturerStreamUsage;
74 OH_AudioStream_SampleFormat g_ohFormat;
75 static int32_t g_ohSamplingRate;
76 static int32_t g_ohChannelCount;
77 OH_AudioStream_LatencyMode g_ohLatencyMode;
78 constexpr int32_t INVALID_VALUE = -1;
79
80 static OH_AudioRenderer *audioRenderer;
81 static OH_AudioStreamBuilder *builder;
82
83 size_t g_fileOffset = 0;
84 bool randomTestEnable = true;
85 size_t latencySize = 0;
86 constexpr size_t g_smallUnit = 4;
87 constexpr size_t g_randomLowerBound = 1;
88
89 std::random_device rd; // 真随机数源(硬件依赖)
90 std::mt19937 gen(rd()); // 使用默认种子
91 // 2. 分布器:指定分布区间
92 std::uniform_int_distribution<> dist; // [1, 100]
93
94 enum class TEST_RESULT {
95 TEST_FAIL = 0,
96 TEST_PASS = 1
97 };
98
99 const std::set<OH_AudioStream_Usage> VALID_OH_STREAM_USAGES = {
100 AUDIOSTREAM_USAGE_UNKNOWN,
101 AUDIOSTREAM_USAGE_MUSIC,
102 AUDIOSTREAM_USAGE_VOICE_COMMUNICATION,
103 AUDIOSTREAM_USAGE_VOICE_ASSISTANT,
104 AUDIOSTREAM_USAGE_ALARM,
105 AUDIOSTREAM_USAGE_VOICE_MESSAGE,
106 AUDIOSTREAM_USAGE_RINGTONE,
107 AUDIOSTREAM_USAGE_NOTIFICATION,
108 AUDIOSTREAM_USAGE_ACCESSIBILITY,
109 AUDIOSTREAM_USAGE_MOVIE,
110 AUDIOSTREAM_USAGE_GAME,
111 AUDIOSTREAM_USAGE_AUDIOBOOK,
112 AUDIOSTREAM_USAGE_NAVIGATION,
113 AUDIOSTREAM_USAGE_VIDEO_COMMUNICATION
114 };
115
116 const std::set<OH_AudioStream_SourceType> VALID_OH_SOURCE_TYPES = {
117 AUDIOSTREAM_SOURCE_TYPE_MIC,
118 AUDIOSTREAM_SOURCE_TYPE_VOICE_RECOGNITION,
119 AUDIOSTREAM_SOURCE_TYPE_PLAYBACK_CAPTURE,
120 AUDIOSTREAM_SOURCE_TYPE_VOICE_COMMUNICATION,
121 AUDIOSTREAM_SOURCE_TYPE_VOICE_MESSAGE,
122 AUDIOSTREAM_SOURCE_TYPE_CAMCORDER
123 };
124
uDelay(int time)125 void uDelay(int time)//time*1000为秒数
126 {
127 clock_t now = clock();
128 while(clock() - now < time);
129 }
130
Delay(int time)131 void Delay(int time)//time为秒数
132 {
133 time = time * 1000;
134 clock_t now = clock();
135 while(clock() - now < time);
136 }
137
AudioRendererOnMarkReachedWriteData(OH_AudioRenderer * capturer,void * userData,void * buffer,int32_t bufferLen)138 static int32_t AudioRendererOnMarkReachedWriteData(OH_AudioRenderer* capturer,
139 void* userData,
140 void* buffer,
141 int32_t bufferLen)
142 {
143 size_t readCount = fread(buffer, bufferLen, 1, g_file);
144 if (!readCount) {
145 if (ferror(g_file)) {
146 LOG("Error reading myfile");
147 } else if (feof(g_file)) {
148 LOG("EOF found");
149 g_readEnd = true;
150 }
151 }
152 return 0;
153 }
154
155
MyAudioSessionDeactivatedCallback(OH_AudioSession_DeactivatedEvent event)156 static int32_t MyAudioSessionDeactivatedCallback(OH_AudioSession_DeactivatedEvent event)
157 {
158 switch(event.reason) {
159 case DEACTIVATED_LOWER_PRIORITY:
160 // 应用焦点被抢占
161 LOG("MyAudioSessionDeactivatedCallback, event is %{public}d", event.reason);
162 return 0;
163 case DEACTIVATED_TIMEOUT:
164 // 超时
165 LOG("MyAudioSessionDeactivatedCallback, event is %{public}d", event.reason);
166 return 0;
167 }
168 }
169
MyOnAudioSceneChangeCallback(void * userData,OH_AudioScene scene)170 void MyOnAudioSceneChangeCallback(void *userData, OH_AudioScene scene)
171 {
172 (void)userData;
173 LOG("MyOnAudioSceneChangeCallback, scene is %{public}d", scene);
174 }
175
MyOnStreamVolumeChangeCallback1(void * userData,OH_AudioStream_Usage usage,int32_t volumeLevel,bool updateUi)176 void MyOnStreamVolumeChangeCallback1(void *userData, OH_AudioStream_Usage usage, int32_t volumeLevel, bool updateUi)
177 {
178 (void)userData;
179 (void)updateUi;
180 LOG("MyOnStreamVolumeChangeCallback, usage:%{public}d, volumeLevel: %{public}d", usage, volumeLevel);
181 }
182
MyOnStreamVolumeChangeCallback2(void * userData,OH_AudioStream_Usage usage,int32_t volumeLevel,bool updateUi)183 void MyOnStreamVolumeChangeCallback2(void *userData, OH_AudioStream_Usage usage, int32_t volumeLevel, bool updateUi)
184 {
185 (void)userData;
186 (void)updateUi;
187 LOG("MyOnStreamVolumeChangeCallback, usage:%{public}d, volumeLevel: %{public}d", usage, volumeLevel);
188 }
189
MyOnRingerModeChangeCallback(void * userData,OH_AudioRingerMode ringerMode)190 void MyOnRingerModeChangeCallback(void *userData, OH_AudioRingerMode ringerMode)
191 {
192 (void)userData;
193 LOG("MyOnRingerModeChangeCallback, ringerMode is %{public}d", ringerMode);
194 }
195
MyAudioCapturerOnFastStatusChangeCallback(OH_AudioCapturer * capturer,void * userData,OH_AudioStream_FastStatus status)196 void MyAudioCapturerOnFastStatusChangeCallback(OH_AudioCapturer* capturer, void* userData,
197 OH_AudioStream_FastStatus status)
198 {
199 (void)userData;
200 LOG("MyAudioCapturerOnFastStatusChangeCallback, status is %{public}d", status);
201 }
202
MyAudioRendererOnFastStatusChangeCallback(OH_AudioRenderer * renderer,void * userData,OH_AudioStream_FastStatus status)203 void MyAudioRendererOnFastStatusChangeCallback(OH_AudioRenderer* renderer, void* userData,
204 OH_AudioStream_FastStatus status)
205 {
206 (void)userData;
207 LOG("MyAudioRendererOnFastStatusChangeCallback, status is %{public}d", status);
208 }
209
CreateAudioStreamBuilder(napi_env env,napi_callback_info info)210 static napi_value CreateAudioStreamBuilder(napi_env env, napi_callback_info info)
211 {
212 OH_AudioStreamBuilder *builder;
213 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
214 OH_AudioStream_Result result = OH_AudioStreamBuilder_Create(&builder, type);
215 OH_AudioStreamBuilder_Destroy(builder);
216 napi_value res;
217 napi_create_int32(env, result, &res);
218 return res;
219 }
220
CreateCapturerBuilder()221 OH_AudioStreamBuilder *CreateCapturerBuilder()
222 {
223 OH_AudioStreamBuilder *builder;
224 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
225 OH_AudioStreamBuilder_Create(&builder, type);
226 return builder;
227 }
228
229
AudioCaptureGenerate(napi_env env,napi_callback_info info)230 static napi_value AudioCaptureGenerate(napi_env env, napi_callback_info info)
231 {
232 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
233
234 OH_AudioCapturer *audioCapturer;
235 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
236
237 OH_AudioCapturer_Release(audioCapturer);
238 OH_AudioStreamBuilder_Destroy(builder);
239 napi_value res;
240 napi_create_int32(env, result, &res);
241 return res;
242 }
243
AudioWorkGroup(napi_env env,napi_callback_info info)244 static napi_value AudioWorkGroup(napi_env env, napi_callback_info info)
245 {
246 int32_t tid;
247 OH_AudioResourceManager *mgr;
248 OH_AudioWorkgroup *grp;
249 OH_AudioManager_GetAudioResourceManager(&mgr);
250 OH_AudioResourceManager_CreateWorkgroup(mgr, "new", &grp);
251 OH_AudioWorkgroup_AddCurrentThread(grp, &tid);
252 OH_AudioWorkgroup_Start(grp, STATE_TIME, END_TIME);
253 OH_AudioWorkgroup_Stop(grp);
254 OH_AudioWorkgroup_RemoveThread(grp, tid);
255 OH_AudioCommon_Result result=OH_AudioResourceManager_ReleaseWorkgroup(mgr, grp);
256 napi_value res;
257 napi_create_int32(env, result, &res);
258 return res;
259 }
260
AudioCaptureGenerateErr(napi_env env,napi_callback_info info)261 static napi_value AudioCaptureGenerateErr(napi_env env, napi_callback_info info)
262 {
263 OH_AudioStreamBuilder *builder = nullptr;
264 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
265 OH_AudioStreamBuilder_Create(&builder, type);
266
267 OH_AudioCapturer *audioCapturer = nullptr;
268 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
269
270 OH_AudioCapturer_Release(audioCapturer);
271 OH_AudioStreamBuilder_Destroy(builder);
272 napi_value res;
273 napi_create_int32(env, result, &res);
274 return res;
275 }
276
AudioCaptureStart(napi_env env,napi_callback_info info)277 static napi_value AudioCaptureStart(napi_env env, napi_callback_info info)
278 {
279 LOG("AudioCaptureStart SUCCESS");
280 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
281 OH_AudioCapturer *audioCapturer;
282 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
283
284 OH_AudioStream_Result result = OH_AudioCapturer_Start(audioCapturer);
285
286 OH_AudioCapturer_Release(audioCapturer);
287 OH_AudioStreamBuilder_Destroy(builder);
288 napi_value res;
289 napi_create_int32(env, result, &res);
290 return res;
291 }
292
AudioCaptureStartErr(napi_env env,napi_callback_info info)293 static napi_value AudioCaptureStartErr(napi_env env, napi_callback_info info)
294 {
295 LOG("AudioCaptureStart SUCCESS");
296 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
297 OH_AudioCapturer *audioCapturer;
298 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
299 OH_AudioCapturer_Start(audioCapturer);
300 OH_AudioStream_Result result = OH_AudioCapturer_Start(audioCapturer);
301
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
AudioCapturePause(napi_env env,napi_callback_info info)309 static napi_value AudioCapturePause(napi_env env, napi_callback_info info)
310 {
311 LOG("AudioCaptureStart SUCCESS");
312 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
313 OH_AudioCapturer *audioCapturer;
314 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
315 OH_AudioCapturer_Start(audioCapturer);
316 OH_AudioStream_Result result = OH_AudioCapturer_Pause(audioCapturer);
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
324
AudioCapturePauseErr(napi_env env,napi_callback_info info)325 static napi_value AudioCapturePauseErr(napi_env env, napi_callback_info info)
326 {
327 LOG("AudioCaptureStart SUCCESS");
328 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
329 OH_AudioCapturer *audioCapturer;
330 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
331 OH_AudioStream_Result result = OH_AudioCapturer_Pause(audioCapturer);
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
AudioCaptureStop(napi_env env,napi_callback_info info)339 static napi_value AudioCaptureStop(napi_env env, napi_callback_info info)
340 {
341 LOG("AudioCaptureStart SUCCESS");
342 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
343 OH_AudioCapturer *audioCapturer;
344 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
345 OH_AudioCapturer_Start(audioCapturer);
346 OH_AudioStream_Result result = OH_AudioCapturer_Stop(audioCapturer);
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
AudioCaptureStopErr(napi_env env,napi_callback_info info)354 static napi_value AudioCaptureStopErr(napi_env env, napi_callback_info info)
355 {
356 LOG("AudioCaptureStart SUCCESS");
357 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
358 OH_AudioCapturer *audioCapturer;
359 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
360 OH_AudioStream_Result result = OH_AudioCapturer_Stop(audioCapturer);
361 OH_AudioCapturer_Release(audioCapturer);
362 OH_AudioStreamBuilder_Destroy(builder);
363 napi_value res;
364 napi_create_int32(env, result, &res);
365 return res;
366 }
367
AudioCaptureFlush(napi_env env,napi_callback_info info)368 static napi_value AudioCaptureFlush(napi_env env, napi_callback_info info)
369 {
370 LOG("AudioCaptureFlush SUCCESS");
371 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
372 OH_AudioCapturer *audioCapturer;
373 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
374 OH_AudioCapturer_Start(audioCapturer);
375 OH_AudioStream_Result result = OH_AudioCapturer_Flush(audioCapturer);
376 OH_AudioCapturer_Release(audioCapturer);
377 OH_AudioStreamBuilder_Destroy(builder);
378 napi_value res;
379 napi_create_int32(env, result, &res);
380 return res;
381 }
382
383
AudioCaptureFlushErr(napi_env env,napi_callback_info info)384 static napi_value AudioCaptureFlushErr(napi_env env, napi_callback_info info)
385 {
386 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
387 OH_AudioCapturer *audioCapturer;
388 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
389 OH_AudioStream_Result result = OH_AudioCapturer_Flush(audioCapturer);
390 OH_AudioCapturer_Release(audioCapturer);
391 OH_AudioStreamBuilder_Destroy(builder);
392 napi_value res;
393 napi_create_int32(env, result, &res);
394 return res;
395 }
396
AudioCaptureRelease(napi_env env,napi_callback_info info)397 static napi_value AudioCaptureRelease(napi_env env, napi_callback_info info)
398 {
399 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
400 OH_AudioCapturer *audioCapturer;
401 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
402 OH_AudioCapturer_Start(audioCapturer);
403 OH_AudioStream_Result result = OH_AudioCapturer_Release(audioCapturer);
404 OH_AudioStreamBuilder_Destroy(builder);
405 napi_value res;
406 napi_create_int32(env, result, &res);
407 return res;
408 }
409
AudioCaptureReleaseErr(napi_env env,napi_callback_info info)410 static napi_value AudioCaptureReleaseErr(napi_env env, napi_callback_info info)
411 {
412 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
413 OH_AudioCapturer *audioCapturer;
414 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
415 OH_AudioCapturer_Release(audioCapturer);
416 audioCapturer = nullptr;
417 OH_AudioStream_Result result = OH_AudioCapturer_Release(audioCapturer);
418 OH_AudioStreamBuilder_Destroy(builder);
419 napi_value res;
420 napi_create_int32(env, result, &res);
421 return res;
422 }
423
AudioCaptureGetParameter(napi_env env,napi_callback_info info)424 static napi_value AudioCaptureGetParameter(napi_env env, napi_callback_info info)
425 {
426 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
427 OH_AudioCapturer *audioCapturer;
428 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
429
430 OH_AudioStream_LatencyMode latencyMode = AUDIOSTREAM_LATENCY_MODE_NORMAL;
431 OH_AudioStream_Result result = OH_AudioCapturer_GetLatencyMode(audioCapturer, &latencyMode);
432 OH_AudioCapturer_Release(audioCapturer);
433 OH_AudioStreamBuilder_Destroy(builder);
434 napi_value res;
435 napi_create_int32(env, result, &res);
436 return res;
437 }
438
AudioCaptureGetCurrentState(napi_env env,napi_callback_info info)439 static napi_value AudioCaptureGetCurrentState(napi_env env, napi_callback_info info)
440 {
441 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
442 OH_AudioCapturer *audioCapturer;
443 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
444
445 OH_AudioStream_State state;
446 OH_AudioStream_Result result = OH_AudioCapturer_GetCurrentState(audioCapturer, &state);
447 OH_AudioCapturer_Release(audioCapturer);
448 OH_AudioStreamBuilder_Destroy(builder);
449 napi_value res;
450 napi_create_int32(env, result, &res);
451 return res;
452 }
453
AudioCaptureGetStreamId(napi_env env,napi_callback_info info)454 static napi_value AudioCaptureGetStreamId(napi_env env, napi_callback_info info)
455 {
456 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
457 OH_AudioCapturer *audioCapturer;
458 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
459
460 uint32_t streamId;
461 OH_AudioStream_Result result = OH_AudioCapturer_GetStreamId(audioCapturer, &streamId);
462 OH_AudioCapturer_Release(audioCapturer);
463 OH_AudioStreamBuilder_Destroy(builder);
464 napi_value res;
465 napi_create_int32(env, result, &res);
466 return res;
467 }
468
AudioCaptureGetSamplingRate(napi_env env,napi_callback_info info)469 static napi_value AudioCaptureGetSamplingRate(napi_env env, napi_callback_info info)
470 {
471 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
472 OH_AudioCapturer *audioCapturer;
473 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
474
475 int32_t rate;
476 OH_AudioStream_Result result = OH_AudioCapturer_GetSamplingRate(audioCapturer, &rate);
477 OH_AudioCapturer_Release(audioCapturer);
478 OH_AudioStreamBuilder_Destroy(builder);
479 napi_value res;
480 napi_create_int32(env, result, &res);
481 return res;
482 }
483
AudioCaptureGetSampleFormat(napi_env env,napi_callback_info info)484 static napi_value AudioCaptureGetSampleFormat(napi_env env, napi_callback_info info)
485 {
486 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
487 OH_AudioCapturer *audioCapturer;
488 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
489
490 OH_AudioStream_SampleFormat sampleFormat;
491 OH_AudioStream_Result result = OH_AudioCapturer_GetSampleFormat(audioCapturer, &sampleFormat);
492 OH_AudioCapturer_Release(audioCapturer);
493 OH_AudioStreamBuilder_Destroy(builder);
494 napi_value res;
495 napi_create_int32(env, result, &res);
496 return res;
497 }
498
AudioCaptureGetEncodingType(napi_env env,napi_callback_info info)499 static napi_value AudioCaptureGetEncodingType(napi_env env, napi_callback_info info)
500 {
501 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
502 OH_AudioCapturer *audioCapturer;
503 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
504
505 OH_AudioStream_EncodingType encodingType;
506 OH_AudioStream_Result result = OH_AudioCapturer_GetEncodingType(audioCapturer, &encodingType);
507 OH_AudioCapturer_Release(audioCapturer);
508 OH_AudioStreamBuilder_Destroy(builder);
509 napi_value res;
510 napi_create_int32(env, result, &res);
511 return res;
512 }
513
AudioCaptureGetCapturerInfo(napi_env env,napi_callback_info info)514 static napi_value AudioCaptureGetCapturerInfo(napi_env env, napi_callback_info info)
515 {
516 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
517 OH_AudioCapturer *audioCapturer;
518 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
519
520 OH_AudioStream_SourceType sourceType;
521 OH_AudioStream_Result result = OH_AudioCapturer_GetCapturerInfo(audioCapturer, &sourceType);
522 OH_AudioCapturer_Release(audioCapturer);
523 OH_AudioStreamBuilder_Destroy(builder);
524 napi_value res;
525 napi_create_int32(env, result, &res);
526 return res;
527 }
528
AudioCaptureGetTimestamp(napi_env env,napi_callback_info info)529 static napi_value AudioCaptureGetTimestamp(napi_env env, napi_callback_info info)
530 {
531 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
532 OH_AudioCapturer *audioCapturer;
533 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
534 OH_AudioCapturer_Start(audioCapturer);
535
536 int sleepNum = 30000;
537 uDelay(sleepNum);
538 int64_t framePosition;
539 int64_t timestamp;
540 OH_AudioStream_Result result = OH_AudioCapturer_GetTimestamp(audioCapturer, CLOCK_MONOTONIC, &framePosition, ×tamp);
541 OH_AudioCapturer_Stop(audioCapturer);
542 OH_AudioCapturer_Release(audioCapturer);
543 OH_AudioStreamBuilder_Destroy(builder);
544 napi_value res;
545 napi_create_int32(env, result, &res);
546 return res;
547 }
548
AudioCaptureGetFramesRead(napi_env env,napi_callback_info info)549 static napi_value AudioCaptureGetFramesRead(napi_env env, napi_callback_info info)
550 {
551 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
552 OH_AudioCapturer *audioCapturer;
553 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
554
555 int64_t frames;
556 OH_AudioStream_Result result = OH_AudioCapturer_GetFramesRead(audioCapturer, &frames);
557 OH_AudioCapturer_Release(audioCapturer);
558 OH_AudioStreamBuilder_Destroy(builder);
559 napi_value res;
560 napi_create_int32(env, result, &res);
561 return res;
562 }
563
AudioCaptureGetFrameSizeInCallback(napi_env env,napi_callback_info info)564 static napi_value AudioCaptureGetFrameSizeInCallback(napi_env env, napi_callback_info info)
565 {
566 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
567 OH_AudioCapturer *audioCapturer;
568 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
569
570 int32_t frameSize;
571 OH_AudioStream_Result result = OH_AudioCapturer_GetFrameSizeInCallback(audioCapturer, &frameSize);
572 OH_AudioCapturer_Release(audioCapturer);
573 OH_AudioStreamBuilder_Destroy(builder);
574 napi_value res;
575 napi_create_int32(env, result, &res);
576 return res;
577 }
578
579
CreateRenderBuilder()580 OH_AudioStreamBuilder *CreateRenderBuilder()
581 {
582 OH_AudioStreamBuilder *builder;
583 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
584 OH_AudioStreamBuilder_Create(&builder, type);
585 return builder;
586 }
587
AudioRendererSetSpeed(napi_env env,napi_callback_info info)588 static napi_value AudioRendererSetSpeed(napi_env env, napi_callback_info info)
589 {
590 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
591
592 OH_AudioRenderer *audioRenderer;
593 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
594 float speed = 2;
595 OH_AudioStream_Result result = OH_AudioRenderer_SetSpeed(audioRenderer,speed);
596 OH_AudioRenderer_Release(audioRenderer);
597 OH_AudioStreamBuilder_Destroy(builder);
598 napi_value res;
599 napi_create_int32(env, result, &res);
600 return res;
601 }
602
AudioRendererGetSpeed(napi_env env,napi_callback_info info)603 static napi_value AudioRendererGetSpeed(napi_env env, napi_callback_info info)
604 {
605 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
606
607 OH_AudioRenderer *audioRenderer;
608 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
609 float speed;
610 OH_AudioStream_Result result = OH_AudioRenderer_GetSpeed(audioRenderer,&speed);
611 OH_AudioRenderer_Release(audioRenderer);
612 OH_AudioStreamBuilder_Destroy(builder);
613 napi_value res;
614 napi_create_int32(env, result, &res);
615 return res;
616 }
617
AudioRendererSetGetSpeed(napi_env env,napi_callback_info info)618 static napi_value AudioRendererSetGetSpeed(napi_env env, napi_callback_info info)
619 {
620 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
621
622 OH_AudioRenderer *audioRenderer;
623 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
624 float setSpeed = 1.5;
625 OH_AudioRenderer_SetSpeed(audioRenderer,setSpeed);
626 float getSpeed;
627 OH_AudioRenderer_GetSpeed(audioRenderer,&getSpeed);
628 OH_AudioRenderer_Release(audioRenderer);
629 OH_AudioStreamBuilder_Destroy(builder);
630 napi_value res;
631 napi_create_double(env, getSpeed, &res);
632 return res;
633 }
634
AudioRendererDeviceChangeCb(OH_AudioRenderer * renderer,void * userData,OH_AudioStream_DeviceChangeReason reason)635 static void AudioRendererDeviceChangeCb(OH_AudioRenderer* renderer, void* userData,
636 OH_AudioStream_DeviceChangeReason reason)
637 {}
638
AudioSetRendererOutputDeviceChangeCallback(napi_env env,napi_callback_info info)639 static napi_value AudioSetRendererOutputDeviceChangeCallback(napi_env env, napi_callback_info info)
640 {
641 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
642 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
643 OH_AudioStreamBuilder_Create(&builder, type);
644
645 OH_AudioRenderer_OutputDeviceChangeCallback deviceChangeCb = AudioRendererDeviceChangeCb;
646
647 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererOutputDeviceChangeCallback(builder, deviceChangeCb, NULL);
648
649 OH_AudioStreamBuilder_Destroy(builder);
650 napi_value res;
651 napi_create_int32(env, result, &res);
652 return res;
653 }
654
MicBlockedCallback(OH_AudioDeviceDescriptorArray * audioDeviceDescriptorArray,OH_AudioDevice_BlockStatus status,void * userData)655 static void MicBlockedCallback(OH_AudioDeviceDescriptorArray *audioDeviceDescriptorArray,
656 OH_AudioDevice_BlockStatus status, void *userData)
657 {
658 switch (status) {
659 case AUDIO_DEVICE_UNBLOCKED:
660 // 麦克风未被堵住
661 LOG("MyAudioSessionDeactivatedCallback, event is %{public}d", status);
662 case AUDIO_DEVICE_BLOCKED:
663 // 麦克风被堵住
664 LOG("MyAudioSessionDeactivatedCallback, event is %{public}d", status);
665 }
666 }
667
AudioRenderGetFramesWritten(napi_env env,napi_callback_info info)668 static napi_value AudioRenderGetFramesWritten(napi_env env, napi_callback_info info)
669 {
670 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
671
672 OH_AudioRenderer *audioRenderer;
673 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
674 int64_t frames;
675 OH_AudioStream_Result result = OH_AudioRenderer_GetFramesWritten(audioRenderer, &frames);
676 OH_AudioRenderer_Release(audioRenderer);
677 OH_AudioStreamBuilder_Destroy(builder);
678 napi_value res;
679 napi_create_int32(env, result, &res);
680 return res;
681 }
682
AudioRenderGetTimestamp(napi_env env,napi_callback_info info)683 static napi_value AudioRenderGetTimestamp(napi_env env, napi_callback_info info)
684 {
685 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
686
687 OH_AudioRenderer *audioRenderer;
688 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
689 OH_AudioRenderer_Start(audioRenderer);
690
691 int sleepNum = 30000;
692 uDelay(sleepNum);
693 int64_t framePosition;
694 int64_t timestamp;
695 OH_AudioStream_Result result = OH_AudioRenderer_GetTimestamp(audioRenderer, CLOCK_MONOTONIC, &framePosition, ×tamp);
696 OH_AudioRenderer_Stop(audioRenderer);
697 OH_AudioRenderer_Release(audioRenderer);
698 OH_AudioStreamBuilder_Destroy(builder);
699 napi_value res;
700 napi_create_int32(env, result, &res);
701 return res;
702 }
703
AudioRenderGetFrameSizeInCallback(napi_env env,napi_callback_info info)704 static napi_value AudioRenderGetFrameSizeInCallback(napi_env env, napi_callback_info info)
705 {
706 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
707
708 OH_AudioRenderer *audioRenderer;
709 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
710 int32_t frameSize;
711 OH_AudioStream_Result result = OH_AudioRenderer_GetFrameSizeInCallback(audioRenderer, &frameSize);
712 OH_AudioRenderer_Release(audioRenderer);
713 OH_AudioStreamBuilder_Destroy(builder);
714 napi_value res;
715 napi_create_int32(env, result, &res);
716 return res;
717 }
718
AudioRenderGenerate(napi_env env,napi_callback_info info)719 static napi_value AudioRenderGenerate(napi_env env, napi_callback_info info)
720 {
721 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
722
723 OH_AudioRenderer *audioRenderer;
724 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
725 OH_AudioRenderer_Release(audioRenderer);
726 OH_AudioStreamBuilder_Destroy(builder);
727 napi_value res;
728 napi_create_int32(env, result, &res);
729 return res;
730 }
731
AudioRenderGenerateErr(napi_env env,napi_callback_info info)732 static napi_value AudioRenderGenerateErr(napi_env env, napi_callback_info info)
733 {
734 OH_AudioStreamBuilder *builder;
735 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
736 OH_AudioStreamBuilder_Create(&builder, type);
737
738 OH_AudioRenderer *audioRenderer;
739 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
740
741 OH_AudioStreamBuilder_Destroy(builder);
742 napi_value res;
743 napi_create_int32(env, result, &res);
744 return res;
745 }
746
AudioRenderStart(napi_env env,napi_callback_info info)747 static napi_value AudioRenderStart(napi_env env, napi_callback_info info)
748 {
749 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
750
751 OH_AudioRenderer *audioRenderer;
752 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
753 OH_AudioStream_Result result = OH_AudioRenderer_Start(audioRenderer);
754 OH_AudioRenderer_Release(audioRenderer);
755 OH_AudioStreamBuilder_Destroy(builder);
756 napi_value res;
757 napi_create_int32(env, result, &res);
758 return res;
759 }
760
761
AudioRenderStartErr(napi_env env,napi_callback_info info)762 static napi_value AudioRenderStartErr(napi_env env, napi_callback_info info)
763 {
764 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
765
766 OH_AudioRenderer *audioRenderer;
767 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
768 OH_AudioRenderer_Start(audioRenderer);
769 OH_AudioStream_Result result = OH_AudioRenderer_Start(audioRenderer);
770 OH_AudioRenderer_Release(audioRenderer);
771 OH_AudioStreamBuilder_Destroy(builder);
772 napi_value res;
773 napi_create_int32(env, result, &res);
774 return res;
775 }
776
AudioRenderPause(napi_env env,napi_callback_info info)777 static napi_value AudioRenderPause(napi_env env, napi_callback_info info)
778 {
779 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
780
781 OH_AudioRenderer *audioRenderer;
782 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
783 OH_AudioRenderer_Start(audioRenderer);
784 OH_AudioStream_Result result = OH_AudioRenderer_Pause(audioRenderer);
785 OH_AudioRenderer_Release(audioRenderer);
786 OH_AudioStreamBuilder_Destroy(builder);
787 napi_value res;
788 napi_create_int32(env, result, &res);
789 return res;
790 }
791
AudioRenderPauseErr(napi_env env,napi_callback_info info)792 static napi_value AudioRenderPauseErr(napi_env env, napi_callback_info info)
793 {
794 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
795
796 OH_AudioRenderer *audioRenderer;
797 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
798 OH_AudioStream_Result result = OH_AudioRenderer_Pause(audioRenderer);
799 OH_AudioRenderer_Release(audioRenderer);
800 OH_AudioStreamBuilder_Destroy(builder);
801 napi_value res;
802 napi_create_int32(env, result, &res);
803 return res;
804 }
805
AudioRenderStop(napi_env env,napi_callback_info info)806 static napi_value AudioRenderStop(napi_env env, napi_callback_info info)
807 {
808 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
809
810 OH_AudioRenderer *audioRenderer;
811 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
812 OH_AudioRenderer_Start(audioRenderer);
813 OH_AudioStream_Result result = OH_AudioRenderer_Stop(audioRenderer);
814 OH_AudioRenderer_Release(audioRenderer);
815 OH_AudioStreamBuilder_Destroy(builder);
816 napi_value res;
817 napi_create_int32(env, result, &res);
818 return res;
819 }
820
AudioRenderStopErr(napi_env env,napi_callback_info info)821 static napi_value AudioRenderStopErr(napi_env env, napi_callback_info info)
822 {
823 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
824
825 OH_AudioRenderer *audioRenderer;
826 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
827 OH_AudioStream_Result result = OH_AudioRenderer_Stop(audioRenderer);
828 OH_AudioRenderer_Release(audioRenderer);
829 OH_AudioStreamBuilder_Destroy(builder);
830 napi_value res;
831 napi_create_int32(env, result, &res);
832 return res;
833 }
834
AudioRenderFlush(napi_env env,napi_callback_info info)835 static napi_value AudioRenderFlush(napi_env env, napi_callback_info info)
836 {
837 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
838
839 OH_AudioRenderer *audioRenderer;
840 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
841 OH_AudioRenderer_Start(audioRenderer);
842 OH_AudioStream_Result result = OH_AudioRenderer_Flush(audioRenderer);
843 OH_AudioRenderer_Release(audioRenderer);
844 OH_AudioStreamBuilder_Destroy(builder);
845 napi_value res;
846 napi_create_int32(env, result, &res);
847 return res;
848 }
849
850
AudioRenderFlushErr(napi_env env,napi_callback_info info)851 static napi_value AudioRenderFlushErr(napi_env env, napi_callback_info info)
852 {
853 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
854
855 OH_AudioRenderer *audioRenderer;
856 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
857 OH_AudioStream_Result result = OH_AudioRenderer_Flush(audioRenderer);
858 OH_AudioRenderer_Release(audioRenderer);
859 OH_AudioStreamBuilder_Destroy(builder);
860 napi_value res;
861 napi_create_int32(env, result, &res);
862 return res;
863 }
864
AudioRenderRelease(napi_env env,napi_callback_info info)865 static napi_value AudioRenderRelease(napi_env env, napi_callback_info info)
866 {
867 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
868
869 OH_AudioRenderer *audioRenderer;
870 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
871 OH_AudioRenderer_Start(audioRenderer);
872 OH_AudioStream_Result result = OH_AudioRenderer_Release(audioRenderer);
873 OH_AudioStreamBuilder_Destroy(builder);
874 napi_value res;
875 napi_create_int32(env, result, &res);
876 return res;
877 }
878
879
AudioRenderReleaseErr(napi_env env,napi_callback_info info)880 static napi_value AudioRenderReleaseErr(napi_env env, napi_callback_info info)
881 {
882 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
883
884 OH_AudioRenderer *audioRenderer;
885 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
886 OH_AudioRenderer_Release(audioRenderer);
887 audioRenderer = nullptr;
888 OH_AudioStream_Result result = OH_AudioRenderer_Release(audioRenderer);
889 OH_AudioStreamBuilder_Destroy(builder);
890 napi_value res;
891 napi_create_int32(env, result, &res);
892 return res;
893 }
894
AudioRenderGetCurrentState(napi_env env,napi_callback_info info)895 static napi_value AudioRenderGetCurrentState(napi_env env, napi_callback_info info)
896 {
897 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
898
899 OH_AudioRenderer *audioRenderer;
900 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
901 OH_AudioStream_State state;
902 OH_AudioStream_Result result = OH_AudioRenderer_GetCurrentState(audioRenderer, &state);
903 OH_AudioRenderer_Release(audioRenderer);
904 OH_AudioStreamBuilder_Destroy(builder);
905 napi_value res;
906 napi_create_int32(env, result, &res);
907 return res;
908 }
909
910
AudioRenderGetParameter(napi_env env,napi_callback_info info)911 static napi_value AudioRenderGetParameter(napi_env env, napi_callback_info info)
912 {
913 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
914
915 OH_AudioRenderer *audioRenderer;
916 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
917 OH_AudioStream_LatencyMode latencyMode = AUDIOSTREAM_LATENCY_MODE_NORMAL;
918 OH_AudioStream_Result result = OH_AudioRenderer_GetLatencyMode(audioRenderer, &latencyMode);
919 OH_AudioRenderer_Release(audioRenderer);
920 OH_AudioStreamBuilder_Destroy(builder);
921 napi_value res;
922 napi_create_int32(env, result, &res);
923 return res;
924 }
925
926
AudioRenderGetStreamId(napi_env env,napi_callback_info info)927 static napi_value AudioRenderGetStreamId(napi_env env, napi_callback_info info)
928 {
929 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
930
931 OH_AudioRenderer *audioRenderer;
932 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
933
934 uint32_t streamId;
935 OH_AudioStream_Result result = OH_AudioRenderer_GetStreamId(audioRenderer, &streamId);
936 OH_AudioRenderer_Release(audioRenderer);
937 OH_AudioStreamBuilder_Destroy(builder);
938 napi_value res;
939 napi_create_int32(env, result, &res);
940 return res;
941 }
942
AudioRenderGetSamplingRate(napi_env env,napi_callback_info info)943 static napi_value AudioRenderGetSamplingRate(napi_env env, napi_callback_info info)
944 {
945 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
946
947 OH_AudioRenderer *audioRenderer;
948 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
949 int32_t rate;
950 OH_AudioStream_Result result = OH_AudioRenderer_GetSamplingRate(audioRenderer, &rate);
951 OH_AudioRenderer_Release(audioRenderer);
952 OH_AudioStreamBuilder_Destroy(builder);
953 napi_value res;
954 napi_create_int32(env, result, &res);
955 return res;
956 }
957
958
AudioRenderGetSampleFormat(napi_env env,napi_callback_info info)959 static napi_value AudioRenderGetSampleFormat(napi_env env, napi_callback_info info)
960 {
961 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
962
963 OH_AudioRenderer *audioRenderer;
964 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
965 OH_AudioStream_SampleFormat sampleFormat;
966 OH_AudioStream_Result result = OH_AudioRenderer_GetSampleFormat(audioRenderer, &sampleFormat);
967 OH_AudioRenderer_Release(audioRenderer);
968 OH_AudioStreamBuilder_Destroy(builder);
969 napi_value res;
970 napi_create_int32(env, result, &res);
971 return res;
972 }
973
974
AudioRenderGetEncodingType(napi_env env,napi_callback_info info)975 static napi_value AudioRenderGetEncodingType(napi_env env, napi_callback_info info)
976 {
977 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
978
979 OH_AudioRenderer *audioRenderer;
980 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
981 OH_AudioStream_EncodingType encodingType;
982 OH_AudioStream_Result result = OH_AudioRenderer_GetEncodingType(audioRenderer, &encodingType);
983 OH_AudioRenderer_Release(audioRenderer);
984 OH_AudioStreamBuilder_Destroy(builder);
985 napi_value res;
986 napi_create_int32(env, result, &res);
987 return res;
988 }
989
AudioRenderGetRendererInfo(napi_env env,napi_callback_info info)990 static napi_value AudioRenderGetRendererInfo(napi_env env, napi_callback_info info)
991 {
992 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
993
994 OH_AudioRenderer *audioRenderer;
995 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
996 OH_AudioStream_Usage usage;
997 OH_AudioStream_Result result = OH_AudioRenderer_GetRendererInfo(audioRenderer, &usage);
998 OH_AudioRenderer_Release(audioRenderer);
999 OH_AudioStreamBuilder_Destroy(builder);
1000 napi_value res;
1001 napi_create_int32(env, result, &res);
1002 return res;
1003 }
1004
1005
AudioStreamBuilderSetSamplingRate(napi_env env,napi_callback_info info)1006 static napi_value AudioStreamBuilderSetSamplingRate(napi_env env, napi_callback_info info)
1007 {
1008 OH_AudioStreamBuilder* builder;
1009 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
1010 OH_AudioStreamBuilder_Create(&builder, type);
1011 int32_t samplingRate = 48000;
1012 OH_AudioStreamBuilder_SetSamplingRate(builder, samplingRate);
1013 OH_AudioStream_Result result = OH_AudioStreamBuilder_Destroy(builder);
1014 napi_value res;
1015 napi_create_int32(env, result, &res);
1016 return res;
1017 }
1018
AudioStreamBuilderSetChannelCount(napi_env env,napi_callback_info info)1019 static napi_value AudioStreamBuilderSetChannelCount(napi_env env, napi_callback_info info)
1020 {
1021 OH_AudioStreamBuilder* builder;
1022 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
1023 OH_AudioStreamBuilder_Create(&builder, type);
1024 int32_t channelCount = 1;
1025 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetChannelCount(builder, channelCount);
1026 OH_AudioStreamBuilder_Destroy(builder);
1027 napi_value res;
1028 napi_create_int32(env, result, &res);
1029 return res;
1030 }
1031
1032
AudioStreamBuilderSetSampleFormat(napi_env env,napi_callback_info info)1033 static napi_value AudioStreamBuilderSetSampleFormat(napi_env env, napi_callback_info info)
1034 {
1035 OH_AudioStreamBuilder* builder;
1036 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
1037 OH_AudioStreamBuilder_Create(&builder, type);
1038 OH_AudioStream_SampleFormat format = AUDIOSTREAM_SAMPLE_U8;
1039 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetSampleFormat(builder, format);
1040 OH_AudioStreamBuilder_Destroy(builder);
1041 napi_value res;
1042 napi_create_int32(env, result, &res);
1043 return res;
1044 }
1045
1046
AudioStreamBuilderSetEncodingType(napi_env env,napi_callback_info info)1047 static napi_value AudioStreamBuilderSetEncodingType(napi_env env, napi_callback_info info)
1048 {
1049 OH_AudioStreamBuilder* builder;
1050 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
1051 OH_AudioStreamBuilder_Create(&builder, type);
1052 OH_AudioStream_EncodingType encodingType = AUDIOSTREAM_ENCODING_TYPE_RAW;
1053 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetEncodingType(builder, encodingType);
1054 OH_AudioStreamBuilder_Destroy(builder);
1055 napi_value res;
1056 napi_create_int32(env, result, &res);
1057 return res;
1058 }
1059
1060
AudioStreamBuilderSetLatencyMode(napi_env env,napi_callback_info info)1061 static napi_value AudioStreamBuilderSetLatencyMode(napi_env env, napi_callback_info info)
1062 {
1063 OH_AudioStreamBuilder* builder;
1064 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
1065 OH_AudioStreamBuilder_Create(&builder, type);
1066
1067 OH_AudioStream_LatencyMode latencyMode = AUDIOSTREAM_LATENCY_MODE_NORMAL;
1068 OH_AudioStreamBuilder_SetLatencyMode(builder, latencyMode);
1069
1070 OH_AudioStream_Result result = OH_AudioStreamBuilder_Destroy(builder);
1071 napi_value res;
1072 napi_create_int32(env, result, &res);
1073 return res;
1074 }
1075
1076
AudioStreamBuilderSetRendererInfo(napi_env env,napi_callback_info info)1077 static napi_value AudioStreamBuilderSetRendererInfo(napi_env env, napi_callback_info info)
1078 {
1079 OH_AudioStreamBuilder* builder;
1080 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
1081 OH_AudioStreamBuilder_Create(&builder, type);
1082 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
1083 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
1084
1085 OH_AudioStreamBuilder_Destroy(builder);
1086 napi_value res;
1087 napi_create_int32(env, result, &res);
1088 return res;
1089 }
1090
1091
AudioStreamBuilderSetCapturerInfo(napi_env env,napi_callback_info info)1092 static napi_value AudioStreamBuilderSetCapturerInfo(napi_env env, napi_callback_info info)
1093 {
1094 OH_AudioStreamBuilder* builder;
1095 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
1096 OH_AudioStreamBuilder_Create(&builder, type);
1097 OH_AudioStream_SourceType sourceType = AUDIOSTREAM_SOURCE_TYPE_MIC;
1098 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerInfo(builder, sourceType);
1099 OH_AudioStreamBuilder_Destroy(builder);
1100 napi_value res;
1101 napi_create_int32(env, result, &res);
1102 return res;
1103 }
1104
AudioRendererOnWriteData(OH_AudioRenderer * capturer,void * userData,void * buffer,int32_t bufferLen)1105 static int32_t AudioRendererOnWriteData(OH_AudioRenderer* capturer,
1106 void* userData,
1107 void* buffer,
1108 int32_t bufferLen)
1109 {
1110 return 0;
1111 }
AudioStreamBuilderSetRendererCallback(napi_env env,napi_callback_info info)1112 static napi_value AudioStreamBuilderSetRendererCallback(napi_env env, napi_callback_info info)
1113 {
1114 OH_AudioStreamBuilder* builder;
1115 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
1116 OH_AudioStreamBuilder_Create(&builder, type);
1117 OH_AudioRenderer_Callbacks callbacks;
1118 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
1119 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, NULL);
1120 OH_AudioStreamBuilder_Destroy(builder);
1121 napi_value res;
1122 napi_create_int32(env, result, &res);
1123 return res;
1124 }
1125
AudioCapturerOnReadData(OH_AudioCapturer * capturer,void * userData,void * buffer,int32_t bufferLen)1126 static int32_t AudioCapturerOnReadData(
1127 OH_AudioCapturer* capturer,
1128 void* userData,
1129 void* buffer,
1130 int32_t bufferLen)
1131 {
1132 return 0;
1133 }
AudioStreamBuilderSetCapturerCallback(napi_env env,napi_callback_info info)1134 static napi_value AudioStreamBuilderSetCapturerCallback(napi_env env, napi_callback_info info)
1135 {
1136 OH_AudioStreamBuilder* builder;
1137 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
1138 OH_AudioStreamBuilder_Create(&builder, type);
1139
1140 OH_AudioCapturer_Callbacks callbacks;
1141 callbacks.OH_AudioCapturer_OnReadData = AudioCapturerOnReadData;
1142 callbacks.OH_AudioCapturer_OnStreamEvent = nullptr;
1143 callbacks.OH_AudioCapturer_OnInterruptEvent = nullptr;
1144 callbacks.OH_AudioCapturer_OnError = nullptr;
1145 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerCallback(builder, callbacks, NULL);
1146
1147 OH_AudioStreamBuilder_Destroy(builder);
1148 napi_value res;
1149 napi_create_int32(env, result, &res);
1150 return res;
1151 }
1152
AudioCaptureGetChannelCount(napi_env env,napi_callback_info info)1153 static napi_value AudioCaptureGetChannelCount(napi_env env, napi_callback_info info)
1154 {
1155 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
1156 OH_AudioCapturer *audioCapturer;
1157 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
1158
1159 int32_t channelCount;
1160 OH_AudioStream_Result result = OH_AudioCapturer_GetChannelCount(audioCapturer, &channelCount);
1161 OH_AudioCapturer_Release(audioCapturer);
1162 OH_AudioStreamBuilder_Destroy(builder);
1163 napi_value res;
1164 napi_create_int32(env, result, &res);
1165 return res;
1166 }
1167
AudioRenderGetChannelCount(napi_env env,napi_callback_info info)1168 static napi_value AudioRenderGetChannelCount(napi_env env, napi_callback_info info)
1169 {
1170 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1171
1172 OH_AudioRenderer *audioRenderer;
1173 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1174
1175 int32_t channelCount;
1176 OH_AudioStream_Result result = OH_AudioRenderer_GetChannelCount(audioRenderer, &channelCount);
1177 OH_AudioRenderer_Release(audioRenderer);
1178 OH_AudioStreamBuilder_Destroy(builder);
1179 napi_value res;
1180 napi_create_int32(env, result, &res);
1181 return res;
1182 }
1183
AudioStreamBuilderSetFrameSizeInCallback(napi_env env,napi_callback_info info)1184 static napi_value AudioStreamBuilderSetFrameSizeInCallback(napi_env env, napi_callback_info info)
1185 {
1186 OH_AudioStreamBuilder *builder;
1187 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
1188 OH_AudioStreamBuilder_Create(&builder, type);
1189 int32_t framesize = 960;
1190 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, framesize);
1191 OH_AudioStreamBuilder_Destroy(builder);
1192 napi_value res;
1193 napi_create_int32(env, result, &res);
1194 return res;
1195 }
1196
AudioRendererGetVolume_01(napi_env env,napi_callback_info info)1197 static napi_value AudioRendererGetVolume_01(napi_env env, napi_callback_info info)
1198 {
1199 OH_AudioRenderer* audioRenderer = nullptr;
1200 float volume;
1201 OH_AudioStream_Result result = OH_AudioRenderer_GetVolume(audioRenderer, &volume);
1202 LOG("OH_AudioRenderer_GetVolume, volumeGet is %f, result %{public}d", volume, result);
1203 napi_value res;
1204 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1205 napi_create_int32(env, TEST_FAIL, &res);
1206 } else {
1207 napi_create_int32(env, TEST_PASS, &res);
1208 }
1209 return res;
1210 }
1211
AudioRendererSetVolume_01(napi_env env,napi_callback_info info)1212 static napi_value AudioRendererSetVolume_01(napi_env env, napi_callback_info info)
1213 {
1214 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1215 OH_AudioRenderer* audioRenderer;
1216 napi_value res;
1217 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1218 if (result != AUDIOSTREAM_SUCCESS) {
1219 napi_create_int32(env, TEST_FAIL, &res);
1220 return res;
1221 }
1222 float volumeSet = 1.0;
1223 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1224 LOG("OH_AudioRenderer_SetVolume 1.0, result is %{public}d", result);
1225 if (result != AUDIOSTREAM_SUCCESS) {
1226 napi_create_int32(env, TEST_FAIL, &res);
1227 return res;
1228 }
1229 float volumeGet;
1230 result = OH_AudioRenderer_GetVolume(audioRenderer, &volumeGet);
1231 LOG("OH_AudioRenderer_GetVolume, volumeGet is %f, %{public}d", volumeGet, result);
1232 if (result != AUDIOSTREAM_SUCCESS || volumeGet != volumeSet) {
1233 napi_create_int32(env, TEST_FAIL, &res);
1234 } else {
1235 napi_create_int32(env, TEST_PASS, &res);
1236 }
1237 OH_AudioRenderer_Release(audioRenderer);
1238 OH_AudioStreamBuilder_Destroy(builder);
1239 return res;
1240 }
1241
AudioRendererSetVolume_02(napi_env env,napi_callback_info info)1242 static napi_value AudioRendererSetVolume_02(napi_env env, napi_callback_info info)
1243 {
1244 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1245 OH_AudioRenderer* audioRenderer;
1246 napi_value res;
1247 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1248 if (result != AUDIOSTREAM_SUCCESS) {
1249 napi_create_int32(env, TEST_FAIL, &res);
1250 return res;
1251 }
1252 float volumeSet = 0.0;
1253 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1254 LOG("OH_AudioRenderer_SetVolume 0.0, result is %{public}d", result);
1255 if (result != AUDIOSTREAM_SUCCESS) {
1256 napi_create_int32(env, TEST_FAIL, &res);
1257 return res;
1258 }
1259 float volumeGet;
1260 result = OH_AudioRenderer_GetVolume(audioRenderer, &volumeGet);
1261 LOG("OH_AudioRenderer_GetVolume, volumeGet is %f, %{public}d", volumeGet, result);
1262 if (result != AUDIOSTREAM_SUCCESS || volumeGet != volumeSet) {
1263 napi_create_int32(env, TEST_FAIL, &res);
1264 } else {
1265 napi_create_int32(env, TEST_PASS, &res);
1266 }
1267 OH_AudioRenderer_Release(audioRenderer);
1268 OH_AudioStreamBuilder_Destroy(builder);
1269 return res;
1270 }
1271
AudioRendererSetVolume_03(napi_env env,napi_callback_info info)1272 static napi_value AudioRendererSetVolume_03(napi_env env, napi_callback_info info)
1273 {
1274 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1275 OH_AudioRenderer* audioRenderer;
1276 napi_value res;
1277 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1278 if (result != AUDIOSTREAM_SUCCESS) {
1279 napi_create_int32(env, TEST_FAIL, &res);
1280 return res;
1281 }
1282 float volumeSet = 0.3; // 0.3:value of volumeSet
1283 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1284 LOG("OH_AudioRenderer_SetVolume 0.3, result is %{public}d", result);
1285 if (result != AUDIOSTREAM_SUCCESS) {
1286 napi_create_int32(env, TEST_FAIL, &res);
1287 return res;
1288 }
1289 volumeSet = 0.8; // 0.8:value of volumeSet
1290 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1291 LOG("OH_AudioRenderer_SetVolume 0.8, result is %{public}d", result);
1292 if (result != AUDIOSTREAM_SUCCESS) {
1293 napi_create_int32(env, TEST_FAIL, &res);
1294 return res;
1295 }
1296 float volumeGet;
1297 result = OH_AudioRenderer_GetVolume(audioRenderer, &volumeGet);
1298 LOG("OH_AudioRenderer_GetVolume, volumeGet is %f, %{public}d", volumeGet, result);
1299 if (result != AUDIOSTREAM_SUCCESS || volumeGet != volumeSet) {
1300 napi_create_int32(env, TEST_FAIL, &res);
1301 } else {
1302 napi_create_int32(env, TEST_PASS, &res);
1303 }
1304 OH_AudioRenderer_Release(audioRenderer);
1305 OH_AudioStreamBuilder_Destroy(builder);
1306 return res;
1307 }
1308
AudioRendererSetVolume_04(napi_env env,napi_callback_info info)1309 static napi_value AudioRendererSetVolume_04(napi_env env, napi_callback_info info)
1310 {
1311 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1312 OH_AudioRenderer* audioRenderer;
1313 napi_value res;
1314 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1315 if (result != AUDIOSTREAM_SUCCESS) {
1316 napi_create_int32(env, TEST_FAIL, &res);
1317 return res;
1318 }
1319 float volumeSet = -1.0;
1320 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1321 LOG("OH_AudioRenderer_SetVolume -1.0 result is %{public}d", result);
1322 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1323 napi_create_int32(env, TEST_FAIL, &res);
1324 } else {
1325 napi_create_int32(env, TEST_PASS, &res);
1326 }
1327 OH_AudioRenderer_Release(audioRenderer);
1328 OH_AudioStreamBuilder_Destroy(builder);
1329 return res;
1330 }
1331
AudioRendererSetVolume_05(napi_env env,napi_callback_info info)1332 static napi_value AudioRendererSetVolume_05(napi_env env, napi_callback_info info)
1333 {
1334 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1335 OH_AudioRenderer* audioRenderer;
1336 napi_value res;
1337 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1338 if (result != AUDIOSTREAM_SUCCESS) {
1339 napi_create_int32(env, TEST_FAIL, &res);
1340 return res;
1341 }
1342 float volumeSet = 1.5; // 1.5:value of volumeSet
1343 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1344 LOG("OH_AudioRenderer_SetVolume 1.5 result is %{public}d", result);
1345 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1346 napi_create_int32(env, TEST_FAIL, &res);
1347 } else {
1348 napi_create_int32(env, TEST_PASS, &res);
1349 }
1350 OH_AudioRenderer_Release(audioRenderer);
1351 OH_AudioStreamBuilder_Destroy(builder);
1352 return res;
1353 }
1354
AudioRendererSetVolume_06(napi_env env,napi_callback_info info)1355 static napi_value AudioRendererSetVolume_06(napi_env env, napi_callback_info info)
1356 {
1357 OH_AudioRenderer* audioRenderer = nullptr;
1358 float volumeSet = 0.5; // 0.5:value of volumeSet
1359 napi_value res;
1360 OH_AudioStream_Result result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1361 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1362 napi_create_int32(env, TEST_FAIL, &res);
1363 } else {
1364 napi_create_int32(env, TEST_PASS, &res);
1365 }
1366 LOG("OH_AudioRenderer_GetVolume, volumeGet is %f, %{public}d", volumeSet, result);
1367 return res;
1368 }
1369
AudioRendererSetVolumeWithRamp_01(napi_env env,napi_callback_info info)1370 static napi_value AudioRendererSetVolumeWithRamp_01(napi_env env, napi_callback_info info)
1371 {
1372 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1373 OH_AudioRenderer* audioRenderer;
1374 napi_value res;
1375 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1376 if (result != AUDIOSTREAM_SUCCESS) {
1377 napi_create_int32(env, TEST_FAIL, &res);
1378 return res;
1379 }
1380 float volumeSet = 0.0;
1381 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1382 LOG("OH_AudioRenderer_SetVolume 0.0 result is %{public}d", result);
1383 if (result != AUDIOSTREAM_SUCCESS) {
1384 napi_create_int32(env, TEST_FAIL, &res);
1385 return res;
1386 }
1387 int32_t durationMs = 1000; // 1000:value of durationMs
1388 volumeSet = 1.0;
1389 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1390 LOG("OH_AudioRenderer_SetVolumeWithRamp 0.0->1.0 1000 result is %{public}d", result);
1391 if (result != AUDIOSTREAM_SUCCESS) {
1392 napi_create_int32(env, TEST_FAIL, &res);
1393 } else {
1394 napi_create_int32(env, TEST_PASS, &res);
1395 }
1396 OH_AudioRenderer_Release(audioRenderer);
1397 OH_AudioStreamBuilder_Destroy(builder);
1398 return res;
1399 }
1400
AudioRendererSetVolumeWithRamp_02(napi_env env,napi_callback_info info)1401 static napi_value AudioRendererSetVolumeWithRamp_02(napi_env env, napi_callback_info info)
1402 {
1403 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1404 OH_AudioRenderer* audioRenderer;
1405 napi_value res;
1406 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1407 if (result != AUDIOSTREAM_SUCCESS) {
1408 napi_create_int32(env, TEST_FAIL, &res);
1409 return res;
1410 }
1411 float volumeSet = 1.0;
1412 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1413 LOG("OH_AudioRenderer_SetVolume 1.0 result is %{public}d", result);
1414 if (result != AUDIOSTREAM_SUCCESS) {
1415 napi_create_int32(env, TEST_FAIL, &res);
1416 return res;
1417 }
1418 int32_t durationMs = 100; // 100:value of durationMs
1419 volumeSet = 0.0;
1420 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1421 LOG("OH_AudioRenderer_SetVolumeWithRamp 1.0->0.0 100 result is %{public}d", result);
1422 if (result != AUDIOSTREAM_SUCCESS) {
1423 napi_create_int32(env, TEST_FAIL, &res);
1424 } else {
1425 napi_create_int32(env, TEST_PASS, &res);
1426 }
1427 OH_AudioRenderer_Release(audioRenderer);
1428 OH_AudioStreamBuilder_Destroy(builder);
1429 return res;
1430 }
1431
AudioRendererSetVolumeWithRamp_03(napi_env env,napi_callback_info info)1432 static napi_value AudioRendererSetVolumeWithRamp_03(napi_env env, napi_callback_info info)
1433 {
1434 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1435 OH_AudioRenderer* audioRenderer;
1436 napi_value res;
1437 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1438 if (result != AUDIOSTREAM_SUCCESS) {
1439 napi_create_int32(env, TEST_FAIL, &res);
1440 return res;
1441 }
1442 float volumeSet = 0.0;
1443 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1444 LOG("OH_AudioRenderer_SetVolume 0.0 result is %{public}d", result);
1445 if (result != AUDIOSTREAM_SUCCESS) {
1446 napi_create_int32(env, TEST_FAIL, &res);
1447 return res;
1448 }
1449 int32_t durationMs = 10; // 10:value of durationMs
1450 volumeSet = 0.5; // 0.5:value of volumeSet
1451 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1452 LOG("OH_AudioRenderer_SetVolumeWithRamp 0.0->0.5 10 result is %{public}d", result);
1453 if (result != AUDIOSTREAM_SUCCESS) {
1454 napi_create_int32(env, TEST_FAIL, &res);
1455 } else {
1456 napi_create_int32(env, TEST_PASS, &res);
1457 }
1458 OH_AudioRenderer_Release(audioRenderer);
1459 OH_AudioStreamBuilder_Destroy(builder);
1460 return res;
1461 }
1462
AudioRendererSetVolumeWithRamp_04(napi_env env,napi_callback_info info)1463 static napi_value AudioRendererSetVolumeWithRamp_04(napi_env env, napi_callback_info info)
1464 {
1465 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1466 OH_AudioRenderer* audioRenderer;
1467 napi_value res;
1468 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1469 if (result != AUDIOSTREAM_SUCCESS) {
1470 napi_create_int32(env, TEST_FAIL, &res);
1471 return res;
1472 }
1473 float volumeSet = 1.0;
1474 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1475 LOG("OH_AudioRenderer_SetVolume 1.0 result is %{public}d", result);
1476 if (result != AUDIOSTREAM_SUCCESS) {
1477 napi_create_int32(env, TEST_FAIL, &res);
1478 return res;
1479 }
1480 int32_t durationMs = 10; // 10:value of durationMs
1481 volumeSet = 0.5; // 0.5:value of volumeSet
1482 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1483 LOG("OH_AudioRenderer_SetVolumeWithRamp 1.0->0.5 10 result is %{public}d", result);
1484 if (result != AUDIOSTREAM_SUCCESS) {
1485 napi_create_int32(env, TEST_FAIL, &res);
1486 } else {
1487 napi_create_int32(env, TEST_PASS, &res);
1488 }
1489 OH_AudioRenderer_Release(audioRenderer);
1490 OH_AudioStreamBuilder_Destroy(builder);
1491 return res;
1492 }
1493
AudioRendererSetVolumeWithRamp_05(napi_env env,napi_callback_info info)1494 static napi_value AudioRendererSetVolumeWithRamp_05(napi_env env, napi_callback_info info)
1495 {
1496 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1497 OH_AudioRenderer* audioRenderer;
1498 napi_value res;
1499 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1500 if (result != AUDIOSTREAM_SUCCESS) {
1501 napi_create_int32(env, TEST_FAIL, &res);
1502 return res;
1503 }
1504 float volumeSet = 0.0;
1505 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1506 LOG("OH_AudioRenderer_SetVolume 0.0 result is %{public}d", result);
1507 if (result != AUDIOSTREAM_SUCCESS) {
1508 napi_create_int32(env, TEST_FAIL, &res);
1509 return res;
1510 }
1511 int32_t durationMs = 10; // 10:value of durationMs
1512 volumeSet = 0.0;
1513 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1514 LOG("OH_AudioRenderer_SetVolumeWithRamp 0.0->0.0 10 result is %{public}d", result);
1515 if (result != AUDIOSTREAM_SUCCESS) {
1516 napi_create_int32(env, TEST_FAIL, &res);
1517 } else {
1518 napi_create_int32(env, TEST_PASS, &res);
1519 }
1520 OH_AudioRenderer_Release(audioRenderer);
1521 OH_AudioStreamBuilder_Destroy(builder);
1522 return res;
1523 }
1524
AudioRendererSetVolumeWithRamp_06(napi_env env,napi_callback_info info)1525 static napi_value AudioRendererSetVolumeWithRamp_06(napi_env env, napi_callback_info info)
1526 {
1527 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1528 OH_AudioRenderer* audioRenderer;
1529 napi_value res;
1530 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1531 if (result != AUDIOSTREAM_SUCCESS) {
1532 napi_create_int32(env, TEST_FAIL, &res);
1533 return res;
1534 }
1535 float volumeSet = 1.0;
1536 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1537 LOG("OH_AudioRenderer_SetVolume 1.0 result is %{public}d", result);
1538 if (result != AUDIOSTREAM_SUCCESS) {
1539 napi_create_int32(env, TEST_FAIL, &res);
1540 return res;
1541 }
1542 int32_t durationMs = 10; // 10:value of durationMs
1543 volumeSet = 1.0;
1544 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1545 LOG("OH_AudioRenderer_SetVolumeWithRamp 1.0->1.0 10 result is %{public}d", result);
1546 if (result != AUDIOSTREAM_SUCCESS) {
1547 napi_create_int32(env, TEST_FAIL, &res);
1548 } else {
1549 napi_create_int32(env, TEST_PASS, &res);
1550 }
1551 OH_AudioRenderer_Release(audioRenderer);
1552 OH_AudioStreamBuilder_Destroy(builder);
1553 return res;
1554 }
1555
AudioRendererSetVolumeWithRamp_07(napi_env env,napi_callback_info info)1556 static napi_value AudioRendererSetVolumeWithRamp_07(napi_env env, napi_callback_info info)
1557 {
1558 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1559 OH_AudioRenderer* audioRenderer;
1560 napi_value res;
1561 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1562 if (result != AUDIOSTREAM_SUCCESS) {
1563 napi_create_int32(env, TEST_FAIL, &res);
1564 return res;
1565 }
1566 float volumeSet = 1.0;
1567 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1568 LOG("OH_AudioRenderer_SetVolume 1.0 result is %{public}d", result);
1569 if (result != AUDIOSTREAM_SUCCESS) {
1570 napi_create_int32(env, TEST_FAIL, &res);
1571 return res;
1572 }
1573 int32_t durationMs = 100; // 100:value of durationMs
1574 volumeSet = 1.2; // 1.2:value of volumeSet
1575 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1576 LOG("OH_AudioRenderer_SetVolumeWithRamp 1.0->1.2 100 result is %{public}d", result);
1577 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1578 napi_create_int32(env, TEST_FAIL, &res);
1579 } else {
1580 napi_create_int32(env, TEST_PASS, &res);
1581 }
1582 OH_AudioRenderer_Release(audioRenderer);
1583 OH_AudioStreamBuilder_Destroy(builder);
1584 return res;
1585 }
1586
AudioRendererSetVolumeWithRamp_08(napi_env env,napi_callback_info info)1587 static napi_value AudioRendererSetVolumeWithRamp_08(napi_env env, napi_callback_info info)
1588 {
1589 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1590 OH_AudioRenderer* audioRenderer;
1591 napi_value res;
1592 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1593 if (result != AUDIOSTREAM_SUCCESS) {
1594 napi_create_int32(env, TEST_FAIL, &res);
1595 return res;
1596 }
1597 float volumeSet = 0.0;
1598 result = OH_AudioRenderer_SetVolume(audioRenderer, volumeSet);
1599 LOG("OH_AudioRenderer_SetVolume 0.0 result is %{public}d", result);
1600 if (result != AUDIOSTREAM_SUCCESS) {
1601 napi_create_int32(env, TEST_FAIL, &res);
1602 return res;
1603 }
1604 int32_t durationMs = 100; // 100:value of durationMs
1605 volumeSet = -0.2; // -0.2:invalid value of volumeSet
1606 result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1607 LOG("OH_AudioRenderer_SetVolumeWithRamp 0.0->-0.2 100 result is %{public}d", result);
1608 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1609 napi_create_int32(env, TEST_FAIL, &res);
1610 } else {
1611 napi_create_int32(env, TEST_PASS, &res);
1612 }
1613 OH_AudioRenderer_Release(audioRenderer);
1614 OH_AudioStreamBuilder_Destroy(builder);
1615 return res;
1616 }
1617
AudioRendererSetVolumeWithRamp_09(napi_env env,napi_callback_info info)1618 static napi_value AudioRendererSetVolumeWithRamp_09(napi_env env, napi_callback_info info)
1619 {
1620 OH_AudioRenderer* audioRenderer = nullptr;
1621 float volumeSet = 0.5; // 0.5:value of volumeSet
1622 int32_t durationMs = 10; // 10:value of durationMs
1623 OH_AudioStream_Result result = OH_AudioRenderer_SetVolumeWithRamp(audioRenderer, volumeSet, durationMs);
1624 napi_value res;
1625 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1626 napi_create_int32(env, TEST_FAIL, &res);
1627 } else {
1628 napi_create_int32(env, TEST_PASS, &res);
1629 }
1630 return res;
1631 }
1632
AudioRendererOnMarkReachedCb(OH_AudioRenderer * renderer,uint32_t samplePos,void * userData)1633 static void AudioRendererOnMarkReachedCb(OH_AudioRenderer* renderer, uint32_t samplePos, void* userData)
1634 {
1635 g_flag = true;
1636 LOG("AudioRendererOnMarkReachedCb samplePos: %{public}d \n", samplePos);
1637 }
1638
AudioRendererSetOnMarkReached_01(napi_env env,napi_callback_info info)1639 static napi_value AudioRendererSetOnMarkReached_01(napi_env env, napi_callback_info info)
1640 {
1641 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1642 OH_AudioRenderer *audioRenderer;
1643 napi_value res;
1644 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1645 if (result != AUDIOSTREAM_SUCCESS) {
1646 napi_create_int32(env, TEST_FAIL, &res);
1647 return res;
1648 }
1649 uint32_t samplePos = 1;
1650 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1651 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1652 LOG("OH_Audio_Renderer_SetOnMarkReached_01 result is: %{public}d", result);
1653 if (result != AUDIOSTREAM_SUCCESS) {
1654 napi_create_int32(env, TEST_FAIL, &res);
1655 } else {
1656 napi_create_int32(env, TEST_PASS, &res);
1657 }
1658 OH_AudioRenderer_Release(audioRenderer);
1659 OH_AudioStreamBuilder_Destroy(builder);
1660 return res;
1661 }
1662
AudioRendererSetOnMarkReached_02(napi_env env,napi_callback_info info)1663 static napi_value AudioRendererSetOnMarkReached_02(napi_env env, napi_callback_info info)
1664 {
1665 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1666 OH_AudioRenderer *audioRenderer;
1667 napi_value res;
1668 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1669 if (result != AUDIOSTREAM_SUCCESS) {
1670 napi_create_int32(env, TEST_FAIL, &res);
1671 return res;
1672 }
1673 uint32_t samplePos = 0;
1674 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1675 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1676 LOG("OH_Audio_Renderer_SetOnMarkReached_02 result is: %{public}d", result);
1677 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1678 napi_create_int32(env, TEST_FAIL, &res);
1679 } else {
1680 napi_create_int32(env, TEST_PASS, &res);
1681 }
1682 OH_AudioRenderer_Release(audioRenderer);
1683 OH_AudioStreamBuilder_Destroy(builder);
1684 return res;
1685 }
1686
AudioRendererSetOnMarkReached_03(napi_env env,napi_callback_info info)1687 static napi_value AudioRendererSetOnMarkReached_03(napi_env env, napi_callback_info info)
1688 {
1689 g_flag = false;
1690 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1691 napi_value res;
1692 OH_AudioStreamBuilder_SetSamplingRate(builder, g_samplingRate);
1693 OH_AudioStreamBuilder_SetChannelCount(builder, g_channelCount);
1694 OH_AudioStreamBuilder_SetLatencyMode(builder, (OH_AudioStream_LatencyMode)g_latencyMode);
1695 OH_AudioStreamBuilder_SetSampleFormat(builder, (OH_AudioStream_SampleFormat)g_sampleFormat);
1696 OH_AudioRenderer_Callbacks callbacks;
1697 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
1698 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
1699 if (result != AUDIOSTREAM_SUCCESS) {
1700 napi_create_int32(env, TEST_FAIL, &res);
1701 return res;
1702 }
1703 // set buffer size to g_frameSize
1704 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
1705
1706 OH_AudioRenderer *audioRenderer;
1707 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1708 uint32_t samplePos = 1;
1709 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1710 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1711 LOG("OH_Audio_Renderer_SetOnMarkReached_03 result is: %{public}d", result);
1712 if (result != AUDIOSTREAM_SUCCESS) {
1713 napi_create_int32(env, TEST_FAIL, &res);
1714 return res;
1715 }
1716 const int waitTime = 2;
1717 OH_AudioRenderer_Start(audioRenderer);
1718 sleep(waitTime); // 2:sleep 2 seconds
1719 OH_AudioRenderer_Stop(audioRenderer);
1720 if (!g_flag) {
1721 napi_create_int32(env, TEST_FAIL, &res);
1722 } else {
1723 napi_create_int32(env, TEST_PASS, &res);
1724 }
1725 OH_AudioRenderer_Release(audioRenderer);
1726 OH_AudioStreamBuilder_Destroy(builder);
1727 return res;
1728 }
1729
AudioRendererSetOnMarkReached_04(napi_env env,napi_callback_info info)1730 static napi_value AudioRendererSetOnMarkReached_04(napi_env env, napi_callback_info info)
1731 {
1732 OH_AudioRenderer* audioRenderer = nullptr;
1733 uint32_t samplePos = 1;
1734 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1735 OH_AudioStream_Result result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1736 napi_value res;
1737 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
1738 napi_create_int32(env, TEST_FAIL, &res);
1739 } else {
1740 napi_create_int32(env, TEST_PASS, &res);
1741 }
1742 return res;
1743 }
1744
AudioRendererSetOnMarkReached_05(napi_env env,napi_callback_info info)1745 static napi_value AudioRendererSetOnMarkReached_05(napi_env env, napi_callback_info info)
1746 {
1747 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1748 OH_AudioRenderer *audioRenderer;
1749 napi_value res;
1750 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1751 uint32_t samplePos = 4294967295; // 4294967295:uint32_t 2^32 - 1
1752 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1753 OH_AudioStream_Result result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1754 LOG("OH_Audio_Renderer_SetOnMarkReached_05 result is: %{public}d", result);
1755 if (result != AUDIOSTREAM_SUCCESS) {
1756 napi_create_int32(env, TEST_FAIL, &res);
1757 } else {
1758 napi_create_int32(env, TEST_PASS, &res);
1759 }
1760 OH_AudioRenderer_Release(audioRenderer);
1761 OH_AudioStreamBuilder_Destroy(builder);
1762 return res;
1763 }
1764
AudioRendererSetOnMarkReached_06(napi_env env,napi_callback_info info)1765 static napi_value AudioRendererSetOnMarkReached_06(napi_env env, napi_callback_info info)
1766 {
1767 g_flag = false;
1768 g_file = fopen(g_filePath.c_str(), "rb");
1769 if (g_file == nullptr) {
1770 LOG("fopen fail. g_file: %p\n", g_file);
1771 }
1772 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1773 napi_value res;
1774 OH_AudioStreamBuilder_SetSamplingRate(builder, g_samplingRate);
1775 OH_AudioStreamBuilder_SetChannelCount(builder, g_channelCount);
1776 OH_AudioStreamBuilder_SetLatencyMode(builder, (OH_AudioStream_LatencyMode)g_latencyMode);
1777 OH_AudioStreamBuilder_SetSampleFormat(builder, (OH_AudioStream_SampleFormat)g_sampleFormat);
1778 OH_AudioRenderer_Callbacks callbacks;
1779 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnMarkReachedWriteData;
1780 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
1781 if (result != AUDIOSTREAM_SUCCESS) {
1782 napi_create_int32(env, TEST_FAIL, &res);
1783 return res;
1784 }
1785 // set buffer size to g_frameSize
1786 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
1787
1788 OH_AudioRenderer *audioRenderer;
1789 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1790 uint32_t samplePos = 10538568; // 10538568:Test_44100_2.wav The total number of frames in the audio file
1791 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1792 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1793 LOG("OH_Audio_Renderer_SetOnMarkReached_06 result is: %{public}d", result);
1794 if (result != AUDIOSTREAM_SUCCESS) {
1795 napi_create_int32(env, TEST_FAIL, &res);
1796 return res;
1797 }
1798 const int waitTime = 220;
1799 OH_AudioRenderer_Start(audioRenderer);
1800 Delay(waitTime); // 220:Play the entire music
1801 OH_AudioRenderer_Stop(audioRenderer);
1802 if (!g_flag) {
1803 napi_create_int32(env, TEST_FAIL, &res);
1804 } else {
1805 napi_create_int32(env, TEST_PASS, &res);
1806 }
1807 OH_AudioRenderer_Release(audioRenderer);
1808 OH_AudioStreamBuilder_Destroy(builder);
1809 return res;
1810 }
1811
AudioRendererSetOnMarkReached_07(napi_env env,napi_callback_info info)1812 static napi_value AudioRendererSetOnMarkReached_07(napi_env env, napi_callback_info info)
1813 {
1814 g_flag = false;
1815 g_file = fopen(g_filePath.c_str(), "rb");
1816 if (g_file == nullptr) {
1817 LOG("fopen fail. g_file: %p\n", g_file);
1818 }
1819 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1820 napi_value res;
1821 OH_AudioStreamBuilder_SetSamplingRate(builder, g_samplingRate);
1822 OH_AudioStreamBuilder_SetChannelCount(builder, g_channelCount);
1823 OH_AudioStreamBuilder_SetLatencyMode(builder, (OH_AudioStream_LatencyMode)g_latencyMode);
1824 OH_AudioStreamBuilder_SetSampleFormat(builder, (OH_AudioStream_SampleFormat)g_sampleFormat);
1825 OH_AudioRenderer_Callbacks callbacks;
1826 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnMarkReachedWriteData;
1827 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
1828 if (result != AUDIOSTREAM_SUCCESS) {
1829 napi_create_int32(env, TEST_FAIL, &res);
1830 return res;
1831 }
1832 // set buffer size to g_frameSize
1833 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
1834
1835 OH_AudioRenderer *audioRenderer;
1836 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1837 uint32_t samplePos = 10538570; // 10538570:Test_44100_2.wav The total number of frames in the audio file + 2
1838 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1839 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1840 LOG("OH_Audio_Renderer_SetOnMarkReached_07 result is: %{public}d", result);
1841 if (result != AUDIOSTREAM_SUCCESS) {
1842 napi_create_int32(env, TEST_FAIL, &res);
1843 return res;
1844 }
1845 const int waitTime = 10;
1846 OH_AudioRenderer_Start(audioRenderer);
1847 Delay(waitTime); // 10:Play for 10 seconds
1848 OH_AudioRenderer_Stop(audioRenderer);
1849 if (!g_flag) {
1850 napi_create_int32(env, TEST_PASS, &res);
1851 } else {
1852 napi_create_int32(env, TEST_FAIL, &res);
1853 }
1854 OH_AudioRenderer_Release(audioRenderer);
1855 OH_AudioStreamBuilder_Destroy(builder);
1856 return res;
1857 }
1858
AudioRendererSetOnMarkReached_08(napi_env env,napi_callback_info info)1859 static napi_value AudioRendererSetOnMarkReached_08(napi_env env, napi_callback_info info)
1860 {
1861 g_flag = false;
1862 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1863 napi_value res;
1864 OH_AudioStreamBuilder_SetSamplingRate(builder, g_samplingRate);
1865 OH_AudioStreamBuilder_SetChannelCount(builder, g_channelCount);
1866 OH_AudioStreamBuilder_SetLatencyMode(builder, (OH_AudioStream_LatencyMode)g_latencyMode);
1867 OH_AudioStreamBuilder_SetSampleFormat(builder, (OH_AudioStream_SampleFormat)g_sampleFormat);
1868 OH_AudioRenderer_Callbacks callbacks;
1869 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
1870 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
1871 if (result != AUDIOSTREAM_SUCCESS) {
1872 napi_create_int32(env, TEST_FAIL, &res);
1873 return res;
1874 }
1875 // set buffer size to g_frameSize
1876 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
1877
1878 OH_AudioRenderer *audioRenderer;
1879 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1880 uint32_t samplePos = 1;
1881 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1882 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1883 if (result != AUDIOSTREAM_SUCCESS) {
1884 napi_create_int32(env, TEST_FAIL, &res);
1885 return res;
1886 }
1887 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1888 if (result != AUDIOSTREAM_SUCCESS) {
1889 napi_create_int32(env, TEST_FAIL, &res);
1890 return res;
1891 }
1892 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1893 LOG("OH_Audio_Renderer_SetOnMarkReached_08 result is: %{public}d", result);
1894 if (result != AUDIOSTREAM_SUCCESS) {
1895 napi_create_int32(env, TEST_FAIL, &res);
1896 return res;
1897 }
1898 LOG("audioRendererSetOnMarkReached_08 result = AUDIOSTREAM_SUCCESS");
1899 int waitTime = 10;
1900 OH_AudioRenderer_Start(audioRenderer);
1901 LOG("audioRendererSetOnMarkReached_08 OH_AudioRenderer_Start SUCCESS");
1902 Delay(waitTime);
1903 OH_AudioRenderer_Stop(audioRenderer);
1904 LOG("audioRendererSetOnMarkReached_08 OH_AudioRenderer_Stop SUCCESS");
1905 if (!g_flag) {
1906 napi_create_int32(env, TEST_FAIL, &res);
1907 } else {
1908 napi_create_int32(env, TEST_PASS, &res);
1909 }
1910 OH_AudioRenderer_Release(audioRenderer);
1911 LOG("audioRendererSetOnMarkReached_08 OH_AudioRenderer_Release SUCCESS");
1912 OH_AudioStreamBuilder_Destroy(builder);
1913 LOG("audioRendererSetOnMarkReached_08 OH_AudioStreamBuilder_Destroy SUCCESS");
1914 return res;
1915 }
1916
AudioRendererCancelMark_01(napi_env env,napi_callback_info info)1917 static napi_value AudioRendererCancelMark_01(napi_env env, napi_callback_info info)
1918 {
1919 g_flag = false;
1920 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
1921 napi_value res;
1922 OH_AudioStreamBuilder_SetSamplingRate(builder, g_samplingRate);
1923 OH_AudioStreamBuilder_SetChannelCount(builder, g_channelCount);
1924 OH_AudioStreamBuilder_SetLatencyMode(builder, (OH_AudioStream_LatencyMode)g_latencyMode);
1925 OH_AudioStreamBuilder_SetSampleFormat(builder, (OH_AudioStream_SampleFormat)g_sampleFormat);
1926 OH_AudioRenderer_Callbacks callbacks;
1927 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
1928 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
1929 if (result != AUDIOSTREAM_SUCCESS) {
1930 napi_create_int32(env, TEST_FAIL, &res);
1931 return res;
1932 }
1933 // set buffer size to g_frameSize
1934 result = OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
1935 if (result != AUDIOSTREAM_SUCCESS) {
1936 napi_create_int32(env, TEST_FAIL, &res);
1937 return res;
1938 }
1939
1940 OH_AudioRenderer *audioRenderer;
1941 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1942 uint32_t samplePos = 1;
1943 OH_AudioRenderer_OnMarkReachedCallback callback = AudioRendererOnMarkReachedCb;
1944 result = OH_AudioRenderer_SetMarkPosition(audioRenderer, samplePos, callback, nullptr);
1945 LOG("OH_Audio_Renderer_SetOnMarkReached_03 result is: %{public}d", result);
1946 if (result != AUDIOSTREAM_SUCCESS) {
1947 napi_create_int32(env, TEST_FAIL, &res);
1948 return res;
1949 }
1950 result = OH_AudioRenderer_Start(audioRenderer);
1951 if (result != AUDIOSTREAM_SUCCESS) {
1952 napi_create_int32(env, TEST_FAIL, &res);
1953 return res;
1954 }
1955 const int waitTime = 2;
1956 sleep(waitTime); // 2:sleep 2 seconds
1957 // CancelMark
1958 result = OH_AudioRenderer_CancelMark(audioRenderer);
1959 LOG("OH_AudioRenderer_CancelMark result is %{public}d", result);
1960 if (result != AUDIOSTREAM_SUCCESS) {
1961 napi_create_int32(env, TEST_FAIL, &res);
1962 return res;
1963 }
1964 OH_AudioRenderer_Stop(audioRenderer);
1965 if (!g_flag) {
1966 napi_create_int32(env, TEST_FAIL, &res);
1967 } else {
1968 napi_create_int32(env, TEST_PASS, &res);
1969 }
1970 OH_AudioRenderer_Release(audioRenderer);
1971 OH_AudioStreamBuilder_Destroy(builder);
1972 return res;
1973 }
1974
AudioRendererCancelMark_02(napi_env env,napi_callback_info info)1975 static napi_value AudioRendererCancelMark_02(napi_env env, napi_callback_info info)
1976 {
1977 OH_AudioStreamBuilder* builder = CreateRenderBuilder();
1978 OH_AudioRenderer* audioRenderer;
1979 napi_value res;
1980 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
1981 if (result != AUDIOSTREAM_SUCCESS) {
1982 napi_create_int32(env, TEST_FAIL, &res);
1983 return res;
1984 }
1985 result = OH_AudioRenderer_CancelMark(audioRenderer);
1986 LOG("OH_AudioRenderer_CancelMark result is %{public}d", result);
1987 OH_AudioRenderer_Release(audioRenderer);
1988 OH_AudioStreamBuilder_Destroy(builder);
1989 if (result != AUDIOSTREAM_SUCCESS) {
1990 napi_create_int32(env, TEST_FAIL, &res);
1991 } else {
1992 napi_create_int32(env, TEST_PASS, &res);
1993 }
1994 return res;
1995 }
1996
AudioRendererCancelMark_03(napi_env env,napi_callback_info info)1997 static napi_value AudioRendererCancelMark_03(napi_env env, napi_callback_info info)
1998 {
1999 OH_AudioRenderer* audioRenderer = nullptr;
2000 OH_AudioStream_Result result = OH_AudioRenderer_CancelMark(audioRenderer);
2001 napi_value res;
2002 LOG("OH_AudioRenderer_CancelMark result is %{public}d", result);
2003 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
2004 napi_create_int32(env, TEST_FAIL, &res);
2005 } else {
2006 napi_create_int32(env, TEST_PASS, &res);
2007 }
2008 return res;
2009 }
2010
AudioRendererInterruptEvent(OH_AudioRenderer * renderer,void * userData,OH_AudioInterrupt_ForceType type,OH_AudioInterrupt_Hint hint)2011 static int32_t AudioRendererInterruptEvent(OH_AudioRenderer* renderer,
2012 void* userData,
2013 OH_AudioInterrupt_ForceType type,
2014 OH_AudioInterrupt_Hint hint)
2015 {
2016 g_mark = true;
2017 LOG("AudioRendererInterruptEvent type = %{public}d, hint = %{public}d\n", type, hint);
2018 return 0;
2019 }
2020
AudioRendererSetInterruptMode_01(napi_env env,napi_callback_info info)2021 static napi_value AudioRendererSetInterruptMode_01(napi_env env, napi_callback_info info)
2022 {
2023 g_mark = false;
2024 napi_value res;
2025 // 1. create builder
2026 OH_AudioStreamBuilder* builder1;
2027 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
2028 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
2029 OH_AudioStreamBuilder_Create(&builder1, type);
2030
2031 OH_AudioStreamBuilder* builder2;
2032 OH_AudioStreamBuilder_Create(&builder2, type);
2033
2034 // 2. set builder1 builder2 params
2035 OH_AudioStreamBuilder_SetRendererInfo(builder1, usage);
2036 OH_AudioRenderer_Callbacks callbacks;
2037 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
2038 callbacks.OH_AudioRenderer_OnInterruptEvent = AudioRendererInterruptEvent;
2039 OH_AudioStreamBuilder_SetRendererCallback(builder1, callbacks, nullptr);
2040 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder1, g_frameSize);
2041
2042 usage = AUDIOSTREAM_USAGE_MOVIE;
2043 OH_AudioStreamBuilder_SetRendererInfo(builder2, usage);
2044 OH_AudioStreamBuilder_SetRendererCallback(builder2, callbacks, nullptr);
2045 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder2, g_frameSize);
2046
2047 OH_AudioInterrupt_Mode mode = AUDIOSTREAM_INTERRUPT_MODE_SHARE;
2048 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder1, mode);
2049 LOG("OH_AudioStreamBuilder_SetRendererInterruptMode builder1 result is %{public}d", result);
2050 if (result != AUDIOSTREAM_SUCCESS) {
2051 napi_create_int32(env, TEST_FAIL, &res);
2052 return res;
2053 }
2054 result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder2, mode);
2055 LOG("OH_AudioStreamBuilder_SetRendererInterruptMode builder2 result is %{public}d", result);
2056 if (result != AUDIOSTREAM_SUCCESS) {
2057 napi_create_int32(env, TEST_FAIL, &res);
2058 return res;
2059 }
2060
2061 // 3. create audioRenderer1 audioRenderer2
2062 OH_AudioRenderer* audioRenderer1;
2063 result = OH_AudioStreamBuilder_GenerateRenderer(builder1, &audioRenderer1);
2064 if (result != AUDIOSTREAM_SUCCESS) {
2065 napi_create_int32(env, TEST_FAIL, &res);
2066 return res;
2067 }
2068
2069 OH_AudioRenderer* audioRenderer2;
2070 result = OH_AudioStreamBuilder_GenerateRenderer(builder2, &audioRenderer2);
2071 if (result != AUDIOSTREAM_SUCCESS) {
2072 napi_create_int32(env, TEST_FAIL, &res);
2073 return res;
2074 }
2075
2076 // 4. start
2077 result = OH_AudioRenderer_Start(audioRenderer1);
2078 if (result != AUDIOSTREAM_SUCCESS) {
2079 napi_create_int32(env, TEST_FAIL, &res);
2080 return res;
2081 }
2082 const int waitTime = 1;
2083 Delay(waitTime);
2084 result = OH_AudioRenderer_Start(audioRenderer2);
2085 if (result != AUDIOSTREAM_SUCCESS) {
2086 napi_create_int32(env, TEST_FAIL, &res);
2087 } else {
2088 napi_create_int32(env, TEST_PASS, &res);
2089 }
2090
2091 // 5. stop and release client
2092 OH_AudioRenderer_Stop(audioRenderer2);
2093 OH_AudioRenderer_Release(audioRenderer2);
2094 OH_AudioRenderer_Stop(audioRenderer1);
2095 OH_AudioRenderer_Release(audioRenderer1);
2096 OH_AudioStreamBuilder_Destroy(builder2);
2097 OH_AudioStreamBuilder_Destroy(builder1);
2098 return res;
2099 }
2100
AudioRendererSetInterruptMode_02(napi_env env,napi_callback_info info)2101 static napi_value AudioRendererSetInterruptMode_02(napi_env env, napi_callback_info info)
2102 {
2103 g_mark = false;
2104 napi_value res;
2105 // 1. create builder
2106 OH_AudioStreamBuilder* builder;
2107 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
2108 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
2109 OH_AudioStreamBuilder_Create(&builder, type);
2110
2111 OH_AudioStreamBuilder* builder2;
2112 OH_AudioStreamBuilder_Create(&builder2, type);
2113
2114 // 2. set builder params
2115 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
2116 OH_AudioRenderer_Callbacks callbacks;
2117 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
2118 callbacks.OH_AudioRenderer_OnInterruptEvent = AudioRendererInterruptEvent;
2119 OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
2120 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder, g_frameSize);
2121
2122 usage = AUDIOSTREAM_USAGE_VOICE_MESSAGE;
2123 OH_AudioStreamBuilder_SetRendererInfo(builder2, usage);
2124 OH_AudioStreamBuilder_SetRendererCallback(builder2, callbacks, nullptr);
2125 OH_AudioStreamBuilder_SetFrameSizeInCallback(builder2, g_frameSize);
2126
2127 OH_AudioInterrupt_Mode mode = AUDIOSTREAM_INTERRUPT_MODE_INDEPENDENT;
2128 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder, mode);
2129 LOG("OH_AudioStreamBuilder_SetRendererInterruptMode builder1 result is %{public}d", result);
2130 if (result != AUDIOSTREAM_SUCCESS) {
2131 napi_create_int32(env, TEST_FAIL, &res);
2132 return res;
2133 }
2134 result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder2, mode);
2135 LOG("OH_AudioStreamBuilder_SetRendererInterruptMode builder2 result is %{public}d", result);
2136 if (result != AUDIOSTREAM_SUCCESS) {
2137 napi_create_int32(env, TEST_FAIL, &res);
2138 return res;
2139 }
2140 LOG("AudioRendererSetInterruptMode_02 result == AUDIOSTREAM_SUCCESS");
2141 // 3. create audioRenderer1 audioRenderer2
2142 OH_AudioRenderer* audioRenderer1;
2143 result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer1);
2144 if (result != AUDIOSTREAM_SUCCESS) {
2145 napi_create_int32(env, TEST_FAIL, &res);
2146 return res;
2147 }
2148 LOG("AudioRendererSetInterruptMode_02 after audioRenderer1 OH_AudioStreamBuilder_GenerateRenderer");
2149 OH_AudioRenderer* audioRenderer2;
2150 result = OH_AudioStreamBuilder_GenerateRenderer(builder2, &audioRenderer2);
2151 if (result != AUDIOSTREAM_SUCCESS) {
2152 napi_create_int32(env, TEST_FAIL, &res);
2153 return res;
2154 }
2155 LOG("AudioRendererSetInterruptMode_02 after audioRenderer2 OH_AudioStreamBuilder_GenerateRenderer");
2156 // 4. start
2157 result = OH_AudioRenderer_Start(audioRenderer1);
2158 if (result != AUDIOSTREAM_SUCCESS) {
2159 napi_create_int32(env, TEST_FAIL, &res);
2160 return res;
2161 }
2162 LOG("AudioRendererSetInterruptMode_02 after audioRenderer1 OH_AudioRenderer_Start");
2163 const int waitTime = 1;
2164 sleep(waitTime);
2165 result = OH_AudioRenderer_Start(audioRenderer2);
2166 if (result != AUDIOSTREAM_SUCCESS) {
2167 napi_create_int32(env, TEST_FAIL, &res);
2168 return res;
2169 }
2170 LOG("AudioRendererSetInterruptMode_02 after audioRenderer2 OH_AudioRenderer_Start");
2171 sleep(waitTime); // 2:sleep 2 seconds
2172
2173 if (!g_mark) {
2174 napi_create_int32(env, TEST_FAIL, &res);
2175 } else {
2176 napi_create_int32(env, TEST_PASS, &res);
2177 }
2178 if (g_mark) {
2179 LOG("AudioRendererSetInterruptMode_02 g_mark is : %{public}d", 1);
2180 } else {
2181 LOG("AudioRendererSetInterruptMode_02 g_mark is : %{public}d", 0);
2182 }
2183 // 5. stop and release client
2184 OH_AudioRenderer_Stop(audioRenderer2);
2185 OH_AudioRenderer_Release(audioRenderer2);
2186 OH_AudioRenderer_Stop(audioRenderer1);
2187 OH_AudioRenderer_Release(audioRenderer1);
2188 OH_AudioStreamBuilder_Destroy(builder);
2189 OH_AudioStreamBuilder_Destroy(builder2);
2190 LOG("AudioRendererSetInterruptMode_02 res is: %{public}d", res);
2191 return res;
2192 }
2193
AudioRendererSetInterruptMode_03(napi_env env,napi_callback_info info)2194 static napi_value AudioRendererSetInterruptMode_03(napi_env env, napi_callback_info info)
2195 {
2196 napi_value res;
2197 OH_AudioStreamBuilder* builder = nullptr;
2198 OH_AudioInterrupt_Mode mode = AUDIOSTREAM_INTERRUPT_MODE_SHARE;
2199 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder, mode);
2200 LOG("OH_AudioRenderer_SetInterruptMode_03, result is: %{public}d", result);
2201 OH_AudioStreamBuilder_Destroy(builder);
2202 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
2203 napi_create_int32(env, TEST_FAIL, &res);
2204 } else {
2205 napi_create_int32(env, TEST_PASS, &res);
2206 }
2207 return res;
2208 }
2209
AudioRendererSetInterruptMode_04(napi_env env,napi_callback_info info)2210 static napi_value AudioRendererSetInterruptMode_04(napi_env env, napi_callback_info info)
2211 {
2212 napi_value res;
2213 OH_AudioStreamBuilder* builder = nullptr;
2214 OH_AudioInterrupt_Mode mode = static_cast<OH_AudioInterrupt_Mode>(-2);
2215 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInterruptMode(builder, mode);
2216 LOG("OH_AudioRenderer_SetInterruptMode_04, result is: %{public}d", result);
2217 OH_AudioStreamBuilder_Destroy(builder);
2218 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
2219 napi_create_int32(env, TEST_FAIL, &res);
2220 } else {
2221 napi_create_int32(env, TEST_PASS, &res);
2222 }
2223 return res;
2224 }
2225
DeviceChangeCallback(OH_AudioDevice_ChangeType type,OH_AudioDeviceDescriptorArray * audioDeviceDescriptorArray)2226 static int32_t DeviceChangeCallback(OH_AudioDevice_ChangeType type,
2227 OH_AudioDeviceDescriptorArray *audioDeviceDescriptorArray)
2228 {
2229 LOG("DeviceChangeCallback triggrred, ChangeType: %{public}d\n", type);
2230 if (type == AUDIO_DEVICE_CHANGE_TYPE_CONNECT) {
2231 int size = audioDeviceDescriptorArray->size;
2232 for (int index = 0; index < size; index++) {
2233 OH_AudioDeviceDescriptor *audioDeviceDescriptor = audioDeviceDescriptorArray->descriptors[index];
2234 if (audioDeviceDescriptor) {
2235 OH_AudioDevice_Role deviceRole = AUDIO_DEVICE_ROLE_OUTPUT;
2236 OH_AudioDeviceDescriptor_GetDeviceRole(audioDeviceDescriptor, &deviceRole);
2237 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_INVALID;
2238 OH_AudioDeviceDescriptor_GetDeviceType(audioDeviceDescriptor, &deviceType);
2239 LOG("Receive new device: DeviceRole: %{public}d, DeviceType: %{public}d\n", deviceRole, deviceType);
2240 }
2241 }
2242 }
2243 return 0;
2244 }
2245
AudioManagerGetAudioRoutingManager_01(napi_env env,napi_callback_info info)2246 static napi_value AudioManagerGetAudioRoutingManager_01(napi_env env, napi_callback_info info)
2247 {
2248 napi_value res;
2249 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2250 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2251 LOG("AudioManagerGetAudioRoutingManager_01, result is: %{public}d", result);
2252 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2253 napi_create_int32(env, TEST_FAIL, &res);
2254 } else {
2255 napi_create_int32(env, TEST_PASS, &res);
2256 }
2257 return res;
2258 }
2259
AudioRoutingManagerGetDevices_01(napi_env env,napi_callback_info info)2260 static napi_value AudioRoutingManagerGetDevices_01(napi_env env, napi_callback_info info)
2261 {
2262 napi_value res;
2263 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2264 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2265 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2266 napi_create_int32(env, TEST_FAIL, &res);
2267 return res;
2268 }
2269 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_NONE;
2270 OH_AudioDeviceDescriptorArray *array = nullptr;
2271 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2272 LOG("AudioRoutingManagerGetDevices_01, result is: %{public}d", result);
2273 if (result != AUDIOCOMMON_RESULT_ERROR_NO_MEMORY || array != nullptr) {
2274 napi_create_int32(env, TEST_FAIL, &res);
2275 } else {
2276 napi_create_int32(env, TEST_PASS, &res);
2277 }
2278 return res;
2279 }
2280
AudioRoutingManagerGetDevices_02(napi_env env,napi_callback_info info)2281 static napi_value AudioRoutingManagerGetDevices_02(napi_env env, napi_callback_info info)
2282 {
2283 napi_value res;
2284 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2285 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2286 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2287 napi_create_int32(env, TEST_FAIL, &res);
2288 return res;
2289 }
2290 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
2291 OH_AudioDeviceDescriptorArray *array = nullptr;
2292 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2293 LOG("AudioRoutingManagerGetDevices_02, result is: %{public}d", result);
2294 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
2295 napi_create_int32(env, TEST_FAIL, &res);
2296 } else {
2297 napi_create_int32(env, TEST_PASS, &res);
2298 }
2299 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2300 return res;
2301 }
2302
AudioRoutingManagerGetDevices_03(napi_env env,napi_callback_info info)2303 static napi_value AudioRoutingManagerGetDevices_03(napi_env env, napi_callback_info info)
2304 {
2305 napi_value res;
2306 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2307 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2308 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2309 napi_create_int32(env, TEST_FAIL, &res);
2310 return res;
2311 }
2312 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_INPUT;
2313 OH_AudioDeviceDescriptorArray *array = nullptr;
2314 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2315 LOG("AudioRoutingManagerGetDevices_03, result is: %{public}d", result);
2316 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
2317 napi_create_int32(env, TEST_FAIL, &res);
2318 } else {
2319 napi_create_int32(env, TEST_PASS, &res);
2320 }
2321 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2322 return res;
2323 }
2324
AudioRoutingManagerGetDevices_04(napi_env env,napi_callback_info info)2325 static napi_value AudioRoutingManagerGetDevices_04(napi_env env, napi_callback_info info)
2326 {
2327 napi_value res;
2328 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2329 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2330 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2331 napi_create_int32(env, TEST_FAIL, &res);
2332 return res;
2333 }
2334 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
2335 OH_AudioDeviceDescriptorArray *array = nullptr;
2336 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2337 LOG("AudioRoutingManagerGetDevices_04, result is: %{public}d", result);
2338 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
2339 napi_create_int32(env, TEST_FAIL, &res);
2340 } else {
2341 napi_create_int32(env, TEST_PASS, &res);
2342 }
2343 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2344 return res;
2345 }
2346
AudioRoutingManagerGetDevices_05(napi_env env,napi_callback_info info)2347 static napi_value AudioRoutingManagerGetDevices_05(napi_env env, napi_callback_info info)
2348 {
2349 napi_value res;
2350 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2351 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2352 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2353 napi_create_int32(env, TEST_FAIL, &res);
2354 return res;
2355 }
2356 int32_t flag = -1;
2357 OH_AudioDevice_Flag deviceFlag = (OH_AudioDevice_Flag)flag;
2358 OH_AudioDeviceDescriptorArray *array = nullptr;
2359 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2360 LOG("AudioRoutingManagerGetDevices_05, result is: %{public}d", result);
2361 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM || array != nullptr) {
2362 napi_create_int32(env, TEST_FAIL, &res);
2363 } else {
2364 napi_create_int32(env, TEST_PASS, &res);
2365 }
2366 return res;
2367 }
2368
AudioRoutingManagerGetDevices_06(napi_env env,napi_callback_info info)2369 static napi_value AudioRoutingManagerGetDevices_06(napi_env env, napi_callback_info info)
2370 {
2371 napi_value res;
2372 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2373 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
2374 OH_AudioDeviceDescriptorArray *array = nullptr;
2375 OH_AudioCommon_Result result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2376 LOG("AudioRoutingManagerGetDevices_06, result is: %{public}d", result);
2377 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM || array != nullptr) {
2378 napi_create_int32(env, TEST_FAIL, &res);
2379 } else {
2380 napi_create_int32(env, TEST_PASS, &res);
2381 }
2382 return res;
2383 }
2384
AudioRoutingManagerGetDevices_07(napi_env env,napi_callback_info info)2385 static napi_value AudioRoutingManagerGetDevices_07(napi_env env, napi_callback_info info)
2386 {
2387 napi_value res;
2388 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2389 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2390 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2391 napi_create_int32(env, TEST_FAIL, &res);
2392 return res;
2393 }
2394 int32_t flag = 4;
2395 OH_AudioDevice_Flag deviceFlag = (OH_AudioDevice_Flag)flag;
2396 OH_AudioDeviceDescriptorArray *array = nullptr;
2397 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
2398 LOG("AudioRoutingManagerGetDevices_07, result is: %{public}d", result);
2399 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM || array != nullptr) {
2400 napi_create_int32(env, TEST_FAIL, &res);
2401 } else {
2402 napi_create_int32(env, TEST_PASS, &res);
2403 }
2404 return res;
2405 }
2406
AudioManagerGetManager_01(napi_env env,napi_callback_info info)2407 static napi_value AudioManagerGetManager_01(napi_env env, napi_callback_info info)
2408 {
2409 napi_value res;
2410 OH_AudioManager **audioManager = nullptr;
2411 OH_AudioCommon_Result result = OH_GetAudioManager(audioManager);
2412 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2413 napi_create_int32(env, TEST_FAIL, &res);
2414 return res;
2415 }
2416 napi_create_int32(env, TEST_PASS, &res);
2417 return res;
2418 }
2419
AudioManagerGetManager_02(napi_env env,napi_callback_info info)2420 static napi_value AudioManagerGetManager_02(napi_env env, napi_callback_info info)
2421 {
2422 napi_value res;
2423 OH_AudioManager *audioManager = nullptr;
2424 OH_AudioCommon_Result result = OH_GetAudioManager(&audioManager);
2425 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioManager == nullptr) {
2426 napi_create_int32(env, TEST_FAIL, &res);
2427 return res;
2428 }
2429 napi_create_int32(env, TEST_PASS, &res);
2430 return res;
2431 }
2432
AudioManagerGetAudioScene_01(napi_env env,napi_callback_info info)2433 static napi_value AudioManagerGetAudioScene_01(napi_env env, napi_callback_info info)
2434 {
2435 napi_value res;
2436 OH_AudioManager *audioManager = nullptr;
2437 OH_AudioCommon_Result result = OH_GetAudioManager(&audioManager);
2438 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioManager == nullptr) {
2439 napi_create_int32(env, TEST_FAIL, &res);
2440 return res;
2441 }
2442 OH_AudioScene scene = AUDIO_SCENE_DEFAULT;
2443 result = OH_GetAudioScene(audioManager, &scene);
2444 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2445 napi_create_int32(env, TEST_FAIL, &res);
2446 return res;
2447 }
2448 napi_create_int32(env, TEST_PASS, &res);
2449 return res;
2450 }
2451
AudioManagerGetAudioScene_02(napi_env env,napi_callback_info info)2452 static napi_value AudioManagerGetAudioScene_02(napi_env env, napi_callback_info info)
2453 {
2454 napi_value res;
2455
2456 OH_AudioScene scene = AUDIO_SCENE_DEFAULT;
2457 OH_AudioCommon_Result result = OH_GetAudioScene(nullptr, &scene);
2458 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2459 napi_create_int32(env, TEST_FAIL, &res);
2460 return res;
2461 }
2462
2463 result = OH_GetAudioScene(nullptr, nullptr);
2464 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2465 napi_create_int32(env, TEST_FAIL, &res);
2466 return res;
2467 }
2468
2469 OH_AudioManager *audioManager = nullptr;
2470 result = OH_GetAudioManager(&audioManager);
2471 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioManager == nullptr) {
2472 napi_create_int32(env, TEST_FAIL, &res);
2473 return res;
2474 }
2475
2476 result = OH_GetAudioScene(audioManager, nullptr);
2477 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2478 napi_create_int32(env, TEST_FAIL, &res);
2479 return res;
2480 }
2481
2482 napi_create_int32(env, TEST_PASS, &res);
2483 return res;
2484 }
2485
AudioManagerRegisterAudioSceneChangeCallback_01(napi_env env,napi_callback_info info)2486 static napi_value AudioManagerRegisterAudioSceneChangeCallback_01(napi_env env, napi_callback_info info)
2487 {
2488 napi_value res;
2489 OH_AudioManager *audioManager = nullptr;
2490 OH_AudioCommon_Result result = OH_GetAudioManager(&audioManager);
2491 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2492 LOG("OH_GetAudioManager error, result is: %{public}d", result);
2493 napi_create_int32(env, TEST_FAIL, &res);
2494 return res;
2495 }
2496
2497 // MyOnAudioSceneChangeCallback
2498 result = OH_AudioManager_RegisterAudioSceneChangeCallback(audioManager, MyOnAudioSceneChangeCallback, nullptr);
2499 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2500 LOG("OH_AudioManager_RegisterAudioSceneChangeCallback error, result is: %{public}d", result);
2501 napi_create_int32(env, TEST_FAIL, &res);
2502 return res;
2503 }
2504
2505 result = OH_AudioManager_UnregisterAudioSceneChangeCallback(audioManager, MyOnAudioSceneChangeCallback);
2506 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2507 LOG("OH_AudioManager_UnregisterAudioSceneChangeCallback error, result is: %{public}d", result);
2508 napi_create_int32(env, TEST_FAIL, &res);
2509 return res;
2510 }
2511
2512 napi_create_int32(env, TEST_PASS, &res);
2513 return res;
2514 }
2515
AudioManagerRegisterAudioSceneChangeCallback_02(napi_env env,napi_callback_info info)2516 static napi_value AudioManagerRegisterAudioSceneChangeCallback_02(napi_env env, napi_callback_info info)
2517 {
2518 napi_value res;
2519 // MyOnAudioSceneChangeCallback
2520 OH_AudioCommon_Result result = OH_AudioManager_RegisterAudioSceneChangeCallback(nullptr, nullptr, nullptr);
2521 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2522 LOG("OH_AudioManager_RegisterAudioSceneChangeCallback error, result is: %{public}d", result);
2523 napi_create_int32(env, TEST_FAIL, &res);
2524 return res;
2525 }
2526
2527 napi_create_int32(env, TEST_PASS, &res);
2528 return res;
2529 }
2530
AudioManagerRegisterAudioSceneChangeCallback_03(napi_env env,napi_callback_info info)2531 static napi_value AudioManagerRegisterAudioSceneChangeCallback_03(napi_env env, napi_callback_info info)
2532 {
2533 napi_value res;
2534 OH_AudioManager *audioManager = nullptr;
2535 OH_AudioCommon_Result result = OH_GetAudioManager(&audioManager);
2536 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2537 LOG("OH_GetAudioManager error, result is: %{public}d", result);
2538 napi_create_int32(env, TEST_FAIL, &res);
2539 return res;
2540 }
2541
2542 // MyOnAudioSceneChangeCallback
2543 result = OH_AudioManager_RegisterAudioSceneChangeCallback(audioManager, nullptr, nullptr);
2544 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2545 LOG("OH_AudioManager_RegisterAudioSceneChangeCallback error, result is: %{public}d", result);
2546 napi_create_int32(env, TEST_FAIL, &res);
2547 return res;
2548 }
2549
2550 napi_create_int32(env, TEST_PASS, &res);
2551 return res;
2552 }
2553
AudioManagerUnregisterAudioSceneChangeCallback_01(napi_env env,napi_callback_info info)2554 static napi_value AudioManagerUnregisterAudioSceneChangeCallback_01(napi_env env, napi_callback_info info)
2555 {
2556 napi_value res;
2557 // MyOnAudioSceneChangeCallback
2558 OH_AudioCommon_Result result = OH_AudioManager_UnregisterAudioSceneChangeCallback(nullptr,
2559 MyOnAudioSceneChangeCallback);
2560 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2561 LOG("OH_AudioManager_UnregisterAudioSceneChangeCallback error, result is: %{public}d", result);
2562 napi_create_int32(env, TEST_FAIL, &res);
2563 return res;
2564 }
2565
2566 napi_create_int32(env, TEST_PASS, &res);
2567 return res;
2568 }
2569
AudioManagerUnregisterAudioSceneChangeCallback_02(napi_env env,napi_callback_info info)2570 static napi_value AudioManagerUnregisterAudioSceneChangeCallback_02(napi_env env, napi_callback_info info)
2571 {
2572 napi_value res;
2573 OH_AudioManager *audioManager = nullptr;
2574 OH_AudioCommon_Result result = OH_GetAudioManager(&audioManager);
2575 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2576 LOG("OH_GetAudioManager error, result is: %{public}d", result);
2577 napi_create_int32(env, TEST_FAIL, &res);
2578 return res;
2579 }
2580
2581 // MyOnAudioSceneChangeCallback
2582 result = OH_AudioManager_UnregisterAudioSceneChangeCallback(audioManager, nullptr);
2583 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2584 LOG("OH_AudioManager_UnregisterAudioSceneChangeCallback error, result is: %{public}d", result);
2585 napi_create_int32(env, TEST_FAIL, &res);
2586 return res;
2587 }
2588
2589 napi_create_int32(env, TEST_PASS, &res);
2590 return res;
2591 }
2592
AudioManagerUnregisterAudioSceneChangeCallback_03(napi_env env,napi_callback_info info)2593 static napi_value AudioManagerUnregisterAudioSceneChangeCallback_03(napi_env env, napi_callback_info info)
2594 {
2595 napi_value res;
2596 OH_AudioManager *audioManager = nullptr;
2597 OH_AudioCommon_Result result = OH_GetAudioManager(&audioManager);
2598 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2599 LOG("OH_GetAudioManager error, result is: %{public}d", result);
2600 napi_create_int32(env, TEST_FAIL, &res);
2601 return res;
2602 }
2603
2604 // MyOnAudioSceneChangeCallback
2605 result = OH_AudioManager_UnregisterAudioSceneChangeCallback(audioManager, MyOnAudioSceneChangeCallback);
2606 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2607 LOG("OH_AudioManager_UnregisterAudioSceneChangeCallback error, result is: %{public}d", result);
2608 napi_create_int32(env, TEST_FAIL, &res);
2609 return res;
2610 }
2611
2612 napi_create_int32(env, TEST_PASS, &res);
2613 return res;
2614 }
2615
AudioManagerUnregisterAudioSceneChangeCallback_04(napi_env env,napi_callback_info info)2616 static napi_value AudioManagerUnregisterAudioSceneChangeCallback_04(napi_env env, napi_callback_info info)
2617 {
2618 napi_value res;
2619 OH_AudioManager *audioManager = nullptr;
2620 OH_AudioCommon_Result result = OH_GetAudioManager(&audioManager);
2621 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2622 LOG("OH_GetAudioManager error, result is: %{public}d", result);
2623 napi_create_int32(env, TEST_FAIL, &res);
2624 return res;
2625 }
2626
2627 // MyOnAudioSceneChangeCallback
2628 result = OH_AudioManager_RegisterAudioSceneChangeCallback(audioManager, MyOnAudioSceneChangeCallback, nullptr);
2629 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2630 LOG("OH_AudioManager_RegisterAudioSceneChangeCallback error, result is: %{public}d", result);
2631 napi_create_int32(env, TEST_FAIL, &res);
2632 return res;
2633 }
2634
2635 result = OH_AudioManager_UnregisterAudioSceneChangeCallback(audioManager, MyOnAudioSceneChangeCallback);
2636 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2637 LOG("OH_AudioManager_UnregisterAudioSceneChangeCallback 1 error, result is: %{public}d", result);
2638 napi_create_int32(env, TEST_FAIL, &res);
2639 return res;
2640 }
2641
2642 result = OH_AudioManager_UnregisterAudioSceneChangeCallback(audioManager, MyOnAudioSceneChangeCallback);
2643 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2644 LOG("OH_AudioManager_UnregisterAudioSceneChangeCallback 2 error, result is: %{public}d", result);
2645 napi_create_int32(env, TEST_FAIL, &res);
2646 return res;
2647 }
2648
2649 napi_create_int32(env, TEST_PASS, &res);
2650 return res;
2651 }
2652
AudioRoutingManagerGetAvailableDevices001(napi_env env,napi_callback_info info)2653 static napi_value AudioRoutingManagerGetAvailableDevices001(napi_env env, napi_callback_info info)
2654 {
2655 napi_value res;
2656 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2657 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2658 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2659 napi_create_int32(env, TEST_FAIL, &res);
2660 return res;
2661 }
2662 OH_AudioDevice_Usage deviceUsage = AUDIO_DEVICE_USAGE_MEDIA_OUTPUT;
2663 OH_AudioDeviceDescriptorArray *array;
2664 result = OH_AudioRoutingManager_GetAvailableDevices(audioRoutingManager, deviceUsage, &array);
2665 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2666 napi_create_int32(env, TEST_FAIL, &res);
2667 return res;
2668 }
2669
2670 result = OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2671 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2672 napi_create_int32(env, TEST_FAIL, &res);
2673 return res;
2674 }
2675 napi_create_int32(env, TEST_PASS, &res);
2676 return res;
2677 }
2678
AudioRoutingManagerGetPreferredOutputDevice001(napi_env env,napi_callback_info info)2679 static napi_value AudioRoutingManagerGetPreferredOutputDevice001(napi_env env, napi_callback_info info)
2680 {
2681 napi_value res;
2682 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2683 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2684 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2685 napi_create_int32(env, TEST_FAIL, &res);
2686 return res;
2687 }
2688 OH_AudioStream_Usage streamUsage = AUDIOSTREAM_USAGE_MUSIC;
2689 OH_AudioDeviceDescriptorArray *array;
2690 result = OH_AudioRoutingManager_GetPreferredOutputDevice(audioRoutingManager, streamUsage, &array);
2691 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2692 napi_create_int32(env, TEST_FAIL, &res);
2693 return res;
2694 }
2695
2696 result = OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2697 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2698 napi_create_int32(env, TEST_FAIL, &res);
2699 return res;
2700 }
2701 napi_create_int32(env, TEST_PASS, &res);
2702 return res;
2703 }
2704
AudioRoutingManagerGetPreferredInputDevice001(napi_env env,napi_callback_info info)2705 static napi_value AudioRoutingManagerGetPreferredInputDevice001(napi_env env, napi_callback_info info)
2706 {
2707 napi_value res;
2708 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2709 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2710 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2711 napi_create_int32(env, TEST_FAIL, &res);
2712 return res;
2713 }
2714 OH_AudioStream_SourceType sourceType = AUDIOSTREAM_SOURCE_TYPE_MIC;
2715 OH_AudioDeviceDescriptorArray *array;
2716 result = OH_AudioRoutingManager_GetPreferredInputDevice(audioRoutingManager, sourceType, &array);
2717 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2718 napi_create_int32(env, TEST_FAIL, &res);
2719 return res;
2720 }
2721
2722 result = OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
2723 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2724 napi_create_int32(env, TEST_FAIL, &res);
2725 return res;
2726 }
2727 napi_create_int32(env, TEST_PASS, &res);
2728 return res;
2729 }
2730
AudioRoutingManagerSetMicBlockStatusCallback_001(napi_env env,napi_callback_info info)2731 static napi_value AudioRoutingManagerSetMicBlockStatusCallback_001(napi_env env, napi_callback_info info)
2732 {
2733 napi_value res;
2734 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2735 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2736 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result1 is: %{public}d", result);
2737 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2738 napi_create_int32(env, TEST_FAIL, &res);
2739 return res;
2740 }
2741 bool supported = false;
2742 void *userData = nullptr;
2743 result = OH_AudioRoutingManager_IsMicBlockDetectionSupported(audioRoutingManager, &supported);
2744 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result2 is: %{public}d", result);
2745 if (result == AUDIOCOMMON_RESULT_SUCCESS) {
2746 if (supported == true) {
2747 OH_AudioRoutingManager_OnDeviceBlockStatusCallback micBlockedCallback = MicBlockedCallback;
2748 result = OH_AudioRoutingManager_SetMicBlockStatusCallback(audioRoutingManager, micBlockedCallback, userData);
2749 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result3 is: %{public}d", result);
2750 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2751 napi_create_int32(env, TEST_FAIL, &res);
2752 return res;
2753 }
2754 } else {
2755 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result3 is: false");
2756 }
2757 } else {
2758 napi_create_int32(env, TEST_FAIL, &res);
2759 return res;
2760 }
2761 napi_create_int32(env, TEST_PASS, &res);
2762 return res;
2763 }
2764
AudioRoutingManagerSetMicBlockStatusCallback_002(napi_env env,napi_callback_info info)2765 static napi_value AudioRoutingManagerSetMicBlockStatusCallback_002(napi_env env, napi_callback_info info)
2766 {
2767 napi_value res;
2768 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2769 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2770 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result1 is: %{public}d", result);
2771 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2772 napi_create_int32(env, TEST_FAIL, &res);
2773 return res;
2774 }
2775 bool supported = false;
2776 void *userData = nullptr;
2777 result = OH_AudioRoutingManager_IsMicBlockDetectionSupported(audioRoutingManager, &supported);
2778 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result2 is: %{public}d", result);
2779 if (result == AUDIOCOMMON_RESULT_SUCCESS) {
2780 if (supported == true) {
2781 OH_AudioRoutingManager_OnDeviceBlockStatusCallback micBlockedCallback = MicBlockedCallback;
2782 result = OH_AudioRoutingManager_SetMicBlockStatusCallback(nullptr, micBlockedCallback, userData);
2783 LOG("AudioRoutingManagerSetMicBlockStatusCallback_Test, result3 is: %{public}d", result);
2784 if (result == AUDIOCOMMON_RESULT_SUCCESS) {
2785 napi_create_int32(env, TEST_FAIL, &res);
2786 return res;
2787 }
2788 } else {
2789 LOG("OH_AudioRoutingManager_IsMicBlockDetectionSupported_Test, supported is: false");
2790 }
2791 } else {
2792 napi_create_int32(env, TEST_FAIL, &res);
2793 return res;
2794 }
2795 napi_create_int32(env, TEST_PASS, &res);
2796 return res;
2797 }
2798
AudioRoutingManagerRegisterDeviceChangeCallback_001(napi_env env,napi_callback_info info)2799 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_001(napi_env env, napi_callback_info info)
2800 {
2801 napi_value res;
2802 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2803 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2804 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2805 napi_create_int32(env, TEST_FAIL, &res);
2806 return res;
2807 }
2808 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_NONE;
2809 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2810 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2811 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_001, result is: %{public}d", result);
2812 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2813 napi_create_int32(env, TEST_FAIL, &res);
2814 } else {
2815 napi_create_int32(env, TEST_PASS, &res);
2816 }
2817 return res;
2818 }
2819
AudioRoutingManagerRegisterDeviceChangeCallback_002(napi_env env,napi_callback_info info)2820 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_002(napi_env env, napi_callback_info info)
2821 {
2822 napi_value res;
2823 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2824 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2825 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2826 napi_create_int32(env, TEST_FAIL, &res);
2827 return res;
2828 }
2829 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
2830 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2831 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2832 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_002, result is: %{public}d", result);
2833 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2834 napi_create_int32(env, TEST_FAIL, &res);
2835 } else {
2836 napi_create_int32(env, TEST_PASS, &res);
2837 }
2838 return res;
2839 }
2840
AudioRoutingManagerRegisterDeviceChangeCallback_003(napi_env env,napi_callback_info info)2841 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_003(napi_env env, napi_callback_info info)
2842 {
2843 napi_value res;
2844 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2845 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2846 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2847 napi_create_int32(env, TEST_FAIL, &res);
2848 return res;
2849 }
2850 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_INPUT;
2851 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2852 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2853 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_003, result is: %{public}d", result);
2854 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2855 napi_create_int32(env, TEST_FAIL, &res);
2856 } else {
2857 napi_create_int32(env, TEST_PASS, &res);
2858 }
2859 return res;
2860 }
2861
AudioRoutingManagerRegisterDeviceChangeCallback_004(napi_env env,napi_callback_info info)2862 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_004(napi_env env, napi_callback_info info)
2863 {
2864 napi_value res;
2865 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2866 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2867 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2868 napi_create_int32(env, TEST_FAIL, &res);
2869 return res;
2870 }
2871 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
2872 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2873 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2874 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_004, result is: %{public}d", result);
2875 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2876 napi_create_int32(env, TEST_FAIL, &res);
2877 } else {
2878 napi_create_int32(env, TEST_PASS, &res);
2879 }
2880 return res;
2881 }
2882
AudioRoutingManagerRegisterDeviceChangeCallback_005(napi_env env,napi_callback_info info)2883 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_005(napi_env env, napi_callback_info info)
2884 {
2885 napi_value res;
2886 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2887 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
2888 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2889 OH_AudioCommon_Result result =
2890 OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2891 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_005, result is: %{public}d", result);
2892 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2893 napi_create_int32(env, TEST_FAIL, &res);
2894 } else {
2895 napi_create_int32(env, TEST_PASS, &res);
2896 }
2897 return res;
2898 }
2899
AudioRoutingManagerRegisterDeviceChangeCallback_006(napi_env env,napi_callback_info info)2900 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_006(napi_env env, napi_callback_info info)
2901 {
2902 napi_value res;
2903 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2904 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2905 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2906 napi_create_int32(env, TEST_FAIL, &res);
2907 return res;
2908 }
2909 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
2910 OH_AudioRoutingManager_OnDeviceChangedCallback callback = nullptr;
2911 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2912 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_006, result is: %{public}d", result);
2913 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2914 napi_create_int32(env, TEST_FAIL, &res);
2915 } else {
2916 napi_create_int32(env, TEST_PASS, &res);
2917 }
2918 return res;
2919 }
2920
AudioRoutingManagerRegisterDeviceChangeCallback_007(napi_env env,napi_callback_info info)2921 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_007(napi_env env, napi_callback_info info)
2922 {
2923 napi_value res;
2924 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2925 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2926 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2927 napi_create_int32(env, TEST_FAIL, &res);
2928 return res;
2929 }
2930 int32_t flag = -1;
2931 OH_AudioDevice_Flag deviceFlag = (OH_AudioDevice_Flag)flag;
2932 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2933 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2934 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_007, result is: %{public}d", result);
2935 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2936 napi_create_int32(env, TEST_FAIL, &res);
2937 } else {
2938 napi_create_int32(env, TEST_PASS, &res);
2939 }
2940 return res;
2941 }
2942
AudioRoutingManagerRegisterDeviceChangeCallback_008(napi_env env,napi_callback_info info)2943 static napi_value AudioRoutingManagerRegisterDeviceChangeCallback_008(napi_env env, napi_callback_info info)
2944 {
2945 napi_value res;
2946 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2947 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2948 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2949 napi_create_int32(env, TEST_FAIL, &res);
2950 return res;
2951 }
2952 int32_t flag = 4;
2953 OH_AudioDevice_Flag deviceFlag = (OH_AudioDevice_Flag)flag;
2954 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2955 result = OH_AudioRoutingManager_RegisterDeviceChangeCallback(audioRoutingManager, deviceFlag, callback);
2956 LOG("AudioRoutingManagerRegisterDeviceChangeCallback_008, result is: %{public}d", result);
2957 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2958 napi_create_int32(env, TEST_FAIL, &res);
2959 } else {
2960 napi_create_int32(env, TEST_PASS, &res);
2961 }
2962 return res;
2963 }
2964
AudioRoutingManagerUnregisterDeviceChangeCallback_001(napi_env env,napi_callback_info info)2965 static napi_value AudioRoutingManagerUnregisterDeviceChangeCallback_001(napi_env env, napi_callback_info info)
2966 {
2967 napi_value res;
2968 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2969 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
2970 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
2971 napi_create_int32(env, TEST_FAIL, &res);
2972 return res;
2973 }
2974 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2975 result = OH_AudioRoutingManager_UnregisterDeviceChangeCallback(audioRoutingManager, callback);
2976 LOG("AudioRoutingManagerUnregisterDeviceChangeCallback_001, result is: %{public}d", result);
2977 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
2978 napi_create_int32(env, TEST_FAIL, &res);
2979 } else {
2980 napi_create_int32(env, TEST_PASS, &res);
2981 }
2982 return res;
2983 }
2984
AudioRoutingManagerUnregisterDeviceChangeCallback_002(napi_env env,napi_callback_info info)2985 static napi_value AudioRoutingManagerUnregisterDeviceChangeCallback_002(napi_env env, napi_callback_info info)
2986 {
2987 napi_value res;
2988 OH_AudioRoutingManager *audioRoutingManager = nullptr;
2989 OH_AudioRoutingManager_OnDeviceChangedCallback callback = DeviceChangeCallback;
2990 OH_AudioCommon_Result result = OH_AudioRoutingManager_UnregisterDeviceChangeCallback(
2991 audioRoutingManager, callback);
2992 LOG("AudioRoutingManagerUnregisterDeviceChangeCallback_002, result is: %{public}d", result);
2993 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
2994 napi_create_int32(env, TEST_FAIL, &res);
2995 } else {
2996 napi_create_int32(env, TEST_PASS, &res);
2997 }
2998 return res;
2999 }
3000
AudioRoutingManagerUnregisterDeviceChangeCallback_003(napi_env env,napi_callback_info info)3001 static napi_value AudioRoutingManagerUnregisterDeviceChangeCallback_003(napi_env env, napi_callback_info info)
3002 {
3003 napi_value res;
3004 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3005 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3006 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3007 napi_create_int32(env, TEST_FAIL, &res);
3008 return res;
3009 }
3010 OH_AudioRoutingManager_OnDeviceChangedCallback callback = nullptr;
3011 result = OH_AudioRoutingManager_UnregisterDeviceChangeCallback(audioRoutingManager, callback);
3012 LOG("AudioRoutingManagerUnregisterDeviceChangeCallback_003, result is: %{public}d", result);
3013 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3014 napi_create_int32(env, TEST_FAIL, &res);
3015 } else {
3016 napi_create_int32(env, TEST_PASS, &res);
3017 }
3018 return res;
3019 }
3020
AudioRoutingManagerReleaseDevices_001(napi_env env,napi_callback_info info)3021 static napi_value AudioRoutingManagerReleaseDevices_001(napi_env env, napi_callback_info info)
3022 {
3023 napi_value res;
3024 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3025 OH_AudioDeviceDescriptorArray *audioDeviceDescriptorArray = nullptr;
3026 OH_AudioCommon_Result result =
3027 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, audioDeviceDescriptorArray);
3028 LOG("AudioRoutingManagerReleaseDevices_001, result is: %{public}d", result);
3029 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3030 napi_create_int32(env, TEST_FAIL, &res);
3031 } else {
3032 napi_create_int32(env, TEST_PASS, &res);
3033 }
3034 return res;
3035 }
3036
AudioRoutingManagerReleaseDevices_002(napi_env env,napi_callback_info info)3037 static napi_value AudioRoutingManagerReleaseDevices_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_AudioDeviceDescriptorArray *audioDeviceDescriptorArray = nullptr;
3047 result = OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, audioDeviceDescriptorArray);
3048 LOG("AudioRoutingManagerReleaseDevices_002, result is: %{public}d", result);
3049 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3050 napi_create_int32(env, TEST_FAIL, &res);
3051 } else {
3052 napi_create_int32(env, TEST_PASS, &res);
3053 }
3054 return res;
3055 }
3056
AudioAudioDeviceDescriptorGetDeviceType_001(napi_env env,napi_callback_info info)3057 static napi_value AudioAudioDeviceDescriptorGetDeviceType_001(napi_env env, napi_callback_info info)
3058 {
3059 napi_value res;
3060 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3061 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3062 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3063 napi_create_int32(env, TEST_FAIL, &res);
3064 return res;
3065 }
3066 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3067 OH_AudioDeviceDescriptorArray *array = nullptr;
3068 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3069 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3070 napi_create_int32(env, TEST_FAIL, &res);
3071 return res;
3072 }
3073 int size = array->size;
3074 for (int i = 0; i < size; i++) {
3075 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3076 if (descriptor == nullptr) {
3077 napi_create_int32(env, TEST_FAIL, &res);
3078 return res;
3079 }
3080 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_INVALID;
3081 result = OH_AudioDeviceDescriptor_GetDeviceType(descriptor, &deviceType);
3082 LOG("AudioAudioDeviceDescriptorGetDeviceType_001, result is: %{public}d", result);
3083 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3084 napi_create_int32(env, TEST_FAIL, &res);
3085 break;
3086 } else {
3087 napi_create_int32(env, TEST_PASS, &res);
3088 }
3089 }
3090 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3091 return res;
3092 }
3093
AudioAudioDeviceDescriptorGetDeviceType_002(napi_env env,napi_callback_info info)3094 static napi_value AudioAudioDeviceDescriptorGetDeviceType_002(napi_env env, napi_callback_info info)
3095 {
3096 napi_value res;
3097 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3098 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3099 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3100 napi_create_int32(env, TEST_FAIL, &res);
3101 return res;
3102 }
3103 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3104 OH_AudioDeviceDescriptorArray *array = nullptr;
3105 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3106 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3107 if (result != AUDIOCOMMON_RESULT_SUCCESS || descriptor == nullptr || array == nullptr) {
3108 napi_create_int32(env, TEST_FAIL, &res);
3109 return res;
3110 }
3111
3112 result = OH_AudioDeviceDescriptor_GetDeviceType(descriptor, nullptr);
3113 LOG("AudioAudioDeviceDescriptorGetDeviceType_002, result is: %{public}d", result);
3114 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3115 napi_create_int32(env, TEST_FAIL, &res);
3116 } else {
3117 napi_create_int32(env, TEST_PASS, &res);
3118 }
3119 return res;
3120 }
3121
AudioAudioDeviceDescriptorGetDeviceType_003(napi_env env,napi_callback_info info)3122 static napi_value AudioAudioDeviceDescriptorGetDeviceType_003(napi_env env, napi_callback_info info)
3123 {
3124 OH_AudioDeviceDescriptor *descriptor = nullptr;
3125 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_INVALID;
3126 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceType(descriptor, &deviceType);
3127 LOG("AudioAudioDeviceDescriptorGetDeviceType_003, result is: %{public}d", result);
3128 napi_value res;
3129 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3130 napi_create_int32(env, TEST_FAIL, &res);
3131 } else {
3132 napi_create_int32(env, TEST_PASS, &res);
3133 }
3134 return res;
3135 }
3136
AudioAudioDeviceDescriptorGetDeviceRole_001(napi_env env,napi_callback_info info)3137 static napi_value AudioAudioDeviceDescriptorGetDeviceRole_001(napi_env env, napi_callback_info info)
3138 {
3139 napi_value res;
3140 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3141 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3142 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3143 napi_create_int32(env, TEST_FAIL, &res);
3144 return res;
3145 }
3146 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3147 OH_AudioDeviceDescriptorArray *array = nullptr;
3148 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3149 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3150 napi_create_int32(env, TEST_FAIL, &res);
3151 return res;
3152 }
3153
3154 int size = array->size;
3155 for (int i = 0; i < size; i++) {
3156 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3157 if (descriptor == nullptr) {
3158 napi_create_int32(env, TEST_FAIL, &res);
3159 return res;
3160 }
3161 OH_AudioDevice_Role deviceRole = AUDIO_DEVICE_ROLE_OUTPUT;
3162 result = OH_AudioDeviceDescriptor_GetDeviceRole(descriptor, &deviceRole);
3163 LOG("AudioAudioDeviceDescriptorGetDeviceRole_001, result is: %{public}d", result);
3164 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3165 napi_create_int32(env, TEST_FAIL, &res);
3166 break;
3167 } else {
3168 napi_create_int32(env, TEST_PASS, &res);
3169 }
3170 }
3171 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3172 return res;
3173 }
3174
AudioAudioDeviceDescriptorGetDeviceRole_002(napi_env env,napi_callback_info info)3175 static napi_value AudioAudioDeviceDescriptorGetDeviceRole_002(napi_env env, napi_callback_info info)
3176 {
3177 napi_value res;
3178 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3179 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3180 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3181 napi_create_int32(env, TEST_FAIL, &res);
3182 return res;
3183 }
3184 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3185 OH_AudioDeviceDescriptorArray *array = nullptr;
3186 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3187 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3188 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3189 napi_create_int32(env, TEST_FAIL, &res);
3190 return res;
3191 }
3192
3193 result = OH_AudioDeviceDescriptor_GetDeviceRole(descriptor, nullptr);
3194 LOG("AudioAudioDeviceDescriptorGetDeviceRole_002, result is: %{public}d", result);
3195 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3196 napi_create_int32(env, TEST_FAIL, &res);
3197 } else {
3198 napi_create_int32(env, TEST_PASS, &res);
3199 }
3200 return res;
3201 }
3202
AudioAudioDeviceDescriptorGetDeviceRole_003(napi_env env,napi_callback_info info)3203 static napi_value AudioAudioDeviceDescriptorGetDeviceRole_003(napi_env env, napi_callback_info info)
3204 {
3205 napi_value res;
3206 OH_AudioDeviceDescriptor *descriptor = nullptr;
3207 OH_AudioDevice_Role deviceRole = AUDIO_DEVICE_ROLE_OUTPUT;
3208 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceRole(descriptor, &deviceRole);
3209 LOG("AudioAudioDeviceDescriptorGetDeviceRole_003, result is: %{public}d", result);
3210 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3211 napi_create_int32(env, TEST_FAIL, &res);
3212 } else {
3213 napi_create_int32(env, TEST_PASS, &res);
3214 }
3215 return res;
3216 }
3217
AudioAudioDeviceDescriptorGetDeviceId_001(napi_env env,napi_callback_info info)3218 static napi_value AudioAudioDeviceDescriptorGetDeviceId_001(napi_env env, napi_callback_info info)
3219 {
3220 napi_value res;
3221 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3222 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3223 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3224 napi_create_int32(env, TEST_FAIL, &res);
3225 return res;
3226 }
3227 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3228 OH_AudioDeviceDescriptorArray *array = nullptr;
3229 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3230 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3231 napi_create_int32(env, TEST_FAIL, &res);
3232 return res;
3233 }
3234
3235 int size = array->size;
3236 for (int i = 0; i < size; i++) {
3237 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3238 if (descriptor == nullptr) {
3239 napi_create_int32(env, TEST_FAIL, &res);
3240 return res;
3241 }
3242 uint32_t id = 0;
3243 result = OH_AudioDeviceDescriptor_GetDeviceId(descriptor, &id);
3244 LOG("AudioAudioDeviceDescriptorGetDeviceId_001, result is: %{public}d", result);
3245 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3246 napi_create_int32(env, TEST_FAIL, &res);
3247 break;
3248 } else {
3249 napi_create_int32(env, TEST_PASS, &res);
3250 }
3251 }
3252 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3253 return res;
3254 }
3255
AudioAudioDeviceDescriptorGetDeviceId_002(napi_env env,napi_callback_info info)3256 static napi_value AudioAudioDeviceDescriptorGetDeviceId_002(napi_env env, napi_callback_info info)
3257 {
3258 napi_value res;
3259 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3260 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3261 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3262 napi_create_int32(env, TEST_FAIL, &res);
3263 return res;
3264 }
3265 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3266 OH_AudioDeviceDescriptorArray *array = nullptr;
3267 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3268 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3269 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3270 napi_create_int32(env, TEST_FAIL, &res);
3271 return res;
3272 }
3273
3274 result = OH_AudioDeviceDescriptor_GetDeviceId(descriptor, nullptr);
3275 LOG("AudioAudioDeviceDescriptorGetDeviceId_002, result is: %{public}d", result);
3276 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3277 napi_create_int32(env, TEST_FAIL, &res);
3278 } else {
3279 napi_create_int32(env, TEST_PASS, &res);
3280 }
3281 return res;
3282 }
3283
AudioAudioDeviceDescriptorGetDeviceId_003(napi_env env,napi_callback_info info)3284 static napi_value AudioAudioDeviceDescriptorGetDeviceId_003(napi_env env, napi_callback_info info)
3285 {
3286 napi_value res;
3287 OH_AudioDeviceDescriptor *descriptor = nullptr;
3288 uint32_t id = 0;
3289 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceId(descriptor, &id);
3290 LOG("AudioAudioDeviceDescriptorGetDeviceId_003, result is: %{public}d", result);
3291 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3292 napi_create_int32(env, TEST_FAIL, &res);
3293 } else {
3294 napi_create_int32(env, TEST_PASS, &res);
3295 }
3296 return res;
3297 }
3298
AudioAudioDeviceDescriptorGetDeviceName_001(napi_env env,napi_callback_info info)3299 static napi_value AudioAudioDeviceDescriptorGetDeviceName_001(napi_env env, napi_callback_info info)
3300 {
3301 napi_value res;
3302 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3303 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3304 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3305 napi_create_int32(env, TEST_FAIL, &res);
3306 return res;
3307 }
3308 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3309 OH_AudioDeviceDescriptorArray *array = nullptr;
3310 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3311 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3312 napi_create_int32(env, TEST_FAIL, &res);
3313 return res;
3314 }
3315
3316 int size = array->size;
3317 for (int i = 0; i < size; i++) {
3318 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3319 if (descriptor == nullptr) {
3320 napi_create_int32(env, TEST_FAIL, &res);
3321 return res;
3322 }
3323 char* deviceName;
3324 result = OH_AudioDeviceDescriptor_GetDeviceName(descriptor, &deviceName);
3325 LOG("AudioAudioDeviceDescriptorGetDeviceName_001, result is: %{public}d", result);
3326 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3327 napi_create_int32(env, TEST_FAIL, &res);
3328 break;
3329 } else {
3330 napi_create_int32(env, TEST_PASS, &res);
3331 }
3332 }
3333 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3334 return res;
3335 }
3336
AudioAudioDeviceDescriptorGetDeviceName_002(napi_env env,napi_callback_info info)3337 static napi_value AudioAudioDeviceDescriptorGetDeviceName_002(napi_env env, napi_callback_info info)
3338 {
3339 napi_value res;
3340 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3341 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3342 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3343 napi_create_int32(env, TEST_FAIL, &res);
3344 return res;
3345 }
3346 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3347 OH_AudioDeviceDescriptorArray *array = nullptr;
3348 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3349 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3350 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3351 napi_create_int32(env, TEST_FAIL, &res);
3352 return res;
3353 }
3354
3355 result = OH_AudioDeviceDescriptor_GetDeviceName(descriptor, nullptr);
3356 LOG("AudioAudioDeviceDescriptorGetDeviceName_002, result is: %{public}d", result);
3357 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3358 napi_create_int32(env, TEST_FAIL, &res);
3359 } else {
3360 napi_create_int32(env, TEST_PASS, &res);
3361 }
3362 return res;
3363 }
3364
AudioAudioDeviceDescriptorGetDeviceName_003(napi_env env,napi_callback_info info)3365 static napi_value AudioAudioDeviceDescriptorGetDeviceName_003(napi_env env, napi_callback_info info)
3366 {
3367 napi_value res;
3368 OH_AudioDeviceDescriptor *descriptor = nullptr;
3369 char* deviceName;
3370 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceName(descriptor, &deviceName);
3371 LOG("AudioAudioDeviceDescriptorGetDeviceName_003, result is: %{public}d", result);
3372 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3373 napi_create_int32(env, TEST_FAIL, &res);
3374 } else {
3375 napi_create_int32(env, TEST_PASS, &res);
3376 }
3377 return res;
3378 }
3379
AudioAudioDeviceDescriptorGetDeviceAddress_001(napi_env env,napi_callback_info info)3380 static napi_value AudioAudioDeviceDescriptorGetDeviceAddress_001(napi_env env, napi_callback_info info)
3381 {
3382 napi_value res;
3383 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3384 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3385 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3386 napi_create_int32(env, TEST_FAIL, &res);
3387 return res;
3388 }
3389 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3390 OH_AudioDeviceDescriptorArray *array = nullptr;
3391 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3392 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3393 napi_create_int32(env, TEST_FAIL, &res);
3394 return res;
3395 }
3396
3397 int size = array->size;
3398 for (int i = 0; i < size; i++) {
3399 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3400 if (descriptor == nullptr) {
3401 napi_create_int32(env, TEST_FAIL, &res);
3402 return res;
3403 }
3404 char *address;
3405 result = OH_AudioDeviceDescriptor_GetDeviceAddress(descriptor, &address);
3406 LOG("AudioAudioDeviceDescriptorGetDeviceAddress_001, result is: %{public}d", result);
3407 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3408 napi_create_int32(env, TEST_FAIL, &res);
3409 break;
3410 } else {
3411 napi_create_int32(env, TEST_PASS, &res);
3412 }
3413 }
3414 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3415 return res;
3416 }
3417
AudioAudioDeviceDescriptorGetDeviceAddress_002(napi_env env,napi_callback_info info)3418 static napi_value AudioAudioDeviceDescriptorGetDeviceAddress_002(napi_env env, napi_callback_info info)
3419 {
3420 napi_value res;
3421 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3422 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3423 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3424 napi_create_int32(env, TEST_FAIL, &res);
3425 return res;
3426 }
3427 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3428 OH_AudioDeviceDescriptorArray *array = nullptr;
3429 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3430 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3431 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3432 napi_create_int32(env, TEST_FAIL, &res);
3433 return res;
3434 }
3435
3436 result = OH_AudioDeviceDescriptor_GetDeviceAddress(descriptor, nullptr);
3437 LOG("AudioAudioDeviceDescriptorGetDeviceAddress_002, result is: %{public}d", result);
3438 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3439 napi_create_int32(env, TEST_FAIL, &res);
3440 } else {
3441 napi_create_int32(env, TEST_PASS, &res);
3442 }
3443 return res;
3444 }
3445
AudioAudioDeviceDescriptorGetDeviceAddress_003(napi_env env,napi_callback_info info)3446 static napi_value AudioAudioDeviceDescriptorGetDeviceAddress_003(napi_env env, napi_callback_info info)
3447 {
3448 napi_value res;
3449 OH_AudioDeviceDescriptor *descriptor = nullptr;
3450 char *address;
3451 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceAddress(descriptor, &address);
3452 LOG("AudioAudioDeviceDescriptorGetDeviceAddress_003, result is: %{public}d", result);
3453 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3454 napi_create_int32(env, TEST_FAIL, &res);
3455 } else {
3456 napi_create_int32(env, TEST_PASS, &res);
3457 }
3458 return res;
3459 }
3460
AudioAudioDeviceDescriptorGetDeviceSampleRates_001(napi_env env,napi_callback_info info)3461 static napi_value AudioAudioDeviceDescriptorGetDeviceSampleRates_001(napi_env env, napi_callback_info info)
3462 {
3463 napi_value res;
3464 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3465 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3466 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3467 napi_create_int32(env, TEST_FAIL, &res);
3468 return res;
3469 }
3470 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3471 OH_AudioDeviceDescriptorArray *array = nullptr;
3472 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3473 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3474 napi_create_int32(env, TEST_FAIL, &res);
3475 return res;
3476 }
3477
3478 int size = array->size;
3479 for (int i = 0; i < size; i++) {
3480 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3481 if (descriptor == nullptr) {
3482 napi_create_int32(env, TEST_FAIL, &res);
3483 return res;
3484 }
3485 uint32_t *sampleRates;
3486 uint32_t size = 0;
3487 result = OH_AudioDeviceDescriptor_GetDeviceSampleRates(descriptor, &sampleRates, &size);
3488 LOG("AudioAudioDeviceDescriptorGetDeviceSampleRates_001, result is: %{public}d", result);
3489 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3490 napi_create_int32(env, TEST_FAIL, &res);
3491 break;
3492 } else {
3493 napi_create_int32(env, TEST_PASS, &res);
3494 }
3495 }
3496 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3497 return res;
3498 }
3499
AudioAudioDeviceDescriptorGetDeviceSampleRates_002(napi_env env,napi_callback_info info)3500 static napi_value AudioAudioDeviceDescriptorGetDeviceSampleRates_002(napi_env env, napi_callback_info info)
3501 {
3502 napi_value res;
3503 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3504 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3505 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3506 napi_create_int32(env, TEST_FAIL, &res);
3507 return res;
3508 }
3509 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3510 OH_AudioDeviceDescriptorArray *array = nullptr;
3511 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3512 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3513 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3514 napi_create_int32(env, TEST_FAIL, &res);
3515 return res;
3516 }
3517
3518 uint32_t size = 0;
3519 result = OH_AudioDeviceDescriptor_GetDeviceSampleRates(descriptor, nullptr, &size);
3520 LOG("AudioAudioDeviceDescriptorGetDeviceSampleRates_002, result is: %{public}d", result);
3521 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3522 napi_create_int32(env, TEST_FAIL, &res);
3523 } else {
3524 napi_create_int32(env, TEST_PASS, &res);
3525 }
3526 return res;
3527 }
3528
AudioAudioDeviceDescriptorGetDeviceSampleRates_003(napi_env env,napi_callback_info info)3529 static napi_value AudioAudioDeviceDescriptorGetDeviceSampleRates_003(napi_env env, napi_callback_info info)
3530 {
3531 napi_value res;
3532 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3533 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3534 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3535 napi_create_int32(env, TEST_FAIL, &res);
3536 return res;
3537 }
3538 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3539 OH_AudioDeviceDescriptorArray *array = nullptr;
3540 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3541 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3542 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3543 napi_create_int32(env, TEST_FAIL, &res);
3544 return res;
3545 }
3546
3547 uint32_t *sampleRates;
3548 result = OH_AudioDeviceDescriptor_GetDeviceSampleRates(descriptor, &sampleRates, nullptr);
3549 LOG("AudioAudioDeviceDescriptorGetDeviceSampleRates_003, result is: %{public}d", result);
3550 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3551 napi_create_int32(env, TEST_FAIL, &res);
3552 } else {
3553 napi_create_int32(env, TEST_PASS, &res);
3554 }
3555 return res;
3556 }
3557
AudioAudioDeviceDescriptorGetDeviceSampleRates_004(napi_env env,napi_callback_info info)3558 static napi_value AudioAudioDeviceDescriptorGetDeviceSampleRates_004(napi_env env, napi_callback_info info)
3559 {
3560 napi_value res;
3561 OH_AudioDeviceDescriptor *descriptor = nullptr;
3562 uint32_t *sampleRates;
3563 uint32_t size = 0;
3564 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceSampleRates(descriptor, &sampleRates, &size);
3565 LOG("AudioAudioDeviceDescriptorGetDeviceSampleRates_004, result is: %{public}d", result);
3566 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3567 napi_create_int32(env, TEST_FAIL, &res);
3568 } else {
3569 napi_create_int32(env, TEST_PASS, &res);
3570 }
3571 return res;
3572 }
3573
AudioAudioDeviceDescriptorGetDeviceChannelCounts_001(napi_env env,napi_callback_info info)3574 static napi_value AudioAudioDeviceDescriptorGetDeviceChannelCounts_001(napi_env env, napi_callback_info info)
3575 {
3576 napi_value res;
3577 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3578 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3579 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3580 napi_create_int32(env, TEST_FAIL, &res);
3581 return res;
3582 }
3583 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3584 OH_AudioDeviceDescriptorArray *array = nullptr;
3585 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3586 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3587 napi_create_int32(env, TEST_FAIL, &res);
3588 return res;
3589 }
3590
3591 int size = array->size;
3592 for (int i = 0; i < size; i++) {
3593 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3594 if (descriptor == nullptr) {
3595 napi_create_int32(env, TEST_FAIL, &res);
3596 return res;
3597 }
3598 uint32_t *channelCounts;
3599 uint32_t channelSize = 0;
3600 result = OH_AudioDeviceDescriptor_GetDeviceChannelCounts(descriptor, &channelCounts, &channelSize);
3601 LOG("AudioAudioDeviceDescriptorGetDeviceChannelCounts_001, result is: %{public}d", result);
3602 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3603 napi_create_int32(env, TEST_FAIL, &res);
3604 break;
3605 } else {
3606 napi_create_int32(env, TEST_PASS, &res);
3607 }
3608 }
3609 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3610 return res;
3611 }
3612
AudioAudioDeviceDescriptorGetDeviceChannelCounts_002(napi_env env,napi_callback_info info)3613 static napi_value AudioAudioDeviceDescriptorGetDeviceChannelCounts_002(napi_env env, napi_callback_info info)
3614 {
3615 napi_value res;
3616 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3617 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3618 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3619 napi_create_int32(env, TEST_FAIL, &res);
3620 return res;
3621 }
3622 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3623 OH_AudioDeviceDescriptorArray *array = nullptr;
3624 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3625 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3626 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3627 napi_create_int32(env, TEST_FAIL, &res);
3628 return res;
3629 }
3630
3631 uint32_t channelSize = 0;
3632 result = OH_AudioDeviceDescriptor_GetDeviceChannelCounts(descriptor, nullptr, &channelSize);
3633 LOG("AudioAudioDeviceDescriptorGetDeviceChannelCounts_002, result is: %{public}d", result);
3634 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3635 napi_create_int32(env, TEST_FAIL, &res);
3636 } else {
3637 napi_create_int32(env, TEST_PASS, &res);
3638 }
3639 return res;
3640 }
3641
AudioAudioDeviceDescriptorGetDeviceChannelCounts_003(napi_env env,napi_callback_info info)3642 static napi_value AudioAudioDeviceDescriptorGetDeviceChannelCounts_003(napi_env env, napi_callback_info info)
3643 {
3644 napi_value res;
3645 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3646 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3647 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3648 napi_create_int32(env, TEST_FAIL, &res);
3649 return res;
3650 }
3651 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3652 OH_AudioDeviceDescriptorArray *array = nullptr;
3653 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3654 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3655 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3656 napi_create_int32(env, TEST_FAIL, &res);
3657 return res;
3658 }
3659
3660 uint32_t *channelCounts;
3661 result = OH_AudioDeviceDescriptor_GetDeviceChannelCounts(descriptor, &channelCounts, nullptr);
3662 LOG("AudioAudioDeviceDescriptorGetDeviceChannelCounts_003, result is: %{public}d", result);
3663 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3664 napi_create_int32(env, TEST_FAIL, &res);
3665 } else {
3666 napi_create_int32(env, TEST_PASS, &res);
3667 }
3668 return res;
3669 }
3670
AudioAudioDeviceDescriptorGetDeviceChannelCounts_004(napi_env env,napi_callback_info info)3671 static napi_value AudioAudioDeviceDescriptorGetDeviceChannelCounts_004(napi_env env, napi_callback_info info)
3672 {
3673 napi_value res;
3674 OH_AudioDeviceDescriptor *descriptor = nullptr;
3675 uint32_t *channelCounts;
3676 uint32_t channelSize = 0;
3677 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceChannelCounts(
3678 descriptor, &channelCounts, &channelSize);
3679 LOG("AudioAudioDeviceDescriptorGetDeviceChannelCounts_004, result is: %{public}d", result);
3680 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3681 napi_create_int32(env, TEST_FAIL, &res);
3682 } else {
3683 napi_create_int32(env, TEST_PASS, &res);
3684 }
3685 return res;
3686 }
3687
AudioAudioDeviceDescriptorGetDeviceDisplayName_001(napi_env env,napi_callback_info info)3688 static napi_value AudioAudioDeviceDescriptorGetDeviceDisplayName_001(napi_env env, napi_callback_info info)
3689 {
3690 napi_value res;
3691 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3692 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3693 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3694 napi_create_int32(env, TEST_FAIL, &res);
3695 return res;
3696 }
3697 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3698 OH_AudioDeviceDescriptorArray *array = nullptr;
3699 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3700 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3701 napi_create_int32(env, TEST_FAIL, &res);
3702 return res;
3703 }
3704
3705 int size = array->size;
3706 for (int i = 0; i < size; i++) {
3707 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3708 if (descriptor == nullptr) {
3709 napi_create_int32(env, TEST_FAIL, &res);
3710 return res;
3711 }
3712 char *displayName;
3713 result = OH_AudioDeviceDescriptor_GetDeviceDisplayName(descriptor, &displayName);
3714 LOG("AudioAudioDeviceDescriptorGetDeviceDisplayName_001, result is: %{public}d", result);
3715 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3716 napi_create_int32(env, TEST_FAIL, &res);
3717 break;
3718 } else {
3719 napi_create_int32(env, TEST_PASS, &res);
3720 }
3721 }
3722 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3723 return res;
3724 }
3725
AudioAudioDeviceDescriptorGetDeviceDisplayName_002(napi_env env,napi_callback_info info)3726 static napi_value AudioAudioDeviceDescriptorGetDeviceDisplayName_002(napi_env env, napi_callback_info info)
3727 {
3728 napi_value res;
3729 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3730 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3731 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3732 napi_create_int32(env, TEST_FAIL, &res);
3733 return res;
3734 }
3735 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3736 OH_AudioDeviceDescriptorArray *array = nullptr;
3737 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3738 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3739 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3740 napi_create_int32(env, TEST_FAIL, &res);
3741 return res;
3742 }
3743
3744 result = OH_AudioDeviceDescriptor_GetDeviceDisplayName(descriptor, nullptr);
3745 LOG("AudioAudioDeviceDescriptorGetDeviceDisplayName_002, result is: %{public}d", result);
3746 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3747 napi_create_int32(env, TEST_FAIL, &res);
3748 } else {
3749 napi_create_int32(env, TEST_PASS, &res);
3750 }
3751 return res;
3752 }
3753
AudioAudioDeviceDescriptorGetDeviceDisplayName_003(napi_env env,napi_callback_info info)3754 static napi_value AudioAudioDeviceDescriptorGetDeviceDisplayName_003(napi_env env, napi_callback_info info)
3755 {
3756 napi_value res;
3757 OH_AudioDeviceDescriptor *descriptor = nullptr;
3758 char *displayName;
3759 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceDisplayName(descriptor, &displayName);
3760 LOG("AudioAudioDeviceDescriptorGetDeviceDisplayName_003, result is: %{public}d", result);
3761 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3762 napi_create_int32(env, TEST_FAIL, &res);
3763 } else {
3764 napi_create_int32(env, TEST_PASS, &res);
3765 }
3766 return res;
3767 }
3768
AudioAudioDeviceDescriptorGetDeviceEncodingTypes_001(napi_env env,napi_callback_info info)3769 static napi_value AudioAudioDeviceDescriptorGetDeviceEncodingTypes_001(napi_env env, napi_callback_info info)
3770 {
3771 napi_value res;
3772 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3773 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3774 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3775 napi_create_int32(env, TEST_FAIL, &res);
3776 return res;
3777 }
3778 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_ALL;
3779 OH_AudioDeviceDescriptorArray *array = nullptr;
3780 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3781 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
3782 napi_create_int32(env, TEST_FAIL, &res);
3783 return res;
3784 }
3785
3786 int size = array->size;
3787 for (int i = 0; i < size; i++) {
3788 OH_AudioDeviceDescriptor *descriptor = array->descriptors[i];
3789 if (descriptor == nullptr) {
3790 napi_create_int32(env, TEST_FAIL, &res);
3791 return res;
3792 }
3793 OH_AudioStream_EncodingType *encodingTypes;
3794 uint32_t encodingTypeSize = 0;
3795 result = OH_AudioDeviceDescriptor_GetDeviceEncodingTypes(descriptor, &encodingTypes, &encodingTypeSize);
3796 LOG("AudioAudioDeviceDescriptorGetDeviceEncodingTypes_001, result is: %{public}d", result);
3797 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
3798 napi_create_int32(env, TEST_FAIL, &res);
3799 break;
3800 } else {
3801 napi_create_int32(env, TEST_PASS, &res);
3802 }
3803 }
3804 OH_AudioRoutingManager_ReleaseDevices(audioRoutingManager, array);
3805 return res;
3806 }
3807
AudioAudioDeviceDescriptorGetDeviceEncodingTypes_002(napi_env env,napi_callback_info info)3808 static napi_value AudioAudioDeviceDescriptorGetDeviceEncodingTypes_002(napi_env env, napi_callback_info info)
3809 {
3810 napi_value res;
3811 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3812 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3813 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3814 napi_create_int32(env, TEST_FAIL, &res);
3815 return res;
3816 }
3817 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3818 OH_AudioDeviceDescriptorArray *array = nullptr;
3819 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3820 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3821 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3822 napi_create_int32(env, TEST_FAIL, &res);
3823 return res;
3824 }
3825
3826 uint32_t encodingTypeSize = 0;
3827 result = OH_AudioDeviceDescriptor_GetDeviceEncodingTypes(descriptor, nullptr, &encodingTypeSize);
3828 LOG("AudioAudioDeviceDescriptorGetDeviceEncodingTypes_002, result is: %{public}d", result);
3829 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3830 napi_create_int32(env, TEST_FAIL, &res);
3831 } else {
3832 napi_create_int32(env, TEST_PASS, &res);
3833 }
3834 return res;
3835 }
3836
AudioAudioDeviceDescriptorGetDeviceEncodingTypes_003(napi_env env,napi_callback_info info)3837 static napi_value AudioAudioDeviceDescriptorGetDeviceEncodingTypes_003(napi_env env, napi_callback_info info)
3838 {
3839 napi_value res;
3840 OH_AudioRoutingManager *audioRoutingManager = nullptr;
3841 OH_AudioCommon_Result result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
3842 if (result != AUDIOCOMMON_RESULT_SUCCESS || audioRoutingManager == nullptr) {
3843 napi_create_int32(env, TEST_FAIL, &res);
3844 return res;
3845 }
3846 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
3847 OH_AudioDeviceDescriptorArray *array = nullptr;
3848 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
3849 OH_AudioDeviceDescriptor *descriptor = array->descriptors[0];
3850 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr || descriptor == nullptr) {
3851 napi_create_int32(env, TEST_FAIL, &res);
3852 return res;
3853 }
3854
3855 OH_AudioStream_EncodingType *encodingTypes;
3856 result = OH_AudioDeviceDescriptor_GetDeviceEncodingTypes(descriptor, &encodingTypes, nullptr);
3857 LOG("AudioAudioDeviceDescriptorGetDeviceEncodingTypes_003, result is: %{public}d", result);
3858 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3859 napi_create_int32(env, TEST_FAIL, &res);
3860 } else {
3861 napi_create_int32(env, TEST_PASS, &res);
3862 }
3863 return res;
3864 }
3865
AudioAudioDeviceDescriptorGetDeviceEncodingTypes_004(napi_env env,napi_callback_info info)3866 static napi_value AudioAudioDeviceDescriptorGetDeviceEncodingTypes_004(napi_env env, napi_callback_info info)
3867 {
3868 napi_value res;
3869 OH_AudioDeviceDescriptor *descriptor = nullptr;
3870 OH_AudioStream_EncodingType *encodingTypes;
3871 uint32_t encodingTypeSize = 0;
3872 OH_AudioCommon_Result result = OH_AudioDeviceDescriptor_GetDeviceEncodingTypes(
3873 descriptor, &encodingTypes, &encodingTypeSize);
3874 LOG("AudioAudioDeviceDescriptorGetDeviceEncodingTypes_004, result is: %{public}d", result);
3875 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
3876 napi_create_int32(env, TEST_FAIL, &res);
3877 } else {
3878 napi_create_int32(env, TEST_PASS, &res);
3879 }
3880 return res;
3881 }
3882
AudioAudioInternalRecordingSuccess01(napi_env env,napi_callback_info info)3883 static napi_value AudioAudioInternalRecordingSuccess01(napi_env env, napi_callback_info info)
3884 {
3885 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
3886 OH_AudioRenderer *audioRenderer;
3887 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
3888 OH_AudioStream_PrivacyType type = AUDIO_STREAM_PRIVACY_TYPE_PUBLIC;
3889 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererPrivacy(builder, type);
3890 OH_AudioRenderer_Release(audioRenderer);
3891 OH_AudioStreamBuilder_Destroy(builder);
3892 napi_value res;
3893 napi_create_int32(env, result, &res);
3894 return res;
3895 }
3896
AudioAudioInternalRecordingSuccess02(napi_env env,napi_callback_info info)3897 static napi_value AudioAudioInternalRecordingSuccess02(napi_env env, napi_callback_info info)
3898 {
3899 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
3900 OH_AudioStream_PrivacyType type = AUDIO_STREAM_PRIVACY_TYPE_PRIVATE;
3901 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererPrivacy(builder, type);
3902 OH_AudioRenderer *audioRenderer = nullptr;
3903 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
3904 OH_AudioStream_PrivacyType type_get;
3905 OH_AudioStream_Result result1 = OH_AudioRenderer_GetRendererPrivacy(audioRenderer, &type_get);
3906 if (result == AUDIOSTREAM_SUCCESS && result1 == AUDIOSTREAM_SUCCESS
3907 && type_get == AUDIO_STREAM_PRIVACY_TYPE_PRIVATE) {
3908 result = AUDIOSTREAM_SUCCESS;
3909 } else {
3910 result = AUDIOSTREAM_ERROR_INVALID_PARAM;
3911 };
3912 OH_AudioRenderer_Release(audioRenderer);
3913 OH_AudioStreamBuilder_Destroy(builder);
3914 napi_value res;
3915 napi_create_int32(env, result, &res);
3916 return res;
3917 }
3918
AudioAudioInternalRecordingFalse(napi_env env,napi_callback_info info)3919 static napi_value AudioAudioInternalRecordingFalse(napi_env env, napi_callback_info info)
3920 {
3921 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
3922 OH_AudioRenderer *audioRenderer;
3923 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
3924 OH_AudioStream_PrivacyType type = static_cast<OH_AudioStream_PrivacyType>(2);
3925 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererPrivacy(builder, type);
3926 OH_AudioRenderer_Release(audioRenderer);
3927 OH_AudioStreamBuilder_Destroy(builder);
3928 napi_value res;
3929 napi_create_int32(env, result, &res);
3930 return res;
3931 }
3932
WriteDataCallbackWithValidResult(OH_AudioRenderer * renderer,void * userData,void * buffer,int32_t bufferLen)3933 static OH_AudioData_Callback_Result WriteDataCallbackWithValidResult(OH_AudioRenderer* renderer,
3934 void* userData,
3935 void* buffer,
3936 int32_t bufferLen)
3937 {
3938 return AUDIO_DATA_CALLBACK_RESULT_VALID;
3939 }
3940
WriteDataCallbackWithInvalidResult(OH_AudioRenderer * renderer,void * userData,void * buffer,int32_t bufferLen)3941 static OH_AudioData_Callback_Result WriteDataCallbackWithInvalidResult(OH_AudioRenderer* renderer,
3942 void* userData,
3943 void* buffer,
3944 int32_t bufferLen)
3945 {
3946 return AUDIO_DATA_CALLBACK_RESULT_INVALID;
3947 }
3948
RendererInterruptCallbackWithResult(OH_AudioRenderer * renderer,void * userData,OH_AudioInterrupt_ForceType type,OH_AudioInterrupt_Hint hint)3949 static void RendererInterruptCallbackWithResult(OH_AudioRenderer* renderer,
3950 void* userData,
3951 OH_AudioInterrupt_ForceType type,
3952 OH_AudioInterrupt_Hint hint)
3953 {
3954 LOG("call CapturerDeviceChangeCallbackWithResult function.");
3955 }
3956
RendererErrorCallbackCallbackWithResult(OH_AudioRenderer * renderer,void * userData,OH_AudioStream_Result error)3957 static void RendererErrorCallbackCallbackWithResult(OH_AudioRenderer* renderer,
3958 void* userData,
3959 OH_AudioStream_Result error)
3960 {
3961 LOG("call CapturerDeviceChangeCallbackWithResult function.");
3962 }
3963
CapturerReadDataCallbackWithResult(OH_AudioCapturer * capturer,void * userData,void * audioData,int32_t audioDataSize)3964 static void CapturerReadDataCallbackWithResult(OH_AudioCapturer* capturer,
3965 void* userData,
3966 void* audioData,
3967 int32_t audioDataSize)
3968 {
3969 LOG("call CapturerDeviceChangeCallbackWithResult function.");
3970 }
3971
CapturerDeviceChangeCallback(OH_AudioCapturer * capturer,void * userData,OH_AudioDeviceDescriptorArray * deviceArray)3972 static void CapturerDeviceChangeCallback(OH_AudioCapturer* capturer,
3973 void* userData,
3974 OH_AudioDeviceDescriptorArray* deviceArray)
3975 {
3976 LOG("call CapturerDeviceChangeCallbackWithResult function.");
3977 }
3978
CapturerInterruptCallbackWithResult(OH_AudioCapturer * capturer,void * userData,OH_AudioInterrupt_ForceType forceType,OH_AudioInterrupt_Hint hintType)3979 static void CapturerInterruptCallbackWithResult(OH_AudioCapturer* capturer,
3980 void* userData,
3981 OH_AudioInterrupt_ForceType forceType,
3982 OH_AudioInterrupt_Hint hintType)
3983 {
3984 LOG("call CapturerDeviceChangeCallbackWithResult function.");
3985 }
3986
CapturerErrorCallbackWithResult(OH_AudioCapturer * capturer,void * userData,OH_AudioStream_Result error)3987 static void CapturerErrorCallbackWithResult(OH_AudioCapturer* capturer,
3988 void* userData,
3989 OH_AudioStream_Result error)
3990 {
3991 LOG("call CapturerDeviceChangeCallbackWithResult function.");
3992 }
3993
AudioStreamBuilderSetRendererWriteDataCallback_001(napi_env env,napi_callback_info info)3994 static napi_value AudioStreamBuilderSetRendererWriteDataCallback_001(napi_env env, napi_callback_info info)
3995 {
3996 OH_AudioStreamBuilder* builder;
3997 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
3998 OH_AudioStreamBuilder_Create(&builder, type);
3999 OH_AudioRenderer_OnWriteDataCallback onWriteDataCallback = WriteDataCallbackWithValidResult;
4000 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererWriteDataCallback(builder,
4001 onWriteDataCallback, nullptr);
4002 OH_AudioStreamBuilder_Destroy(builder);
4003 napi_value res;
4004 napi_create_int32(env, result, &res);
4005 return res;
4006 }
4007
AudioStreamBuilderSetRendererWriteDataCallback_002(napi_env env,napi_callback_info info)4008 static napi_value AudioStreamBuilderSetRendererWriteDataCallback_002(napi_env env, napi_callback_info info)
4009 {
4010 OH_AudioStreamBuilder* builder;
4011 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4012 OH_AudioStreamBuilder_Create(&builder, type);
4013 OH_AudioRenderer_OnWriteDataCallback onWriteDataCallback = WriteDataCallbackWithInvalidResult;
4014 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererWriteDataCallback(builder,
4015 onWriteDataCallback, nullptr);
4016 OH_AudioStreamBuilder_Destroy(builder);
4017 napi_value res;
4018 napi_create_int32(env, result, &res);
4019 return res;
4020 }
4021
AudioStreamBuilderSetRendererInterruptCallback_001(napi_env env,napi_callback_info info)4022 static napi_value AudioStreamBuilderSetRendererInterruptCallback_001(napi_env env, napi_callback_info info)
4023 {
4024 OH_AudioStreamBuilder* builder;
4025 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4026 OH_AudioStreamBuilder_Create(&builder, type);
4027 OH_AudioRenderer_OnInterruptCallback onInterruptCallback = RendererInterruptCallbackWithResult;
4028 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInterruptCallback(builder,
4029 onInterruptCallback, nullptr);
4030 OH_AudioStreamBuilder_Destroy(builder);
4031 napi_value res;
4032 napi_create_int32(env, result, &res);
4033 return res;
4034 }
4035
AudioStreamBuilderSetRendererErrorCallback_001(napi_env env,napi_callback_info info)4036 static napi_value AudioStreamBuilderSetRendererErrorCallback_001(napi_env env, napi_callback_info info)
4037 {
4038 OH_AudioStreamBuilder* builder;
4039 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4040 OH_AudioStreamBuilder_Create(&builder, type);
4041 OH_AudioRenderer_OnErrorCallback onErrorCallback = RendererErrorCallbackCallbackWithResult;
4042 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererErrorCallback(builder,
4043 onErrorCallback, nullptr);
4044 OH_AudioStreamBuilder_Destroy(builder);
4045 napi_value res;
4046 napi_create_int32(env, result, &res);
4047 return res;
4048 }
4049
AudioStreamBuilderSetCapturerReadDataCallback_001(napi_env env,napi_callback_info info)4050 static napi_value AudioStreamBuilderSetCapturerReadDataCallback_001(napi_env env, napi_callback_info info)
4051 {
4052 OH_AudioStreamBuilder* builder;
4053 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
4054 OH_AudioStreamBuilder_Create(&builder, type);
4055
4056 OH_AudioCapturer_OnReadDataCallback onReadDataCallback = CapturerReadDataCallbackWithResult;
4057 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerReadDataCallback(builder,
4058 onReadDataCallback, NULL);
4059
4060 OH_AudioStreamBuilder_Destroy(builder);
4061 napi_value res;
4062 napi_create_int32(env, result, &res);
4063 return res;
4064 }
4065
AudioStreamBuilderSetCapturerDeviceChangeCallback_001(napi_env env,napi_callback_info info)4066 static napi_value AudioStreamBuilderSetCapturerDeviceChangeCallback_001(napi_env env, napi_callback_info info)
4067 {
4068 OH_AudioStreamBuilder* builder;
4069 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
4070 OH_AudioStreamBuilder_Create(&builder, type);
4071
4072 OH_AudioCapturer_OnDeviceChangeCallback onDeviceChangeCallback = CapturerDeviceChangeCallback;
4073 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerDeviceChangeCallback(builder,
4074 onDeviceChangeCallback, NULL);
4075
4076 OH_AudioStreamBuilder_Destroy(builder);
4077 napi_value res;
4078 napi_create_int32(env, result, &res);
4079 return res;
4080 }
4081
AudioStreamBuilderSetCapturerInterruptCallback_001(napi_env env,napi_callback_info info)4082 static napi_value AudioStreamBuilderSetCapturerInterruptCallback_001(napi_env env, napi_callback_info info)
4083 {
4084 OH_AudioStreamBuilder* builder;
4085 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
4086 OH_AudioStreamBuilder_Create(&builder, type);
4087
4088 OH_AudioCapturer_OnInterruptCallback onInterruptCallback = CapturerInterruptCallbackWithResult;
4089 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerInterruptCallback(builder,
4090 onInterruptCallback, NULL);
4091
4092 OH_AudioStreamBuilder_Destroy(builder);
4093 napi_value res;
4094 napi_create_int32(env, result, &res);
4095 return res;
4096 }
4097
AudioStreamBuilderSetCapturerErrorCallback_001(napi_env env,napi_callback_info info)4098 static napi_value AudioStreamBuilderSetCapturerErrorCallback_001(napi_env env, napi_callback_info info)
4099 {
4100 OH_AudioStreamBuilder* builder;
4101 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
4102 OH_AudioStreamBuilder_Create(&builder, type);
4103
4104 OH_AudioCapturer_OnErrorCallback onErrorCallback = CapturerErrorCallbackWithResult;
4105 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerErrorCallback(builder, onErrorCallback, NULL);
4106
4107 OH_AudioStreamBuilder_Destroy(builder);
4108 napi_value res;
4109 napi_create_int32(env, result, &res);
4110 return res;
4111 }
4112
AudioStreamBuilderSetRendererInterruptCallback_002(napi_env env,napi_callback_info info)4113 static napi_value AudioStreamBuilderSetRendererInterruptCallback_002(napi_env env, napi_callback_info info)
4114 {
4115 OH_AudioStreamBuilder* builder;
4116 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
4117 OH_AudioStreamBuilder_Create(&builder, type);
4118 OH_AudioRenderer_OnInterruptCallback onInterruptCallback = RendererInterruptCallbackWithResult;
4119 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererInterruptCallback(builder,
4120 onInterruptCallback, nullptr);
4121 OH_AudioStreamBuilder_Destroy(builder);
4122 napi_value res;
4123 napi_create_int32(env, result, &res);
4124 return res;
4125 }
4126
AudioStreamBuilderSetRendererErrorCallback_002(napi_env env,napi_callback_info info)4127 static napi_value AudioStreamBuilderSetRendererErrorCallback_002(napi_env env, napi_callback_info info)
4128 {
4129 OH_AudioStreamBuilder* builder;
4130 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
4131 OH_AudioStreamBuilder_Create(&builder, type);
4132 OH_AudioRenderer_OnErrorCallback onErrorCallback = RendererErrorCallbackCallbackWithResult;
4133 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererErrorCallback(builder,
4134 onErrorCallback, nullptr);
4135 OH_AudioStreamBuilder_Destroy(builder);
4136 napi_value res;
4137 napi_create_int32(env, result, &res);
4138 return res;
4139 }
4140
AudioStreamBuilderSetCapturerReadDataCallback_002(napi_env env,napi_callback_info info)4141 static napi_value AudioStreamBuilderSetCapturerReadDataCallback_002(napi_env env, napi_callback_info info)
4142 {
4143 OH_AudioStreamBuilder* builder;
4144 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4145 OH_AudioStreamBuilder_Create(&builder, type);
4146
4147 OH_AudioCapturer_OnReadDataCallback onReadDataCallback = CapturerReadDataCallbackWithResult;
4148 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerReadDataCallback(builder,
4149 onReadDataCallback, NULL);
4150
4151 OH_AudioStreamBuilder_Destroy(builder);
4152 napi_value res;
4153 napi_create_int32(env, result, &res);
4154 return res;
4155 }
4156
AudioStreamBuilderSetCapturerDeviceChangeCallback_002(napi_env env,napi_callback_info info)4157 static napi_value AudioStreamBuilderSetCapturerDeviceChangeCallback_002(napi_env env, napi_callback_info info)
4158 {
4159 OH_AudioStreamBuilder* builder;
4160 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4161 OH_AudioStreamBuilder_Create(&builder, type);
4162
4163 OH_AudioCapturer_OnDeviceChangeCallback onDeviceChangeCallback = CapturerDeviceChangeCallback;
4164 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerDeviceChangeCallback(builder,
4165 onDeviceChangeCallback, NULL);
4166
4167 OH_AudioStreamBuilder_Destroy(builder);
4168 napi_value res;
4169 napi_create_int32(env, result, &res);
4170 return res;
4171 }
4172
AudioStreamBuilderSetCapturerInterruptCallback_002(napi_env env,napi_callback_info info)4173 static napi_value AudioStreamBuilderSetCapturerInterruptCallback_002(napi_env env, napi_callback_info info)
4174 {
4175 OH_AudioStreamBuilder* builder;
4176 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4177 OH_AudioStreamBuilder_Create(&builder, type);
4178
4179 OH_AudioCapturer_OnInterruptCallback onInterruptCallback = CapturerInterruptCallbackWithResult;
4180 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerInterruptCallback(builder,
4181 onInterruptCallback, NULL);
4182
4183 OH_AudioStreamBuilder_Destroy(builder);
4184 napi_value res;
4185 napi_create_int32(env, result, &res);
4186 return res;
4187 }
4188
AudioStreamBuilderSetCapturerErrorCallback_002(napi_env env,napi_callback_info info)4189 static napi_value AudioStreamBuilderSetCapturerErrorCallback_002(napi_env env, napi_callback_info info)
4190 {
4191 OH_AudioStreamBuilder* builder;
4192 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4193 OH_AudioStreamBuilder_Create(&builder, type);
4194
4195 OH_AudioCapturer_OnErrorCallback onErrorCallback = CapturerErrorCallbackWithResult;
4196 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerErrorCallback(builder, onErrorCallback, NULL);
4197
4198 OH_AudioStreamBuilder_Destroy(builder);
4199 napi_value res;
4200 napi_create_int32(env, result, &res);
4201 return res;
4202 }
4203
audioCapturerGetOverflowCount_001(napi_env env,napi_callback_info info)4204 static napi_value audioCapturerGetOverflowCount_001(napi_env env, napi_callback_info info)
4205 {
4206 OH_AudioStreamBuilder* builder = CreateCapturerBuilder();
4207 int32_t samplingRate = 48000;
4208 OH_AudioStreamBuilder_SetSamplingRate(builder, samplingRate);
4209 int32_t channelCount = 2;
4210 OH_AudioStreamBuilder_SetChannelCount(builder, channelCount);
4211
4212 OH_AudioCapturer_Callbacks callbacks;
4213 callbacks.OH_AudioCapturer_OnReadData = AudioCapturerOnReadData;
4214 callbacks.OH_AudioCapturer_OnStreamEvent = nullptr;
4215 callbacks.OH_AudioCapturer_OnInterruptEvent = nullptr;
4216 callbacks.OH_AudioCapturer_OnError = nullptr;
4217 OH_AudioStreamBuilder_SetCapturerCallback(builder, callbacks, NULL);
4218
4219 OH_AudioCapturer* audioCapturer;
4220 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
4221 result = OH_AudioCapturer_Start(audioCapturer);
4222
4223 uint32_t overFlowCount;
4224 result = OH_AudioCapturer_GetOverflowCount(audioCapturer, &overFlowCount);
4225
4226 OH_AudioCapturer_Stop(audioCapturer);
4227 OH_AudioCapturer_Release(audioCapturer);
4228
4229 OH_AudioStreamBuilder_Destroy(builder);
4230 napi_value res;
4231 napi_create_int32(env, result, &res);
4232 return res;
4233 }
4234
AudioSessionManagerStrategy_001(napi_env env,napi_callback_info info)4235 static napi_value AudioSessionManagerStrategy_001(napi_env env, napi_callback_info info)
4236 {
4237 napi_value res;
4238 OH_AudioSessionManager* audioSessionManager;
4239 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4240 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4241 napi_create_int32(env, TEST_FAIL, &res);
4242 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4243 return res;
4244 }
4245 OH_AudioSession_Strategy strategy = {
4246 CONCURRENCY_MIX_WITH_OTHERS
4247 };
4248 // 设置音频并发模式并激活音频会话
4249 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4250 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4251 napi_create_int32(env, TEST_FAIL, &res);
4252 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4253 return res;
4254 }
4255
4256 // 查询音频会话是否已激活。
4257 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4258 if (!isActivated) {
4259 napi_create_int32(env, TEST_FAIL, &res);
4260 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4261 return res;
4262 }
4263
4264 // 监听音频会话停用事件
4265 OH_AudioCommon_Result resultRegister =
4266 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
4267 audioSessionManager, MyAudioSessionDeactivatedCallback);
4268 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
4269 napi_create_int32(env, TEST_FAIL, &res);
4270 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4271 return res;
4272 }
4273
4274 // 等待1秒
4275 Delay(1);
4276
4277 // 取消监听音频会话停用事件
4278 OH_AudioCommon_Result resultUnregister =
4279 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
4280 audioSessionManager, MyAudioSessionDeactivatedCallback);
4281 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
4282 napi_create_int32(env, TEST_FAIL, &res);
4283 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4284 return res;
4285 }
4286
4287 // 停用音频会话
4288 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4289 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4290 napi_create_int32(env, TEST_FAIL, &res);
4291 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4292 return res;
4293 }
4294
4295 // 查询音频会话是否已激活。
4296 isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4297 if (isActivated) {
4298 napi_create_int32(env, TEST_FAIL, &res);
4299 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4300 return res;
4301 }
4302
4303 napi_create_int32(env, TEST_PASS, &res);
4304 return res;
4305 }
4306
4307
AudioSessionManagerStrategy_002(napi_env env,napi_callback_info info)4308 static napi_value AudioSessionManagerStrategy_002(napi_env env, napi_callback_info info)
4309 {
4310 napi_value res;
4311 OH_AudioSessionManager* audioSessionManager;
4312 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4313 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4314 napi_create_int32(env, TEST_FAIL, &res);
4315 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4316 return res;
4317 }
4318 OH_AudioSession_Strategy strategy = {
4319 CONCURRENCY_DEFAULT
4320 };
4321
4322 // 设置音频并发模式并激活音频会话
4323 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4324 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4325 napi_create_int32(env, TEST_FAIL, &res);
4326 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4327 return res;
4328 }
4329
4330 // 查询音频会话是否已激活。
4331 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4332 if (!isActivated) {
4333 napi_create_int32(env, TEST_FAIL, &res);
4334 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4335 return res;
4336 }
4337
4338 // 监听音频会话停用事件
4339 OH_AudioCommon_Result resultRegister =
4340 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
4341 audioSessionManager, MyAudioSessionDeactivatedCallback);
4342 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
4343 napi_create_int32(env, TEST_FAIL, &res);
4344 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4345 return res;
4346 }
4347 // sleep 1 seconds
4348 Delay(1);
4349
4350 // 取消监听音频会话停用事件
4351 OH_AudioCommon_Result resultUnregister =
4352 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
4353 audioSessionManager, MyAudioSessionDeactivatedCallback);
4354 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
4355 napi_create_int32(env, TEST_FAIL, &res);
4356 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4357 return res;
4358 }
4359
4360 // 停用音频会话
4361 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4362 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4363 napi_create_int32(env, TEST_FAIL, &res);
4364 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4365 return res;
4366 }
4367
4368 napi_create_int32(env, TEST_PASS, &res);
4369 return res;
4370 }
4371
4372
AudioSessionManagerStrategy_003(napi_env env,napi_callback_info info)4373 static napi_value AudioSessionManagerStrategy_003(napi_env env, napi_callback_info info)
4374 {
4375 napi_value res;
4376 OH_AudioSessionManager* audioSessionManager;
4377 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4378 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4379 napi_create_int32(env, TEST_FAIL, &res);
4380 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4381 return res;
4382 }
4383 OH_AudioSession_Strategy strategy = {
4384 CONCURRENCY_DUCK_OTHERS
4385 };
4386
4387 // 设置音频并发模式并激活音频会话
4388 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4389 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4390 napi_create_int32(env, TEST_FAIL, &res);
4391 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4392 return res;
4393 }
4394
4395 // 查询音频会话是否已激活。
4396 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4397 if (!isActivated) {
4398 napi_create_int32(env, TEST_FAIL, &res);
4399 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4400 return res;
4401 }
4402
4403 // 监听音频会话停用事件
4404 OH_AudioCommon_Result resultRegister =
4405 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
4406 audioSessionManager, MyAudioSessionDeactivatedCallback);
4407 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
4408 napi_create_int32(env, TEST_FAIL, &res);
4409 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4410 return res;
4411 }
4412 // sleep 1 seconds
4413 Delay(1);
4414
4415 // 取消监听音频会话停用事件
4416 OH_AudioCommon_Result resultUnregister =
4417 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
4418 audioSessionManager, MyAudioSessionDeactivatedCallback);
4419 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
4420 napi_create_int32(env, TEST_FAIL, &res);
4421 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4422 return res;
4423 }
4424
4425 // 停用音频会话
4426 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4427 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4428 napi_create_int32(env, TEST_FAIL, &res);
4429 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4430 return res;
4431 }
4432
4433 napi_create_int32(env, TEST_PASS, &res);
4434 return res;
4435 }
4436
4437
AudioSessionManagerStrategy_004(napi_env env,napi_callback_info info)4438 static napi_value AudioSessionManagerStrategy_004(napi_env env, napi_callback_info info)
4439 {
4440 napi_value res;
4441 OH_AudioSessionManager* audioSessionManager;
4442 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4443 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4444 napi_create_int32(env, TEST_FAIL, &res);
4445 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4446 return res;
4447 }
4448 OH_AudioSession_Strategy strategy = {
4449 CONCURRENCY_PAUSE_OTHERS
4450 };
4451
4452 // 设置音频并发模式并激活音频会话
4453 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4454 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4455 napi_create_int32(env, TEST_FAIL, &res);
4456 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4457 return res;
4458 }
4459
4460 // 查询音频会话是否已激活。
4461 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4462 if (!isActivated) {
4463 napi_create_int32(env, TEST_FAIL, &res);
4464 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4465 return res;
4466 }
4467
4468 // 监听音频会话停用事件
4469 OH_AudioCommon_Result resultRegister =
4470 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
4471 audioSessionManager, MyAudioSessionDeactivatedCallback);
4472 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
4473 napi_create_int32(env, TEST_FAIL, &res);
4474 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4475 return res;
4476 }
4477 // sleep 1 seconds
4478 Delay(1);
4479
4480 // 取消监听音频会话停用事件
4481 OH_AudioCommon_Result resultUnregister =
4482 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
4483 audioSessionManager, MyAudioSessionDeactivatedCallback);
4484 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
4485 napi_create_int32(env, TEST_FAIL, &res);
4486 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4487 return res;
4488 }
4489
4490 // 停用音频会话
4491 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4492 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4493 napi_create_int32(env, TEST_FAIL, &res);
4494 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4495 return res;
4496 }
4497
4498 napi_create_int32(env, TEST_PASS, &res);
4499 return res;
4500 }
4501
4502
AudioSessionManagerStrategyError_001(napi_env env,napi_callback_info info)4503 static napi_value AudioSessionManagerStrategyError_001(napi_env env, napi_callback_info info)
4504 {
4505 napi_value res;
4506 OH_AudioSessionManager* audioSessionManager;
4507 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4508 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4509 napi_create_int32(env, TEST_FAIL, &res);
4510 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4511 return res;
4512 }
4513 OH_AudioSession_Strategy strategy = {
4514 CONCURRENCY_MIX_WITH_OTHERS
4515 };
4516
4517 // 设置音频并发模式并激活音频会话
4518 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(nullptr, &strategy);
4519 if (resultActivate != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
4520 napi_create_int32(env, TEST_FAIL, &res);
4521 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4522 return res;
4523 }
4524
4525 napi_create_int32(env, TEST_PASS, &res);
4526 return res;
4527 }
4528
4529
AudioSessionManagerActivatedError_001(napi_env env,napi_callback_info info)4530 static napi_value AudioSessionManagerActivatedError_001(napi_env env, napi_callback_info info)
4531 {
4532 napi_value res;
4533 OH_AudioSessionManager* audioSessionManager;
4534 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4535 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4536 napi_create_int32(env, TEST_FAIL, &res);
4537 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4538 return res;
4539 }
4540 OH_AudioSession_Strategy strategy = {
4541 CONCURRENCY_MIX_WITH_OTHERS
4542 };
4543
4544 // 设置音频并发模式并激活音频会话
4545 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4546 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4547 napi_create_int32(env, TEST_FAIL, &res);
4548 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4549 return res;
4550 }
4551
4552 // 查询音频会话是否已激活
4553 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(nullptr);
4554 if (isActivated) {
4555 napi_create_int32(env, TEST_FAIL, &res);
4556 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4557 return res;
4558 }
4559
4560 // 停用音频会话
4561 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4562 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4563 napi_create_int32(env, TEST_FAIL, &res);
4564 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4565 return res;
4566 }
4567
4568 napi_create_int32(env, TEST_PASS, &res);
4569 return res;
4570 }
4571
4572
AudioSessionManagerStopError_001(napi_env env,napi_callback_info info)4573 static napi_value AudioSessionManagerStopError_001(napi_env env, napi_callback_info info)
4574 {
4575 napi_value res;
4576 OH_AudioSessionManager* audioSessionManager;
4577 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4578 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4579 napi_create_int32(env, TEST_FAIL, &res);
4580 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4581 return res;
4582 }
4583 OH_AudioSession_Strategy strategy = {
4584 CONCURRENCY_MIX_WITH_OTHERS
4585 };
4586
4587 // 设置音频并发模式并激活音频会话
4588 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4589 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4590 napi_create_int32(env, TEST_FAIL, &res);
4591 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4592 return res;
4593 }
4594
4595 // 停用音频会话
4596 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(nullptr);
4597 if (resultDeactivate != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
4598 napi_create_int32(env, TEST_FAIL, &res);
4599 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4600 return res;
4601 }
4602
4603 // 停用音频会话
4604 resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4605 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4606 napi_create_int32(env, TEST_FAIL, &res);
4607 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4608 return res;
4609 }
4610
4611 napi_create_int32(env, TEST_PASS, &res);
4612 return res;
4613 }
4614
4615
AudioSessionManagerStopError_002(napi_env env,napi_callback_info info)4616 static napi_value AudioSessionManagerStopError_002(napi_env env, napi_callback_info info)
4617 {
4618 napi_value res;
4619 OH_AudioSessionManager* audioSessionManager;
4620 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4621 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4622 napi_create_int32(env, TEST_FAIL, &res);
4623 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4624 return res;
4625 }
4626 OH_AudioSession_Strategy strategy = {
4627 CONCURRENCY_MIX_WITH_OTHERS
4628 };
4629
4630 // 设置音频并发模式并激活音频会话
4631 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4632 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4633 napi_create_int32(env, TEST_FAIL, &res);
4634 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4635 return res;
4636 }
4637 // 停用音频会话
4638 OH_AudioCommon_Result resultDeactivate1 = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4639 if (resultDeactivate1 != AUDIOCOMMON_RESULT_SUCCESS) {
4640 napi_create_int32(env, TEST_FAIL, &res);
4641 LOG("resultDeactivate1, result is: %{public}d", TEST_FAIL);
4642 return res;
4643 }
4644 // 停用音频会话
4645 OH_AudioCommon_Result resultDeactivate2 = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4646 if (resultDeactivate2 != AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE) {
4647 napi_create_int32(env, TEST_FAIL, &res);
4648 LOG("resultDeactivate2, result is: %{public}d", TEST_FAIL);
4649 return res;
4650 }
4651
4652 napi_create_int32(env, TEST_PASS, &res);
4653 return res;
4654 }
4655
4656
AudioSessionManagerRegisterError_001(napi_env env,napi_callback_info info)4657 static napi_value AudioSessionManagerRegisterError_001(napi_env env, napi_callback_info info)
4658 {
4659 napi_value res;
4660 OH_AudioSessionManager* audioSessionManager;
4661 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4662 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4663 napi_create_int32(env, TEST_FAIL, &res);
4664 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4665 return res;
4666 }
4667 OH_AudioSession_Strategy strategy = {
4668 CONCURRENCY_MIX_WITH_OTHERS
4669 };
4670
4671 // 设置音频并发模式并激活音频会话
4672 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4673 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4674 napi_create_int32(env, TEST_FAIL, &res);
4675 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4676 return res;
4677 }
4678
4679 // 查询音频会话是否已激活。
4680 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4681 if (!isActivated) {
4682 napi_create_int32(env, TEST_FAIL, &res);
4683 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4684 return res;
4685 }
4686
4687 // 监听音频会话停用事件
4688 OH_AudioCommon_Result resultRegister =
4689 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(nullptr, MyAudioSessionDeactivatedCallback);
4690 if (resultRegister != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
4691 napi_create_int32(env, TEST_FAIL, &res);
4692 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4693 return res;
4694 }
4695
4696 // 停用音频会话
4697 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4698 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4699 napi_create_int32(env, TEST_FAIL, &res);
4700 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4701 return res;
4702 }
4703
4704 napi_create_int32(env, TEST_PASS, &res);
4705 return res;
4706 }
4707
4708
AudioSessionManagerRegisterError_002(napi_env env,napi_callback_info info)4709 static napi_value AudioSessionManagerRegisterError_002(napi_env env, napi_callback_info info)
4710 {
4711 napi_value res;
4712 OH_AudioSessionManager* audioSessionManager;
4713 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4714 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4715 napi_create_int32(env, TEST_FAIL, &res);
4716 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4717 return res;
4718 }
4719 OH_AudioSession_Strategy strategy = {
4720 CONCURRENCY_MIX_WITH_OTHERS
4721 };
4722
4723 // 设置音频并发模式并激活音频会话
4724 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4725 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4726 napi_create_int32(env, TEST_FAIL, &res);
4727 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4728 return res;
4729 }
4730
4731 // 查询音频会话是否已激活。
4732 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4733 if (!isActivated) {
4734 napi_create_int32(env, TEST_FAIL, &res);
4735 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4736 return res;
4737 }
4738
4739 // 监听音频会话停用事件
4740 OH_AudioCommon_Result resultRegister =
4741 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(audioSessionManager, nullptr);
4742 if (resultRegister != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
4743 napi_create_int32(env, TEST_FAIL, &res);
4744 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4745 return res;
4746 }
4747
4748 // 停用音频会话
4749 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4750 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4751 napi_create_int32(env, TEST_FAIL, &res);
4752 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4753 return res;
4754 }
4755
4756 napi_create_int32(env, TEST_PASS, &res);
4757 return res;
4758 }
4759
4760
AudioSessionManagerUnregisterError_001(napi_env env,napi_callback_info info)4761 static napi_value AudioSessionManagerUnregisterError_001(napi_env env, napi_callback_info info)
4762 {
4763 napi_value res;
4764 OH_AudioSessionManager* audioSessionManager;
4765 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4766 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4767 napi_create_int32(env, TEST_FAIL, &res);
4768 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4769 return res;
4770 }
4771 OH_AudioSession_Strategy strategy = {
4772 CONCURRENCY_MIX_WITH_OTHERS
4773 };
4774
4775 // 设置音频并发模式并激活音频会话
4776 OH_AudioCommon_Result resultActivate =
4777 OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4778 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4779 napi_create_int32(env, TEST_FAIL, &res);
4780 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4781 return res;
4782 }
4783
4784 // 查询音频会话是否已激活。
4785 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4786 if (!isActivated) {
4787 napi_create_int32(env, TEST_FAIL, &res);
4788 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4789 return res;
4790 }
4791
4792 // 监听音频会话停用事件
4793 OH_AudioCommon_Result resultRegister =
4794 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
4795 audioSessionManager, MyAudioSessionDeactivatedCallback);
4796 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
4797 napi_create_int32(env, TEST_FAIL, &res);
4798 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4799 return res;
4800 }
4801
4802 // 取消监听音频会话停用事件
4803 OH_AudioCommon_Result resultUnregister =
4804 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(nullptr, MyAudioSessionDeactivatedCallback);
4805 if (resultUnregister != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
4806 napi_create_int32(env, TEST_FAIL, &res);
4807 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4808 return res;
4809 }
4810
4811 // 取消监听音频会话停用事件
4812 resultUnregister =
4813 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
4814 audioSessionManager, MyAudioSessionDeactivatedCallback);
4815 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
4816 napi_create_int32(env, TEST_FAIL, &res);
4817 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4818 return res;
4819 }
4820
4821 // 停用音频会话
4822 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4823 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4824 napi_create_int32(env, TEST_FAIL, &res);
4825 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4826 return res;
4827 }
4828
4829 napi_create_int32(env, TEST_PASS, &res);
4830 return res;
4831 }
4832
4833
AudioSessionManagerUnregisterError_002(napi_env env,napi_callback_info info)4834 static napi_value AudioSessionManagerUnregisterError_002(napi_env env, napi_callback_info info)
4835 {
4836 napi_value res;
4837 OH_AudioSessionManager* audioSessionManager;
4838 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4839 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4840 napi_create_int32(env, TEST_FAIL, &res);
4841 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4842 return res;
4843 }
4844 OH_AudioSession_Strategy strategy = {
4845 CONCURRENCY_MIX_WITH_OTHERS
4846 };
4847
4848 // 设置音频并发模式并激活音频会话
4849 OH_AudioCommon_Result resultActivate =
4850 OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4851 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4852 napi_create_int32(env, TEST_FAIL, &res);
4853 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4854 return res;
4855 }
4856
4857 // 查询音频会话是否已激活。
4858 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4859 if (!isActivated) {
4860 napi_create_int32(env, TEST_FAIL, &res);
4861 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4862 return res;
4863 }
4864
4865 // 监听音频会话停用事件
4866 OH_AudioCommon_Result resultRegister =
4867 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
4868 audioSessionManager, MyAudioSessionDeactivatedCallback);
4869 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
4870 napi_create_int32(env, TEST_FAIL, &res);
4871 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4872 return res;
4873 }
4874
4875 // 取消监听音频会话停用事件
4876 OH_AudioCommon_Result resultUnregister =
4877 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(audioSessionManager, nullptr);
4878 if (resultUnregister != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
4879 napi_create_int32(env, TEST_FAIL, &res);
4880 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4881 return res;
4882 }
4883
4884 // 取消监听音频会话停用事件
4885 resultUnregister =
4886 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
4887 audioSessionManager, MyAudioSessionDeactivatedCallback);
4888 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
4889 napi_create_int32(env, TEST_FAIL, &res);
4890 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
4891 return res;
4892 }
4893
4894 // 停用音频会话
4895 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
4896 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
4897 napi_create_int32(env, TEST_FAIL, &res);
4898 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
4899 return res;
4900 }
4901
4902 napi_create_int32(env, TEST_PASS, &res);
4903 return res;
4904 }
4905
4906
AudioSessionManagerReason_001(napi_env env,napi_callback_info info)4907 static napi_value AudioSessionManagerReason_001(napi_env env, napi_callback_info info)
4908 {
4909 napi_value res;
4910 OH_AudioSessionManager* audioSessionManager;
4911 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
4912 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
4913 napi_create_int32(env, TEST_FAIL, &res);
4914 LOG("resultManager, result is: %{public}d", TEST_FAIL);
4915 return res;
4916 }
4917 OH_AudioSession_Strategy strategy = {
4918 CONCURRENCY_MIX_WITH_OTHERS
4919 };
4920
4921 // 设置音频并发模式并激活音频会话
4922 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
4923 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
4924 napi_create_int32(env, TEST_FAIL, &res);
4925 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
4926 return res;
4927 }
4928
4929 // 查询音频会话是否已激活。
4930 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
4931 if (!isActivated) {
4932 napi_create_int32(env, TEST_FAIL, &res);
4933 LOG("isActivated, result is: %{public}d", TEST_FAIL);
4934 return res;
4935 }
4936
4937 // create builder
4938 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
4939 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
4940 OH_AudioStreamBuilder* builder;
4941 OH_AudioStreamBuilder_Create(&builder, type);
4942 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
4943 OH_AudioRenderer* audioRenderer1;
4944 OH_AudioStream_Result createResult = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer1);
4945 if (createResult != AUDIOSTREAM_SUCCESS) {
4946 napi_create_int32(env, TEST_FAIL, &res);
4947 return res;
4948 }
4949
4950 // create audioRenderer1 audioRenderer2
4951 OH_AudioStreamBuilder* builder2;
4952 OH_AudioStreamBuilder_Create(&builder2, type);
4953 OH_AudioStreamBuilder_SetRendererInfo(builder2, usage);
4954 OH_AudioRenderer* audioRenderer2;
4955 createResult = OH_AudioStreamBuilder_GenerateRenderer(builder2, &audioRenderer2);
4956 if (createResult != AUDIOSTREAM_SUCCESS) {
4957 napi_create_int32(env, TEST_FAIL, &res);
4958 return res;
4959 }
4960
4961 // 监听音频会话停用事件
4962 OH_AudioCommon_Result resultRegister =
4963 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
4964 audioSessionManager, MyAudioSessionDeactivatedCallback);
4965 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
4966 napi_create_int32(env, TEST_FAIL, &res);
4967 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
4968 return res;
4969 }
4970
4971 // start
4972 createResult = OH_AudioRenderer_Start(audioRenderer1);
4973 if (createResult != AUDIOSTREAM_SUCCESS) {
4974 napi_create_int32(env, TEST_FAIL, &res);
4975 return res;
4976 }
4977 //sleep 1 seconds
4978 Delay(1);
4979 createResult = OH_AudioRenderer_Start(audioRenderer2);
4980 if (createResult != AUDIOSTREAM_SUCCESS) {
4981 napi_create_int32(env, TEST_FAIL, &res);
4982 return res;
4983 }
4984 //sleep 1 seconds
4985 Delay(1);
4986
4987 // stop and release client
4988 OH_AudioRenderer_Release(audioRenderer2);
4989 OH_AudioRenderer_Release(audioRenderer1);
4990 OH_AudioStreamBuilder_Destroy(builder);
4991 OH_AudioStreamBuilder_Destroy(builder2);
4992 Delay(1);
4993
4994 // 取消监听音频会话停用事件
4995 OH_AudioCommon_Result resultUnregister =
4996 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
4997 audioSessionManager, MyAudioSessionDeactivatedCallback);
4998 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
4999 napi_create_int32(env, TEST_FAIL, &res);
5000 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
5001 return res;
5002 }
5003
5004 // 停用音频会话
5005 OH_AudioCommon_Result resultDeactivate = OH_AudioSessionManager_DeactivateAudioSession(audioSessionManager);
5006 if (resultDeactivate != AUDIOCOMMON_RESULT_SUCCESS) {
5007 napi_create_int32(env, TEST_FAIL, &res);
5008 LOG("resultDeactivate, result is: %{public}d", TEST_FAIL);
5009 return res;
5010 }
5011
5012 napi_create_int32(env, TEST_PASS, &res);
5013 return res;
5014 }
5015
5016
AudioSessionManagerReason_002(napi_env env,napi_callback_info info)5017 static napi_value AudioSessionManagerReason_002(napi_env env, napi_callback_info info)
5018 {
5019 napi_value res;
5020 OH_AudioSessionManager* audioSessionManager;
5021 OH_AudioCommon_Result resultManager = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5022 if (resultManager != AUDIOCOMMON_RESULT_SUCCESS) {
5023 napi_create_int32(env, TEST_FAIL, &res);
5024 LOG("resultManager, result is: %{public}d", TEST_FAIL);
5025 return res;
5026 }
5027 OH_AudioSession_Strategy strategy = {
5028 CONCURRENCY_MIX_WITH_OTHERS
5029 };
5030
5031 // 设置音频并发模式并激活音频会话
5032 OH_AudioCommon_Result resultActivate = OH_AudioSessionManager_ActivateAudioSession(audioSessionManager, &strategy);
5033 if (resultActivate != AUDIOCOMMON_RESULT_SUCCESS) {
5034 napi_create_int32(env, TEST_FAIL, &res);
5035 LOG("resultActivate, result is: %{public}d", TEST_FAIL);
5036 return res;
5037 }
5038
5039 // 查询音频会话是否已激活。
5040 bool isActivated = OH_AudioSessionManager_IsAudioSessionActivated(audioSessionManager);
5041 if (!isActivated) {
5042 napi_create_int32(env, TEST_FAIL, &res);
5043 LOG("isActivated, result is: %{public}d", TEST_FAIL);
5044 return res;
5045 }
5046
5047 // create builder
5048 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
5049 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
5050 OH_AudioStreamBuilder* builder;
5051 OH_AudioStreamBuilder_Create(&builder, type);
5052 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
5053 OH_AudioRenderer* audioRenderer1;
5054 OH_AudioStream_Result createResult = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer1);
5055 if (createResult != AUDIOSTREAM_SUCCESS) {
5056 napi_create_int32(env, TEST_FAIL, &res);
5057 return res;
5058 }
5059
5060 // 监听音频会话停用事件
5061 OH_AudioCommon_Result resultRegister =
5062 OH_AudioSessionManager_RegisterSessionDeactivatedCallback(
5063 audioSessionManager, MyAudioSessionDeactivatedCallback);
5064 if (resultRegister != AUDIOCOMMON_RESULT_SUCCESS) {
5065 napi_create_int32(env, TEST_FAIL, &res);
5066 LOG("resultRegister, result is: %{public}d", TEST_FAIL);
5067 return res;
5068 }
5069
5070 // start
5071 createResult = OH_AudioRenderer_Start(audioRenderer1);
5072 if (createResult != AUDIOSTREAM_SUCCESS) {
5073 napi_create_int32(env, TEST_FAIL, &res);
5074 return res;
5075 }
5076 Delay(1);
5077 OH_AudioRenderer_Stop(audioRenderer1);
5078 //sleep 65 seconds 创造超时条件
5079 Delay(65);
5080
5081 // release client
5082 OH_AudioRenderer_Release(audioRenderer1);
5083 OH_AudioStreamBuilder_Destroy(builder);
5084
5085 // 取消监听音频会话停用事件
5086 OH_AudioCommon_Result resultUnregister =
5087 OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(
5088 audioSessionManager, MyAudioSessionDeactivatedCallback);
5089 if (resultUnregister != AUDIOCOMMON_RESULT_SUCCESS) {
5090 napi_create_int32(env, TEST_FAIL, &res);
5091 LOG("resultUnregister, result is: %{public}d", TEST_FAIL);
5092 return res;
5093 }
5094
5095 napi_create_int32(env, TEST_PASS, &res);
5096 return res;
5097 }
5098
MyStateCallback(OH_AudioSession_StateChangedEvent event)5099 static void MyStateCallback(OH_AudioSession_StateChangedEvent event)
5100 {
5101 return;
5102 }
5103
MyDeviceCallback(OH_AudioDeviceDescriptorArray * devices,OH_AudioStream_DeviceChangeReason changeReason,OH_AudioSession_OutputDeviceChangeRecommendedAction recommendedAction)5104 static void MyDeviceCallback(OH_AudioDeviceDescriptorArray *devices,
5105 OH_AudioStream_DeviceChangeReason changeReason,
5106 OH_AudioSession_OutputDeviceChangeRecommendedAction recommendedAction)
5107 {
5108 return;
5109 }
5110
AudioSessionManagerSetScene_001(napi_env env,napi_callback_info info)5111 static napi_value AudioSessionManagerSetScene_001(napi_env env, napi_callback_info info)
5112 {
5113 napi_value res;
5114 OH_AudioSessionManager *audioSessionManager;
5115 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5116 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5117 napi_create_int32(env, TEST_FAIL, &res);
5118 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5119 return res;
5120 }
5121
5122 OH_AudioSession_Scene scene = AUDIO_SESSION_SCENE_MEDIA;
5123 result = OH_AudioSessionManager_SetScene(audioSessionManager, scene);
5124 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5125 napi_create_int32(env, TEST_FAIL, &res);
5126 LOG("SetScene fail AUDIO_SESSION_SCENE_MEDIA, result is: %{public}d", TEST_FAIL);
5127 return res;
5128 }
5129
5130 scene = AUDIO_SESSION_SCENE_GAME;
5131 result = OH_AudioSessionManager_SetScene(audioSessionManager, scene);
5132 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5133 napi_create_int32(env, TEST_FAIL, &res);
5134 LOG("SetScene fail AUDIO_SESSION_SCENE_GAME, result is: %{public}d", TEST_FAIL);
5135 return res;
5136 }
5137
5138 scene = AUDIO_SESSION_SCENE_VOICE_COMMUNICATION;
5139 result = OH_AudioSessionManager_SetScene(audioSessionManager, scene);
5140 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5141 napi_create_int32(env, TEST_FAIL, &res);
5142 LOG("SetScene fail AUDIO_SESSION_SCENE_VOICE_COMMUNICATION, result is: %{public}d", TEST_FAIL);
5143 return res;
5144 }
5145 napi_create_int32(env, TEST_PASS, &res);
5146 return res;
5147 }
5148
AudioSessionManagerRegisterStateChangeCallback_001(napi_env env,napi_callback_info info)5149 static napi_value AudioSessionManagerRegisterStateChangeCallback_001(napi_env env, napi_callback_info info)
5150 {
5151 napi_value res;
5152 OH_AudioSessionManager *audioSessionManager;
5153 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5154 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5155 napi_create_int32(env, TEST_FAIL, &res);
5156 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5157 return res;
5158 }
5159
5160 result = OH_AudioSessionManager_RegisterStateChangeCallback(audioSessionManager, MyStateCallback);
5161 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5162 napi_create_int32(env, TEST_FAIL, &res);
5163 LOG("RegisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5164 return res;
5165 }
5166 result = OH_AudioSessionManager_UnregisterStateChangeCallback(audioSessionManager, MyStateCallback);
5167 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5168 napi_create_int32(env, TEST_FAIL, &res);
5169 LOG("UnregisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5170 return res;
5171 }
5172 napi_create_int32(env, TEST_PASS, &res);
5173 return res;
5174 }
5175
AudioSessionManagerRegisterStateChangeCallback_002(napi_env env,napi_callback_info info)5176 static napi_value AudioSessionManagerRegisterStateChangeCallback_002(napi_env env, napi_callback_info info)
5177 {
5178 napi_value res;
5179 OH_AudioSessionManager *audioSessionManager = nullptr;
5180 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5181 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5182 napi_create_int32(env, TEST_FAIL, &res);
5183 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5184 return res;
5185 }
5186
5187 result = OH_AudioSessionManager_RegisterStateChangeCallback(audioSessionManager, nullptr);
5188 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
5189 napi_create_int32(env, TEST_FAIL, &res);
5190 LOG("RegisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5191 return res;
5192 }
5193
5194 result = OH_AudioSessionManager_UnregisterStateChangeCallback(audioSessionManager, nullptr);
5195 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
5196 napi_create_int32(env, TEST_FAIL, &res);
5197 LOG("UnregisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5198 return res;
5199 }
5200 napi_create_int32(env, TEST_PASS, &res);
5201 return res;
5202 }
5203
AudioSessionManagerRegisterStateChangeCallback_003(napi_env env,napi_callback_info info)5204 static napi_value AudioSessionManagerRegisterStateChangeCallback_003(napi_env env, napi_callback_info info)
5205 {
5206 napi_value res;
5207 OH_AudioSessionManager *audioSessionManager = nullptr;
5208 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5209 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5210 napi_create_int32(env, TEST_FAIL, &res);
5211 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5212 return res;
5213 }
5214
5215 result = OH_AudioSessionManager_RegisterStateChangeCallback(audioSessionManager, MyStateCallback);
5216 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5217 napi_create_int32(env, TEST_FAIL, &res);
5218 LOG("RegisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5219 return res;
5220 }
5221
5222 result = OH_AudioSessionManager_RegisterStateChangeCallback(audioSessionManager, MyStateCallback);
5223 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5224 napi_create_int32(env, TEST_FAIL, &res);
5225 LOG("RegisterStateChangeCallback double fail, result is: %{public}d", TEST_FAIL);
5226 return res;
5227 }
5228
5229 result = OH_AudioSessionManager_UnregisterStateChangeCallback(audioSessionManager, MyStateCallback);
5230 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5231 napi_create_int32(env, TEST_FAIL, &res);
5232 LOG("UnregisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5233 return res;
5234 }
5235
5236 result = OH_AudioSessionManager_UnregisterStateChangeCallback(audioSessionManager, MyStateCallback);
5237 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
5238 napi_create_int32(env, TEST_FAIL, &res);
5239 LOG("UnregisterStateChangeCallback double fail, result is: %{public}d", TEST_FAIL);
5240 return res;
5241 }
5242 napi_create_int32(env, TEST_PASS, &res);
5243 return res;
5244 }
5245
AudioSessionManagerSetDefaultOutputDevice_001(napi_env env,napi_callback_info info)5246 static napi_value AudioSessionManagerSetDefaultOutputDevice_001(napi_env env, napi_callback_info info)
5247 {
5248 napi_value res;
5249 OH_AudioSessionManager *audioSessionManager = nullptr;
5250 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5251 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5252 napi_create_int32(env, TEST_FAIL, &res);
5253 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5254 return res;
5255 }
5256
5257 OH_AudioDevice_Type deviceTypeGet = AUDIO_DEVICE_TYPE_EARPIECE;
5258 result = OH_AudioSessionManager_GetDefaultOutputDevice(audioSessionManager, &deviceTypeGet);
5259 if (result != AUDIOCOMMON_RESULT_SUCCESS || deviceTypeGet != AUDIO_DEVICE_TYPE_INVALID) {
5260 napi_create_int32(env, TEST_FAIL, &res);
5261 LOG("GetDefaultOutputDevice fail, result is: %{public}d", TEST_FAIL);
5262 return res;
5263 }
5264
5265 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_DEFAULT;
5266 result = OH_AudioSessionManager_SetDefaultOutputDevice(audioSessionManager, deviceType);
5267 if ((result != AUDIOCOMMON_RESULT_SUCCESS) && (result != AUDIOCOMMON_RESULT_ERROR_SYSTEM)) {
5268 napi_create_int32(env, TEST_FAIL, &res);
5269 LOG("SetDefaultOutputDevice AUDIO_DEVICE_TYPE_DEFAULT fail, result is: %{public}d", TEST_FAIL);
5270 return res;
5271 }
5272
5273 result = OH_AudioSessionManager_GetDefaultOutputDevice(audioSessionManager, &deviceTypeGet);
5274 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5275 napi_create_int32(env, TEST_FAIL, &res);
5276 LOG("GetDefaultOutputDevice fail, result is: %{public}d", TEST_FAIL);
5277 return res;
5278 }
5279 napi_create_int32(env, TEST_PASS, &res);
5280 return res;
5281 }
5282
AudioSessionManagerSetDefaultOutputDevice_002(napi_env env,napi_callback_info info)5283 static napi_value AudioSessionManagerSetDefaultOutputDevice_002(napi_env env, napi_callback_info info)
5284 {
5285 napi_value res;
5286 OH_AudioSessionManager *audioSessionManager = nullptr;
5287 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5288 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5289 napi_create_int32(env, TEST_FAIL, &res);
5290 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5291 return res;
5292 }
5293
5294 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_INVALID;
5295 result = OH_AudioSessionManager_SetDefaultOutputDevice(audioSessionManager, deviceType);
5296 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
5297 napi_create_int32(env, TEST_FAIL, &res);
5298 LOG("SetDefaultOutputDevice fail, result is: %{public}d", TEST_FAIL);
5299 return res;
5300 }
5301 napi_create_int32(env, TEST_PASS, &res);
5302 return res;
5303 }
5304
AudioSessionManagerGetDefaultOutputDevice_001(napi_env env,napi_callback_info info)5305 static napi_value AudioSessionManagerGetDefaultOutputDevice_001(napi_env env, napi_callback_info info)
5306 {
5307 napi_value res;
5308 OH_AudioSessionManager *audioSessionManager = nullptr;
5309 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5310 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5311 napi_create_int32(env, TEST_FAIL, &res);
5312 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5313 return res;
5314 }
5315
5316 result = OH_AudioSessionManager_GetDefaultOutputDevice(audioSessionManager, nullptr);
5317 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
5318 napi_create_int32(env, TEST_FAIL, &res);
5319 LOG("GetDefaultOutputDevice fail, result is: %{public}d", TEST_FAIL);
5320 return res;
5321 }
5322 napi_create_int32(env, TEST_PASS, &res);
5323 return res;
5324 }
5325
AudioSessionManagerRegisterDeviceCallback_001(napi_env env,napi_callback_info info)5326 static napi_value AudioSessionManagerRegisterDeviceCallback_001(napi_env env, napi_callback_info info)
5327 {
5328 napi_value res;
5329 OH_AudioSessionManager *audioSessionManager = nullptr;
5330 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5331 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5332 napi_create_int32(env, TEST_FAIL, &res);
5333 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5334 return res;
5335 }
5336
5337 result = OH_AudioSessionManager_RegisterCurrentOutputDeviceChangeCallback(audioSessionManager, MyDeviceCallback);
5338 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5339 napi_create_int32(env, TEST_FAIL, &res);
5340 LOG("RegisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5341 return res;
5342 }
5343 result = OH_AudioSessionManager_UnregisterCurrentOutputDeviceChangeCallback(audioSessionManager, MyDeviceCallback);
5344 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5345 napi_create_int32(env, TEST_FAIL, &res);
5346 LOG("UnregisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5347 return res;
5348 }
5349 napi_create_int32(env, TEST_PASS, &res);
5350 return res;
5351 }
5352
AudioSessionManagerRegisterDeviceCallback_002(napi_env env,napi_callback_info info)5353 static napi_value AudioSessionManagerRegisterDeviceCallback_002(napi_env env, napi_callback_info info)
5354 {
5355 napi_value res;
5356 OH_AudioSessionManager *audioSessionManager = nullptr;
5357 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5358 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5359 napi_create_int32(env, TEST_FAIL, &res);
5360 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5361 return res;
5362 }
5363
5364 result = OH_AudioSessionManager_RegisterCurrentOutputDeviceChangeCallback(audioSessionManager, nullptr);
5365 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
5366 napi_create_int32(env, TEST_FAIL, &res);
5367 LOG("RegisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5368 return res;
5369 }
5370
5371 result = OH_AudioSessionManager_UnregisterCurrentOutputDeviceChangeCallback(audioSessionManager, nullptr);
5372 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
5373 napi_create_int32(env, TEST_FAIL, &res);
5374 LOG("UnregisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5375 return res;
5376 }
5377 napi_create_int32(env, TEST_PASS, &res);
5378 return res;
5379 }
5380
AudioSessionManagerRegisterDeviceCallback_003(napi_env env,napi_callback_info info)5381 static napi_value AudioSessionManagerRegisterDeviceCallback_003(napi_env env, napi_callback_info info)
5382 {
5383 napi_value res;
5384 OH_AudioSessionManager *audioSessionManager = nullptr;
5385 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5386 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5387 napi_create_int32(env, TEST_FAIL, &res);
5388 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5389 return res;
5390 }
5391
5392 result = OH_AudioSessionManager_RegisterCurrentOutputDeviceChangeCallback(audioSessionManager, MyDeviceCallback);
5393 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5394 napi_create_int32(env, TEST_FAIL, &res);
5395 LOG("RegisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5396 return res;
5397 }
5398
5399 result = OH_AudioSessionManager_RegisterCurrentOutputDeviceChangeCallback(audioSessionManager, MyDeviceCallback);
5400 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5401 napi_create_int32(env, TEST_FAIL, &res);
5402 LOG("RegisterStateChangeCallback double fail, result is: %{public}d", TEST_FAIL);
5403 return res;
5404 }
5405
5406 result = OH_AudioSessionManager_UnregisterCurrentOutputDeviceChangeCallback(audioSessionManager, MyDeviceCallback);
5407 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5408 napi_create_int32(env, TEST_FAIL, &res);
5409 LOG("UnregisterStateChangeCallback fail, result is: %{public}d", TEST_FAIL);
5410 return res;
5411 }
5412
5413 result = OH_AudioSessionManager_UnregisterCurrentOutputDeviceChangeCallback(audioSessionManager, MyDeviceCallback);
5414 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
5415 napi_create_int32(env, TEST_FAIL, &res);
5416 LOG("UnregisterStateChangeCallback double fail, result is: %{public}d", TEST_FAIL);
5417 return res;
5418 }
5419 napi_create_int32(env, TEST_PASS, &res);
5420 return res;
5421 }
5422
AudioSessionManagerReleaseDevices_001(napi_env env,napi_callback_info info)5423 static napi_value AudioSessionManagerReleaseDevices_001(napi_env env, napi_callback_info info)
5424 {
5425 napi_value res;
5426 OH_AudioSessionManager *audioSessionManager = nullptr;
5427 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5428 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5429 napi_create_int32(env, TEST_FAIL, &res);
5430 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5431 return res;
5432 }
5433
5434 OH_AudioRoutingManager *audioRoutingManager = nullptr;
5435 result = OH_AudioManager_GetAudioRoutingManager(&audioRoutingManager);
5436 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5437 napi_create_int32(env, TEST_FAIL, &res);
5438 LOG("get audio route manager fail, result is: %{public}d", TEST_FAIL);
5439 return res;
5440 }
5441
5442 OH_AudioDevice_Flag deviceFlag = AUDIO_DEVICE_FLAG_OUTPUT;
5443 OH_AudioDeviceDescriptorArray *array = nullptr;
5444 result = OH_AudioRoutingManager_GetDevices(audioRoutingManager, deviceFlag, &array);
5445 if (result != AUDIOCOMMON_RESULT_SUCCESS || array == nullptr) {
5446 napi_create_int32(env, TEST_FAIL, &res);
5447 LOG("AudioRoutingManager_GetDevices fail, result is: %{public}d", TEST_FAIL);
5448 return res;
5449 }
5450
5451 result = OH_AudioSessionManager_ReleaseDevices(audioSessionManager, array);
5452 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5453 napi_create_int32(env, TEST_FAIL, &res);
5454 LOG("AudioSessionManager_ReleaseDevices fail, result is: %{public}d", TEST_FAIL);
5455 return res;
5456 }
5457 napi_create_int32(env, TEST_PASS, &res);
5458 return res;
5459 }
5460
AudioSessionManagerReleaseDevices_002(napi_env env,napi_callback_info info)5461 static napi_value AudioSessionManagerReleaseDevices_002(napi_env env, napi_callback_info info)
5462 {
5463 napi_value res;
5464 OH_AudioSessionManager *audioSessionManager = nullptr;
5465 OH_AudioCommon_Result result = OH_AudioManager_GetAudioSessionManager(&audioSessionManager);
5466 if (result != AUDIOCOMMON_RESULT_SUCCESS) {
5467 napi_create_int32(env, TEST_FAIL, &res);
5468 LOG("get audio session manager fail, result is: %{public}d", TEST_FAIL);
5469 return res;
5470 }
5471
5472 result = OH_AudioSessionManager_ReleaseDevices(nullptr, nullptr);
5473 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
5474 napi_create_int32(env, TEST_FAIL, &res);
5475 LOG("AudioSessionManager_ReleaseDevices fail, manager nullptr, result is: %{public}d", TEST_FAIL);
5476 return res;
5477 }
5478
5479 result = OH_AudioSessionManager_ReleaseDevices(audioSessionManager, nullptr);
5480 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
5481 napi_create_int32(env, TEST_FAIL, &res);
5482 LOG("AudioSessionManager_ReleaseDevices fail, devices nullptr, result is: %{public}d", TEST_FAIL);
5483 return res;
5484 }
5485 OH_AudioDeviceDescriptorArray audioDeviceDescriptorArray;
5486 audioDeviceDescriptorArray.descriptors = nullptr;
5487
5488 result = OH_AudioSessionManager_ReleaseDevices(audioSessionManager, &audioDeviceDescriptorArray);
5489 if (result != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
5490 napi_create_int32(env, TEST_FAIL, &res);
5491 LOG("AudioSessionManager_ReleaseDevices fail, descriptors nullptr, result is: %{public}d", TEST_FAIL);
5492 return res;
5493 }
5494 napi_create_int32(env, TEST_PASS, &res);
5495 return res;
5496 }
5497
AudioRendererSetDefaultOutputDevice_01(napi_env env,napi_callback_info info)5498 static napi_value AudioRendererSetDefaultOutputDevice_01(napi_env env, napi_callback_info info)
5499 {
5500 napi_value res;
5501 OH_AudioStreamBuilder* builder;
5502 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
5503 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_VOICE_COMMUNICATION;
5504 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_WIRED_HEADSET;
5505 OH_AudioStreamBuilder_Create(&builder, type);
5506
5507 // 2. set builder params
5508 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
5509
5510 OH_AudioRenderer_Callbacks callbacks;
5511 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
5512 OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
5513
5514 // 3. generate audiorenderer
5515 OH_AudioRenderer* audioRenderer;
5516 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
5517 if (result != AUDIOSTREAM_SUCCESS) {
5518 napi_create_int32(env, TEST_FAIL, &res);
5519 return res;
5520 }
5521
5522 // 4. start
5523 result = OH_AudioRenderer_Start(audioRenderer);
5524 if (result != AUDIOSTREAM_SUCCESS) {
5525 napi_create_int32(env, TEST_FAIL, &res);
5526 return res;
5527 }
5528
5529 // 5. OH_AudioRenderer_SetDefaultOutputDevice
5530 result = OH_AudioRenderer_SetDefaultOutputDevice(audioRenderer, deviceType);
5531 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
5532 napi_create_int32(env, TEST_FAIL, &res);
5533 } else {
5534 napi_create_int32(env, TEST_PASS, &res);
5535 }
5536
5537 OH_AudioRenderer_Release(audioRenderer);
5538 OH_AudioStreamBuilder_Destroy(builder);
5539 return res;
5540 }
5541
AudioRendererSetDefaultOutputDevice_02(napi_env env,napi_callback_info info)5542 static napi_value AudioRendererSetDefaultOutputDevice_02(napi_env env, napi_callback_info info)
5543 {
5544 napi_value res;
5545 OH_AudioStreamBuilder* builder;
5546 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
5547 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_MUSIC;
5548 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_SPEAKER;
5549 OH_AudioStreamBuilder_Create(&builder, type);
5550
5551 // 2. set builder params
5552 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
5553
5554 OH_AudioRenderer_Callbacks callbacks;
5555 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
5556 OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
5557
5558 // 3. generate audiorenderer
5559 OH_AudioRenderer* audioRenderer;
5560 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
5561 if (result != AUDIOSTREAM_SUCCESS) {
5562 napi_create_int32(env, TEST_FAIL, &res);
5563 return res;
5564 }
5565
5566 // 4. start
5567 result = OH_AudioRenderer_Start(audioRenderer);
5568 if (result != AUDIOSTREAM_SUCCESS) {
5569 napi_create_int32(env, TEST_FAIL, &res);
5570 return res;
5571 }
5572
5573 // 5. OH_AudioRenderer_SetDefaultOutputDevice
5574 result = OH_AudioRenderer_SetDefaultOutputDevice(audioRenderer, deviceType);
5575 if (result != AUDIOSTREAM_ERROR_ILLEGAL_STATE) {
5576 napi_create_int32(env, TEST_FAIL, &res);
5577 } else {
5578 napi_create_int32(env, TEST_PASS, &res);
5579 }
5580
5581 OH_AudioRenderer_Release(audioRenderer);
5582 OH_AudioStreamBuilder_Destroy(builder);
5583 return res;
5584 }
5585
AudioRendererSetDefaultOutputDevice_03(napi_env env,napi_callback_info info)5586 static napi_value AudioRendererSetDefaultOutputDevice_03(napi_env env, napi_callback_info info)
5587 {
5588 napi_value res;
5589 OH_AudioStreamBuilder* builder;
5590 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
5591 OH_AudioStream_Usage usage = AUDIOSTREAM_USAGE_VOICE_COMMUNICATION;
5592 OH_AudioDevice_Type deviceType = AUDIO_DEVICE_TYPE_SPEAKER;
5593 OH_AudioStreamBuilder_Create(&builder, type);
5594
5595 // 2. set builder params
5596 OH_AudioStreamBuilder_SetRendererInfo(builder, usage);
5597
5598 OH_AudioRenderer_Callbacks callbacks;
5599 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
5600 OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, nullptr);
5601
5602 // 3. generate audiorenderer
5603 OH_AudioRenderer* audioRenderer;
5604 OH_AudioStream_Result result = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
5605 if (result != AUDIOSTREAM_SUCCESS) {
5606 napi_create_int32(env, TEST_FAIL, &res);
5607 return res;
5608 }
5609
5610 // 4. start
5611 result = OH_AudioRenderer_Start(audioRenderer);
5612 if (result != AUDIOSTREAM_SUCCESS) {
5613 napi_create_int32(env, TEST_FAIL, &res);
5614 return res;
5615 }
5616
5617 // 5. OH_AudioRenderer_SetDefaultOutputDevice
5618 result = OH_AudioRenderer_SetDefaultOutputDevice(nullptr, deviceType);
5619 if (result != AUDIOSTREAM_ERROR_INVALID_PARAM) {
5620 napi_create_int32(env, TEST_FAIL, &res);
5621 } else {
5622 napi_create_int32(env, TEST_PASS, &res);
5623 }
5624
5625 OH_AudioRenderer_Release(audioRenderer);
5626 OH_AudioStreamBuilder_Destroy(builder);
5627 return res;
5628 }
5629
Add(napi_env env,napi_callback_info info)5630 static napi_value Add(napi_env env, napi_callback_info info)
5631 {
5632 size_t requireArgc = 2;
5633 size_t argc = 2;
5634 napi_value args[2] = {nullptr};
5635
5636 napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
5637
5638 napi_valuetype valuetype0;
5639 napi_typeof(env, args[0], &valuetype0);
5640
5641 napi_valuetype valuetype1;
5642 napi_typeof(env, args[1], &valuetype1);
5643
5644 double value0;
5645 napi_get_value_double(env, args[0], &value0);
5646
5647 double value1;
5648 napi_get_value_double(env, args[1], &value1);
5649
5650 napi_value sum;
5651 napi_create_double(env, value0 + value1, &sum);
5652
5653 return sum;
5654 }
5655
CreateRenderBuilderAddCallBack()5656 OH_AudioStreamBuilder *CreateRenderBuilderAddCallBack()
5657 {
5658 OH_AudioStreamBuilder *builder;
5659 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
5660 OH_AudioStreamBuilder_Create(&builder, type);
5661 OH_AudioRenderer_Callbacks callbacks;
5662 callbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteData;
5663 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererCallback(builder, callbacks, NULL);
5664 return builder;
5665 }
5666
AudioRenderGetAudioTimestampInfo(napi_env env,napi_callback_info info)5667 static napi_value AudioRenderGetAudioTimestampInfo(napi_env env, napi_callback_info info)
5668 {
5669 OH_AudioStreamBuilder *builder = CreateRenderBuilderAddCallBack();
5670
5671 OH_AudioRenderer *audioRenderer;
5672 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
5673
5674 napi_value res;
5675 int64_t framePosition0;
5676 int64_t timestamp0;
5677 OH_AudioStream_Result result = OH_AudioRenderer_GetAudioTimestampInfo(
5678 audioRenderer, &framePosition0, ×tamp0);
5679 if (result == AUDIOSTREAM_SUCCESS) {
5680 napi_create_int32(env, TEST_FAIL, &res);
5681 return res;
5682 }
5683 OH_AudioRenderer_Start(audioRenderer);
5684
5685 int sleepNum = 30000;
5686 uDelay(sleepNum);
5687
5688 int64_t framePosition1;
5689 int64_t timestamp1;
5690 result = OH_AudioRenderer_GetAudioTimestampInfo(audioRenderer, &framePosition1, ×tamp1);
5691 if (result != AUDIOSTREAM_SUCCESS) {
5692 napi_create_int32(env, TEST_FAIL, &res);
5693 return res;
5694 }
5695
5696 OH_AudioRenderer_Stop(audioRenderer);
5697 result = OH_AudioRenderer_GetAudioTimestampInfo(audioRenderer, &framePosition0, ×tamp0);
5698 if (result == AUDIOSTREAM_SUCCESS) {
5699 napi_create_int32(env, TEST_FAIL, &res);
5700 return res;
5701 }
5702 OH_AudioRenderer_Release(audioRenderer);
5703 OH_AudioStreamBuilder_Destroy(builder);
5704 napi_create_int32(env, TEST_PASS, &res);
5705 return res;
5706 }
5707
AudioRenderGetAudioTimestampInfoInterval(napi_env env,napi_callback_info info)5708 static napi_value AudioRenderGetAudioTimestampInfoInterval(napi_env env, napi_callback_info info)
5709 {
5710 OH_AudioStreamBuilder *builder = CreateRenderBuilderAddCallBack();
5711
5712 OH_AudioRenderer *audioRenderer;
5713 OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
5714
5715 OH_AudioRenderer_Start(audioRenderer);
5716
5717 int sleepNum = 500000;
5718 uDelay(sleepNum);
5719
5720 napi_value res;
5721 float rate = 0.15;
5722 int counti = 5;
5723 int64_t framePositionLastDuration = 0;
5724 int64_t timestampLastDuration = 0;
5725 OH_AudioStream_Result result = AUDIOSTREAM_SUCCESS;
5726
5727 for (int i = 0; i < counti; ++i) {
5728 int64_t framePosition1 = 0;
5729 int64_t framePosition2 = 0;
5730 int64_t timestamp1 = 0;
5731 int64_t timestamp2 = 0;
5732 result = OH_AudioRenderer_GetAudioTimestampInfo(audioRenderer, &framePosition1, ×tamp1);
5733
5734 uDelay(sleepNum);
5735
5736 result = OH_AudioRenderer_GetAudioTimestampInfo(audioRenderer, &framePosition2, ×tamp2);
5737 if (framePositionLastDuration == 0) {
5738 framePositionLastDuration = framePosition2 - framePosition1;
5739 timestampLastDuration = timestamp2 - timestamp1;
5740 continue;
5741 }
5742
5743 int64_t timestampCurDuration = timestamp2 - timestamp1;
5744 int64_t framePositionCurDuration = (framePosition2 - framePosition1) *
5745 ((timestampLastDuration * 1.0) / (timestampCurDuration));
5746
5747 if (framePositionLastDuration <= framePositionCurDuration * (1 - rate) ||
5748 framePositionLastDuration >= framePositionCurDuration * (1 + rate)) {
5749 napi_create_int32(env, TEST_FAIL, &res);
5750 OH_AudioRenderer_Stop(audioRenderer);
5751 OH_AudioRenderer_Release(audioRenderer);
5752 OH_AudioStreamBuilder_Destroy(builder);
5753 return res;
5754 }
5755
5756 framePositionLastDuration = framePosition2 - framePosition1;
5757 timestampLastDuration = timestamp2 - timestamp1;
5758 }
5759 OH_AudioRenderer_Stop(audioRenderer);
5760 OH_AudioRenderer_Release(audioRenderer);
5761 OH_AudioStreamBuilder_Destroy(builder);
5762 napi_create_int32(env, TEST_PASS, &res);
5763 return res;
5764 }
5765
getTargetStreamInfo(napi_env env,napi_callback_info info)5766 static napi_status getTargetStreamInfo(napi_env env, napi_callback_info info)
5767 {
5768 napi_status res = napi_status::napi_invalid_arg;
5769 size_t argc = 1;
5770 napi_value args[1] = {nullptr};
5771 napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
5772 napi_value n_streamRendererUsageNum;
5773 napi_value n_streamSourceTypeNum;
5774 napi_value n_streamSamplingRateNum;
5775 napi_value n_streamSampleFormatNum;
5776 napi_value n_streamChannelCountNum;
5777 napi_value n_streamLatencyModeNum;
5778 if (napi_get_named_property(env, args[0], "streamRendererUsageNum", &n_streamRendererUsageNum) != napi_ok) {
5779 return res;
5780 }
5781 if (napi_get_named_property(env, args[0], "streamSourceTypeNum", &n_streamSourceTypeNum) != napi_ok) {
5782 return res;
5783 }
5784 if (napi_get_named_property(env, args[0], "streamSamplingRateNum", &n_streamSamplingRateNum) != napi_ok) {
5785 return res;
5786 }
5787 if (napi_get_named_property(env, args[0], "streamSampleFormatNum", &n_streamSampleFormatNum) != napi_ok) {
5788 return res;
5789 }
5790 if (napi_get_named_property(env, args[0], "streamChannelCountNum", &n_streamChannelCountNum) != napi_ok) {
5791 return res;
5792 }
5793 if (napi_get_named_property(env, args[0], "streamLatencyModeNum", &n_streamLatencyModeNum) != napi_ok) {
5794 return res;
5795 }
5796 int32_t capturerStreamUsage;
5797 napi_get_value_int32(env, n_streamSourceTypeNum, &capturerStreamUsage);
5798 g_ohCapturerStreamUsage = (OH_AudioStream_SourceType)capturerStreamUsage;
5799 int32_t rendererStreamUsage;
5800 napi_get_value_int32(env, n_streamRendererUsageNum, &rendererStreamUsage);
5801 g_ohRendererStreamUsage = (OH_AudioStream_Usage)rendererStreamUsage;
5802 int32_t format;
5803 napi_get_value_int32(env, n_streamSampleFormatNum, &format);
5804 g_ohFormat = (OH_AudioStream_SampleFormat)format;
5805 int32_t samplingRate;
5806 napi_get_value_int32(env, n_streamSamplingRateNum, &samplingRate);
5807 g_ohSamplingRate = samplingRate;
5808 int32_t channelCount;
5809 napi_get_value_int32(env, n_streamChannelCountNum, &channelCount);
5810 g_ohChannelCount = channelCount;
5811 int32_t latencyMode;
5812 napi_get_value_int32(env, n_streamLatencyModeNum, &latencyMode);
5813 g_ohLatencyMode = (OH_AudioStream_LatencyMode)latencyMode;
5814 return napi_status::napi_ok;
5815 }
5816
AudioCapturerOnReadDataPcm(OH_AudioCapturer * capturer,void * userData,void * buffer,int32_t bufferLen)5817 static int32_t AudioCapturerOnReadDataPcm(OH_AudioCapturer *capturer, void *userData, void *buffer, int32_t bufferLen)
5818 {
5819 size_t count = 1;
5820 if (fwrite(buffer, bufferLen, count, g_pcmFile) != count) {
5821 printf("buffer fwrite err");
5822 }
5823 return 0;
5824 }
5825
AudioCapturerInit(napi_env env,napi_callback_info info)5826 static napi_value AudioCapturerInit(napi_env env, napi_callback_info info)
5827 {
5828 napi_value result;
5829 napi_status res = getTargetStreamInfo(env, info);
5830 if (res != napi_status::napi_ok) {
5831 napi_create_int32(env, TEST_FAIL, &result);
5832 return result;
5833 }
5834
5835 if (g_audioCapturer) {
5836 OH_AudioCapturer_Release(g_audioCapturer);
5837 OH_AudioStreamBuilder_Destroy(g_capturerBuilder);
5838 g_audioCapturer = nullptr;
5839 g_capturerBuilder = nullptr;
5840 }
5841
5842 if (g_pcmFile) {
5843 fclose(g_pcmFile);
5844 g_pcmFile = nullptr;
5845 }
5846
5847 g_pcmFile = fopen(g_pcmFilePath.c_str(), "wb");
5848 if (g_pcmFile == nullptr) {
5849 LOG("AudioCapturerInit open g_pcmFilePath fail");
5850 napi_create_int32(env, TEST_FAIL, &result);
5851 return result;
5852 }
5853
5854 // 1. create builder
5855 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_CAPTURER;
5856 OH_AudioStreamBuilder_Create(&g_capturerBuilder, type);
5857 // 2. set params and callbacks
5858 // 设置音频采样格式
5859 OH_AudioStreamBuilder_SetSampleFormat(g_capturerBuilder, g_ohFormat);
5860 // 设置音频流的编码类型
5861 OH_AudioStreamBuilder_SetEncodingType(g_capturerBuilder, AUDIOSTREAM_ENCODING_TYPE_RAW);
5862 // 设置输出音频流的工作场景
5863 OH_AudioStreamBuilder_SetCapturerInfo(g_capturerBuilder, g_ohCapturerStreamUsage);
5864
5865 OH_AudioStreamBuilder_SetSamplingRate(g_capturerBuilder, g_ohSamplingRate);
5866 OH_AudioStreamBuilder_SetChannelCount(g_capturerBuilder, g_ohChannelCount);
5867 OH_AudioStreamBuilder_SetLatencyMode(g_capturerBuilder, g_ohLatencyMode);
5868
5869 OH_AudioCapturer_Callbacks callbacks;
5870 callbacks.OH_AudioCapturer_OnReadData = AudioCapturerOnReadDataPcm;
5871 callbacks.OH_AudioCapturer_OnStreamEvent = nullptr;
5872 callbacks.OH_AudioCapturer_OnInterruptEvent = nullptr;
5873 callbacks.OH_AudioCapturer_OnError = nullptr;
5874
5875 OH_AudioStreamBuilder_SetCapturerCallback(g_capturerBuilder, callbacks, nullptr);
5876
5877 // 3. create OH_AudioCapturer
5878 OH_AudioStreamBuilder_GenerateCapturer(g_capturerBuilder, &g_audioCapturer);
5879
5880 napi_create_int32(env, TEST_PASS, &result);
5881 LOG("AudioCapturerInit succ");
5882 return result;
5883 }
5884
AudioCapturerStart(napi_env env,napi_callback_info info)5885 static napi_value AudioCapturerStart(napi_env env, napi_callback_info info)
5886 {
5887 napi_value result;
5888 OH_AudioStream_Result res = AUDIOSTREAM_SUCCESS;
5889
5890 if (g_audioCapturer == nullptr) {
5891 LOG("AudioCapturerStart fail");
5892 res = AUDIOSTREAM_ERROR_INVALID_PARAM;
5893 } else {
5894 res = OH_AudioCapturer_Start(g_audioCapturer);
5895 if (res != AUDIOSTREAM_SUCCESS) {
5896 LOG("AudioCapturerStart fail");
5897 } else {
5898 LOG("AudioCapturerStart succ");
5899 }
5900 }
5901
5902 napi_create_int32(env, res, &result);
5903 return result;
5904 }
5905
AudioCapturerStop(napi_env env,napi_callback_info info)5906 static napi_value AudioCapturerStop(napi_env env, napi_callback_info info)
5907 {
5908 napi_value result;
5909 OH_AudioStream_Result res = AUDIOSTREAM_SUCCESS;
5910
5911 if (g_audioCapturer == nullptr) {
5912 LOG("AudioCapturerStop fail");
5913 res = AUDIOSTREAM_ERROR_INVALID_PARAM;
5914 } else {
5915 res = OH_AudioCapturer_Stop(g_audioCapturer);
5916 if (res != AUDIOSTREAM_SUCCESS) {
5917 LOG("AudioCapturerStop fail");
5918 } else {
5919 LOG("AudioCapturerStop succ");
5920 }
5921 }
5922
5923 napi_create_int32(env, res, &result);
5924 return result;
5925 }
5926
AudioCapturerRelease(napi_env env,napi_callback_info info)5927 static napi_value AudioCapturerRelease(napi_env env, napi_callback_info info)
5928 {
5929 napi_value result;
5930 if (g_audioCapturer) {
5931 OH_AudioCapturer_Release(g_audioCapturer);
5932 OH_AudioStreamBuilder_Destroy(g_capturerBuilder);
5933 g_audioCapturer = nullptr;
5934 g_capturerBuilder = nullptr;
5935 }
5936 if (g_pcmFile) {
5937 fclose(g_pcmFile);
5938 g_pcmFile = nullptr;
5939 }
5940
5941 napi_create_int32(env, TEST_PASS, &result);
5942 return result;
5943 }
5944
AudioRendererOnWriteDataPcm(OH_AudioRenderer * renderer,void * userData,void * buffer,int32_t bufferLen)5945 static int32_t AudioRendererOnWriteDataPcm(OH_AudioRenderer *renderer, void *userData, void *buffer, int32_t bufferLen)
5946 {
5947 size_t readCount = fread(buffer, bufferLen, 1, g_pcmFile);
5948 if (!readCount) {
5949 if (feof(g_pcmFile)) {
5950 OH_AudioRenderer_Stop(g_audioRenderer);
5951 }
5952 }
5953 return 0;
5954 }
5955
AudioRendererInit(napi_env env,napi_callback_info info)5956 static napi_value AudioRendererInit(napi_env env, napi_callback_info info)
5957 {
5958 napi_value result;
5959 napi_status res = getTargetStreamInfo(env, info);
5960 if (res != napi_status::napi_ok) {
5961 napi_create_int32(env, TEST_FAIL, &result);
5962 return result;
5963 }
5964
5965 if (g_audioRenderer) {
5966 OH_AudioRenderer_Release(g_audioRenderer);
5967 OH_AudioStreamBuilder_Destroy(g_rendererBuilder);
5968 g_audioRenderer = nullptr;
5969 g_rendererBuilder = nullptr;
5970 }
5971 if (g_pcmFile) {
5972 fclose(g_pcmFile);
5973 g_pcmFile = nullptr;
5974 }
5975
5976 g_pcmFile = fopen(g_pcmFilePath.c_str(), "rb");
5977 if (g_pcmFile == nullptr) {
5978 return 0;
5979 }
5980 // create builder
5981 OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
5982 OH_AudioStreamBuilder_Create(&g_rendererBuilder, type);
5983
5984 // set params and callbacks
5985 // 设置音频采样格式
5986 OH_AudioStreamBuilder_SetSampleFormat(g_rendererBuilder, g_ohFormat);
5987 // 设置音频流的编码类型
5988 OH_AudioStreamBuilder_SetEncodingType(g_rendererBuilder, AUDIOSTREAM_ENCODING_TYPE_RAW);
5989 // 设置输出音频流的工作场景
5990 OH_AudioStreamBuilder_SetRendererInfo(g_rendererBuilder, g_ohRendererStreamUsage);
5991
5992 OH_AudioStreamBuilder_SetSamplingRate(g_rendererBuilder, g_ohSamplingRate);
5993 OH_AudioStreamBuilder_SetChannelCount(g_rendererBuilder, g_ohChannelCount);
5994 OH_AudioStreamBuilder_SetLatencyMode(g_rendererBuilder, g_ohLatencyMode);
5995
5996 OH_AudioRenderer_Callbacks rendererCallbacks;
5997 rendererCallbacks.OH_AudioRenderer_OnWriteData = AudioRendererOnWriteDataPcm;
5998 rendererCallbacks.OH_AudioRenderer_OnStreamEvent = nullptr;
5999 rendererCallbacks.OH_AudioRenderer_OnInterruptEvent = nullptr;
6000 rendererCallbacks.OH_AudioRenderer_OnError = nullptr;
6001 OH_AudioStreamBuilder_SetRendererCallback(g_rendererBuilder, rendererCallbacks, nullptr);
6002
6003 // create OH_AudioRenderer
6004 OH_AudioStreamBuilder_GenerateRenderer(g_rendererBuilder, &g_audioRenderer);
6005
6006 napi_create_int32(env, TEST_PASS, &result);
6007 LOG("AudioRendererInit succ");
6008 return result;
6009 }
6010
AudioRendererStart(napi_env env,napi_callback_info info)6011 static napi_value AudioRendererStart(napi_env env, napi_callback_info info)
6012 {
6013 napi_value result;
6014 OH_AudioStream_Result res = AUDIOSTREAM_SUCCESS;
6015
6016 if (g_audioRenderer == nullptr) {
6017 LOG("AudioRendererStart fail");
6018 res = AUDIOSTREAM_ERROR_INVALID_PARAM;
6019 } else {
6020 res = OH_AudioRenderer_Start(g_audioRenderer);
6021 if (res != AUDIOSTREAM_SUCCESS) {
6022 LOG("AudioRendererStart fail");
6023 } else {
6024 LOG("AudioRendererStart succ");
6025 }
6026 }
6027
6028 napi_create_int32(env, res, &result);
6029 return result;
6030 }
6031
AudioRendererStop(napi_env env,napi_callback_info info)6032 static napi_value AudioRendererStop(napi_env env, napi_callback_info info)
6033 {
6034 napi_value result;
6035 OH_AudioStream_Result res = AUDIOSTREAM_SUCCESS;
6036
6037 if (g_audioRenderer == nullptr) {
6038 LOG("AudioRendererStop fail");
6039 res = AUDIOSTREAM_ERROR_INVALID_PARAM;
6040 } else {
6041 res = OH_AudioRenderer_Stop(g_audioRenderer);
6042 if (res != AUDIOSTREAM_SUCCESS) {
6043 LOG("AudioRendererStop fail");
6044 } else {
6045 LOG("AudioRendererStop succ");
6046 }
6047 }
6048
6049 napi_create_int32(env, res, &result);
6050 return result;
6051 }
6052
AudioRendererRelease(napi_env env,napi_callback_info info)6053 static napi_value AudioRendererRelease(napi_env env, napi_callback_info info)
6054 {
6055 napi_value result;
6056 if (g_audioRenderer) {
6057 OH_AudioRenderer_Release(g_audioRenderer);
6058 OH_AudioStreamBuilder_Destroy(g_rendererBuilder);
6059 g_audioRenderer = nullptr;
6060 g_rendererBuilder = nullptr;
6061 }
6062 if (g_pcmFile) {
6063 fclose(g_pcmFile);
6064 g_pcmFile = nullptr;
6065 }
6066 napi_create_int32(env, TEST_PASS, &result);
6067 return result;
6068 }
6069
OH_AudioStreamBuilder_SetVolumeMode_Test_001(napi_env env,napi_callback_info info)6070 static napi_value OH_AudioStreamBuilder_SetVolumeMode_Test_001(napi_env env, napi_callback_info info)
6071 {
6072 napi_value result;
6073 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
6074 OH_AudioStream_VolumeMode volumeMode = OH_AudioStream_VolumeMode::AUDIOSTREAM_VOLUMEMODE_SYSTEM_GLOBAL;
6075 OH_AudioStream_Result res = OH_AudioStreamBuilder_SetVolumeMode(builder, volumeMode);
6076
6077 if (res == OH_AudioStream_Result::AUDIOSTREAM_SUCCESS) {
6078 LOG("OH_AudioStreamBuilder_SetVolumeMode_Test_001 SUCCESS, res is %{public}d", res);
6079 napi_create_int32(env, TEST_PASS, &result);
6080 }
6081 else {
6082 LOG("OH_AudioStreamBuilder_SetVolumeMode_Test_001 FAILED, res is %{public}d", res);
6083 napi_create_int32(env, TEST_FAIL, &result);
6084 }
6085
6086 return result;
6087 }
6088
OH_AudioStreamBuilder_SetVolumeMode_Test_002(napi_env env,napi_callback_info info)6089 static napi_value OH_AudioStreamBuilder_SetVolumeMode_Test_002(napi_env env, napi_callback_info info)
6090 {
6091 napi_value result;
6092 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
6093 OH_AudioStream_VolumeMode volumeMode = OH_AudioStream_VolumeMode::AUDIOSTREAM_VOLUMEMODE_APP_INDIVIDUAL;
6094 OH_AudioStream_Result res = OH_AudioStreamBuilder_SetVolumeMode(builder, volumeMode);
6095
6096 if (res == OH_AudioStream_Result::AUDIOSTREAM_SUCCESS) {
6097 LOG("OH_AudioStreamBuilder_SetVolumeMode_Test_002 SUCCESS, res is %{public}d", res);
6098 napi_create_int32(env, TEST_PASS, &result);
6099 }
6100 else {
6101 LOG("OH_AudioStreamBuilder_SetVolumeMode_Test_002 FAILED, res is %{public}d", res);
6102 napi_create_int32(env, TEST_FAIL, &result);
6103 }
6104
6105 return result;
6106 }
6107
OH_AudioStreamBuilder_SetVolumeMode_Test_003(napi_env env,napi_callback_info info)6108 static napi_value OH_AudioStreamBuilder_SetVolumeMode_Test_003(napi_env env, napi_callback_info info)
6109 {
6110 napi_value result;
6111 OH_AudioStreamBuilder *builder = nullptr;
6112 OH_AudioStream_VolumeMode volumeMode = OH_AudioStream_VolumeMode::AUDIOSTREAM_VOLUMEMODE_SYSTEM_GLOBAL;
6113 OH_AudioStream_Result res = OH_AudioStreamBuilder_SetVolumeMode(builder, volumeMode);
6114
6115 if (res == OH_AudioStream_Result::AUDIOSTREAM_ERROR_INVALID_PARAM) {
6116 LOG("OH_AudioStreamBuilder_SetVolumeMode_Test_003 SUCCESS, res is %{public}d", res);
6117 napi_create_int32(env, TEST_PASS, &result);
6118 }
6119 else {
6120 LOG("OH_AudioStreamBuilder_SetVolumeMode_Test_003 FAILED, res is %{public}d", res);
6121 napi_create_int32(env, TEST_FAIL, &result);
6122 }
6123
6124 return result;
6125 }
6126
OH_AudioStreamBuilder_SetVolumeMode_Test_004(napi_env env,napi_callback_info info)6127 static napi_value OH_AudioStreamBuilder_SetVolumeMode_Test_004(napi_env env, napi_callback_info info)
6128 {
6129 napi_value result;
6130 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
6131 int volumeMode = -1;
6132 OH_AudioStream_Result res = OH_AudioStreamBuilder_SetVolumeMode(builder, static_cast<OH_AudioStream_VolumeMode>(volumeMode));
6133
6134 if (res == OH_AudioStream_Result::AUDIOSTREAM_ERROR_INVALID_PARAM) {
6135 LOG("OH_AudioStreamBuilder_SetVolumeMode_Test_004 SUCCESS, res is %{public}d", res);
6136 napi_create_int32(env, TEST_PASS, &result);
6137 }
6138 else {
6139 LOG("OH_AudioStreamBuilder_SetVolumeMode_Test_004 FAILED, res is %{public}d", res);
6140 napi_create_int32(env, TEST_FAIL, &result);
6141 }
6142
6143 return result;
6144 }
6145
AudioManagerGetAudioVolumeManager_001(napi_env env,napi_callback_info info)6146 static napi_value AudioManagerGetAudioVolumeManager_001(napi_env env, napi_callback_info info)
6147 {
6148 napi_value result;
6149 OH_AudioVolumeManager *volumeManager = nullptr;
6150 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6151 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6152 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6153 napi_create_int32(env, TEST_FAIL, &result);
6154 return result;
6155 }
6156
6157 napi_create_int32(env, TEST_PASS, &result);
6158 return result;
6159 }
6160
AudioManagerGetAudioVolumeManager_002(napi_env env,napi_callback_info info)6161 static napi_value AudioManagerGetAudioVolumeManager_002(napi_env env, napi_callback_info info)
6162 {
6163 napi_value result;
6164 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(nullptr);
6165 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6166 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6167 napi_create_int32(env, TEST_FAIL, &result);
6168 return result;
6169 }
6170
6171 napi_create_int32(env, TEST_PASS, &result);
6172 return result;
6173 }
6174
AudioVolumeManagerGetMaxVolumeByUsage_001(napi_env env,napi_callback_info info)6175 static napi_value AudioVolumeManagerGetMaxVolumeByUsage_001(napi_env env, napi_callback_info info)
6176 {
6177 napi_value result;
6178 OH_AudioVolumeManager *volumeManager = nullptr;
6179 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6180 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6181 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6182 napi_create_int32(env, TEST_FAIL, &result);
6183 return result;
6184 }
6185
6186 int32_t maxVolumeLevel = 0;
6187 for (auto usage : VALID_OH_STREAM_USAGES) {
6188 res = OH_AudioVolumeManager_GetMaxVolumeByUsage(volumeManager, usage, &maxVolumeLevel);
6189 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6190 LOG("OH_AudioVolumeManager_GetMaxVolumeByUsage FAILED, res is %{public}d, usage is %{public}d", res, usage);
6191 napi_create_int32(env, TEST_FAIL, &result);
6192 return result;
6193 }
6194 }
6195
6196 napi_create_int32(env, TEST_PASS, &result);
6197 return result;
6198 }
6199
AudioVolumeManagerGetMaxVolumeByUsage_002(napi_env env,napi_callback_info info)6200 static napi_value AudioVolumeManagerGetMaxVolumeByUsage_002(napi_env env, napi_callback_info info)
6201 {
6202 napi_value result;
6203 OH_AudioCommon_Result res = OH_AudioVolumeManager_GetMaxVolumeByUsage(nullptr, AUDIOSTREAM_USAGE_MUSIC, nullptr);
6204 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6205 LOG("OH_AudioVolumeManager_GetMaxVolumeByUsage FAILED, res is %{public}d", res);
6206 napi_create_int32(env, TEST_FAIL, &result);
6207 return result;
6208 }
6209
6210 napi_create_int32(env, TEST_PASS, &result);
6211 return result;
6212 }
6213
AudioVolumeManagerGetMaxVolumeByUsage_003(napi_env env,napi_callback_info info)6214 static napi_value AudioVolumeManagerGetMaxVolumeByUsage_003(napi_env env, napi_callback_info info)
6215 {
6216 napi_value result;
6217 OH_AudioVolumeManager *volumeManager = nullptr;
6218 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6219 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6220 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6221 napi_create_int32(env, TEST_FAIL, &result);
6222 return result;
6223 }
6224
6225 res = OH_AudioVolumeManager_GetMaxVolumeByUsage(volumeManager, (OH_AudioStream_Usage)INVALID_VALUE, nullptr);
6226 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6227 LOG("OH_AudioVolumeManager_GetMaxVolumeByUsage FAILED, res is %{public}d", res);
6228 napi_create_int32(env, TEST_FAIL, &result);
6229 return result;
6230 }
6231
6232 napi_create_int32(env, TEST_PASS, &result);
6233 return result;
6234 }
6235
AudioVolumeManagerGetMaxVolumeByUsage_004(napi_env env,napi_callback_info info)6236 static napi_value AudioVolumeManagerGetMaxVolumeByUsage_004(napi_env env, napi_callback_info info)
6237 {
6238 napi_value result;
6239 OH_AudioVolumeManager *volumeManager = nullptr;
6240 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6241 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6242 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6243 napi_create_int32(env, TEST_FAIL, &result);
6244 return result;
6245 }
6246
6247 res = OH_AudioVolumeManager_GetMaxVolumeByUsage(volumeManager, AUDIOSTREAM_USAGE_MUSIC, nullptr);
6248 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6249 LOG("OH_AudioVolumeManager_GetMaxVolumeByUsage FAILED, res is %{public}d", res);
6250 napi_create_int32(env, TEST_FAIL, &result);
6251 return result;
6252 }
6253
6254 napi_create_int32(env, TEST_PASS, &result);
6255 return result;
6256 }
6257
AudioVolumeManagerGetMinVolumeByUsage_001(napi_env env,napi_callback_info info)6258 static napi_value AudioVolumeManagerGetMinVolumeByUsage_001(napi_env env, napi_callback_info info)
6259 {
6260 napi_value result;
6261 OH_AudioVolumeManager *volumeManager = nullptr;
6262 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6263 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6264 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6265 napi_create_int32(env, TEST_FAIL, &result);
6266 return result;
6267 }
6268
6269 int32_t minVolumeLevel = 0;
6270 for (auto usage : VALID_OH_STREAM_USAGES) {
6271 res = OH_AudioVolumeManager_GetMinVolumeByUsage(volumeManager, usage, &minVolumeLevel);
6272 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6273 LOG("OH_AudioVolumeManager_GetMinVolumeByUsage FAILED, res is %{public}d, usage is %{public}d", res, usage);
6274 napi_create_int32(env, TEST_FAIL, &result);
6275 return result;
6276 }
6277 }
6278
6279 napi_create_int32(env, TEST_PASS, &result);
6280 return result;
6281 }
6282
AudioVolumeManagerGetMinVolumeByUsage_002(napi_env env,napi_callback_info info)6283 static napi_value AudioVolumeManagerGetMinVolumeByUsage_002(napi_env env, napi_callback_info info)
6284 {
6285 napi_value result;
6286 OH_AudioCommon_Result res = OH_AudioVolumeManager_GetMinVolumeByUsage(nullptr, AUDIOSTREAM_USAGE_MUSIC, nullptr);
6287 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6288 LOG("OH_AudioVolumeManager_GetMinVolumeByUsage FAILED, res is %{public}d", res);
6289 napi_create_int32(env, TEST_FAIL, &result);
6290 return result;
6291 }
6292
6293 napi_create_int32(env, TEST_PASS, &result);
6294 return result;
6295 }
6296
AudioVolumeManagerGetMinVolumeByUsage_003(napi_env env,napi_callback_info info)6297 static napi_value AudioVolumeManagerGetMinVolumeByUsage_003(napi_env env, napi_callback_info info)
6298 {
6299 napi_value result;
6300 OH_AudioVolumeManager *volumeManager = nullptr;
6301 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6302 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6303 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6304 napi_create_int32(env, TEST_FAIL, &result);
6305 return result;
6306 }
6307
6308 res = OH_AudioVolumeManager_GetMinVolumeByUsage(volumeManager, (OH_AudioStream_Usage)INVALID_VALUE, nullptr);
6309 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6310 LOG("OH_AudioVolumeManager_GetMinVolumeByUsage FAILED, res is %{public}d", res);
6311 napi_create_int32(env, TEST_FAIL, &result);
6312 return result;
6313 }
6314
6315 napi_create_int32(env, TEST_PASS, &result);
6316 return result;
6317 }
6318
AudioVolumeManagerGetMinVolumeByUsage_004(napi_env env,napi_callback_info info)6319 static napi_value AudioVolumeManagerGetMinVolumeByUsage_004(napi_env env, napi_callback_info info)
6320 {
6321 napi_value result;
6322 OH_AudioVolumeManager *volumeManager = nullptr;
6323 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6324 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6325 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6326 napi_create_int32(env, TEST_FAIL, &result);
6327 return result;
6328 }
6329
6330 res = OH_AudioVolumeManager_GetMinVolumeByUsage(volumeManager, AUDIOSTREAM_USAGE_MUSIC, nullptr);
6331 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6332 LOG("OH_AudioVolumeManager_GetMinVolumeByUsage FAILED, res is %{public}d", res);
6333 napi_create_int32(env, TEST_FAIL, &result);
6334 return result;
6335 }
6336
6337 napi_create_int32(env, TEST_PASS, &result);
6338 return result;
6339 }
6340
AudioVolumeManagerGetVolumeByUsage_001(napi_env env,napi_callback_info info)6341 static napi_value AudioVolumeManagerGetVolumeByUsage_001(napi_env env, napi_callback_info info)
6342 {
6343 napi_value result;
6344 OH_AudioVolumeManager *volumeManager = nullptr;
6345 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6346 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6347 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6348 napi_create_int32(env, TEST_FAIL, &result);
6349 return result;
6350 }
6351
6352 int32_t volumeLevel = 0;
6353 for (auto usage : VALID_OH_STREAM_USAGES) {
6354 res = OH_AudioVolumeManager_GetVolumeByUsage(volumeManager, usage, &volumeLevel);
6355 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6356 LOG("OH_AudioVolumeManager_GetVolumeByUsage FAILED, res is %{public}d, usage is %{public}d", res, usage);
6357 napi_create_int32(env, TEST_FAIL, &result);
6358 return result;
6359 }
6360 }
6361
6362 napi_create_int32(env, TEST_PASS, &result);
6363 return result;
6364 }
6365
AudioVolumeManagerGetVolumeByUsage_002(napi_env env,napi_callback_info info)6366 static napi_value AudioVolumeManagerGetVolumeByUsage_002(napi_env env, napi_callback_info info)
6367 {
6368 napi_value result;
6369 OH_AudioCommon_Result res = OH_AudioVolumeManager_GetVolumeByUsage(nullptr, AUDIOSTREAM_USAGE_MUSIC, nullptr);
6370 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6371 LOG("OH_AudioVolumeManager_GetVolumeByUsage FAILED, res is %{public}d", res);
6372 napi_create_int32(env, TEST_FAIL, &result);
6373 return result;
6374 }
6375
6376 napi_create_int32(env, TEST_PASS, &result);
6377 return result;
6378 }
6379
AudioVolumeManagerGetVolumeByUsage_003(napi_env env,napi_callback_info info)6380 static napi_value AudioVolumeManagerGetVolumeByUsage_003(napi_env env, napi_callback_info info)
6381 {
6382 napi_value result;
6383 OH_AudioVolumeManager *volumeManager = nullptr;
6384 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6385 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6386 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6387 napi_create_int32(env, TEST_FAIL, &result);
6388 return result;
6389 }
6390
6391 res = OH_AudioVolumeManager_GetVolumeByUsage(volumeManager, (OH_AudioStream_Usage)INVALID_VALUE, nullptr);
6392 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6393 LOG("OH_AudioVolumeManager_GetVolumeByUsage FAILED, res is %{public}d", res);
6394 napi_create_int32(env, TEST_FAIL, &result);
6395 return result;
6396 }
6397
6398 napi_create_int32(env, TEST_PASS, &result);
6399 return result;
6400 }
6401
AudioVolumeManagerGetVolumeByUsage_004(napi_env env,napi_callback_info info)6402 static napi_value AudioVolumeManagerGetVolumeByUsage_004(napi_env env, napi_callback_info info)
6403 {
6404 napi_value result;
6405 OH_AudioVolumeManager *volumeManager = nullptr;
6406 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6407 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6408 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6409 napi_create_int32(env, TEST_FAIL, &result);
6410 return result;
6411 napi_create_int32(env, TEST_FAIL, &result);
6412 return result;
6413 }
6414
6415 res = OH_AudioVolumeManager_GetVolumeByUsage(volumeManager, AUDIOSTREAM_USAGE_MUSIC, nullptr);
6416 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6417 LOG("OH_AudioVolumeManager_GetVolumeByUsage FAILED, res is %{public}d", res);
6418 napi_create_int32(env, TEST_FAIL, &result);
6419 return result;
6420 }
6421
6422 napi_create_int32(env, TEST_PASS, &result);
6423 return result;
6424 }
6425
AudioVolumeManagerIsMuteByUsage_001(napi_env env,napi_callback_info info)6426 static napi_value AudioVolumeManagerIsMuteByUsage_001(napi_env env, napi_callback_info info)
6427 {
6428 napi_value result;
6429 OH_AudioVolumeManager *volumeManager = nullptr;
6430 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6431 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6432 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6433 napi_create_int32(env, TEST_FAIL, &result);
6434 return result;
6435 }
6436
6437 bool muted = false;
6438 for (auto usage : VALID_OH_STREAM_USAGES) {
6439 res = OH_AudioVolumeManager_IsMuteByUsage(volumeManager, usage, &muted);
6440 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6441 LOG("OH_AudioVolumeManager_IsMuteByUsage FAILED, res is %{public}d, usage is %{public}d", res, usage);
6442 napi_create_int32(env, TEST_FAIL, &result);
6443 return result;
6444 }
6445 }
6446
6447 napi_create_int32(env, TEST_PASS, &result);
6448 return result;
6449 }
6450
AudioVolumeManagerIsMuteByUsage_002(napi_env env,napi_callback_info info)6451 static napi_value AudioVolumeManagerIsMuteByUsage_002(napi_env env, napi_callback_info info)
6452 {
6453 napi_value result;
6454 OH_AudioCommon_Result res = OH_AudioVolumeManager_IsMuteByUsage(nullptr, AUDIOSTREAM_USAGE_MUSIC, nullptr);
6455 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6456 LOG("OH_AudioVolumeManager_IsMuteByUsage FAILED, res is %{public}d", res);
6457 napi_create_int32(env, TEST_FAIL, &result);
6458 return result;
6459 }
6460
6461 napi_create_int32(env, TEST_PASS, &result);
6462 return result;
6463 }
6464
AudioVolumeManagerIsMuteByUsage_003(napi_env env,napi_callback_info info)6465 static napi_value AudioVolumeManagerIsMuteByUsage_003(napi_env env, napi_callback_info info)
6466 {
6467 napi_value result;
6468 OH_AudioVolumeManager *volumeManager = nullptr;
6469 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6470 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6471 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6472 napi_create_int32(env, TEST_FAIL, &result);
6473 return result;
6474 }
6475
6476 res = OH_AudioVolumeManager_IsMuteByUsage(volumeManager, (OH_AudioStream_Usage)INVALID_VALUE, nullptr);
6477 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6478 LOG("OH_AudioVolumeManager_IsMuteByUsage FAILED, res is %{public}d", res);
6479 napi_create_int32(env, TEST_FAIL, &result);
6480 return result;
6481 }
6482
6483 napi_create_int32(env, TEST_PASS, &result);
6484 return result;
6485 }
6486
AudioVolumeManagerIsMuteByUsage_004(napi_env env,napi_callback_info info)6487 static napi_value AudioVolumeManagerIsMuteByUsage_004(napi_env env, napi_callback_info info)
6488 {
6489 napi_value result;
6490 OH_AudioVolumeManager *volumeManager = nullptr;
6491 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6492 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6493 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6494 napi_create_int32(env, TEST_FAIL, &result);
6495 return result;
6496 }
6497
6498 res = OH_AudioVolumeManager_IsMuteByUsage(volumeManager, AUDIOSTREAM_USAGE_MUSIC, nullptr);
6499 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6500 LOG("OH_AudioVolumeManager_IsMuteByUsage FAILED, res is %{public}d", res);
6501 napi_create_int32(env, TEST_FAIL, &result);
6502 return result;
6503 }
6504
6505 napi_create_int32(env, TEST_PASS, &result);
6506 return result;
6507 }
6508
AudioVolumeManagerRegisterStreamVolumeChangeCallback_001(napi_env env,napi_callback_info info)6509 static napi_value AudioVolumeManagerRegisterStreamVolumeChangeCallback_001(napi_env env, napi_callback_info info)
6510 {
6511 napi_value result;
6512 OH_AudioVolumeManager *volumeManager = nullptr;
6513 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6514 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6515 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6516 napi_create_int32(env, TEST_FAIL, &result);
6517 return result;
6518 }
6519
6520 for (auto usage : VALID_OH_STREAM_USAGES) {
6521 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, usage,
6522 MyOnStreamVolumeChangeCallback1, nullptr);
6523 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6524 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback FAILED, res: %{public}d, usage: %{public}d",
6525 res, usage);
6526 napi_create_int32(env, TEST_FAIL, &result);
6527 return result;
6528 }
6529
6530 res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(volumeManager,
6531 MyOnStreamVolumeChangeCallback1);
6532 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6533 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback FAILED, res: %{public}d, usage: %{public}d",
6534 res, usage);
6535 napi_create_int32(env, TEST_FAIL, &result);
6536 return result;
6537 }
6538 }
6539
6540 napi_create_int32(env, TEST_PASS, &result);
6541 return result;
6542 }
6543
AudioVolumeManagerRegisterStreamVolumeChangeCallback_002(napi_env env,napi_callback_info info)6544 static napi_value AudioVolumeManagerRegisterStreamVolumeChangeCallback_002(napi_env env, napi_callback_info info)
6545 {
6546 napi_value result;
6547 OH_AudioVolumeManager *volumeManager = nullptr;
6548 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6549 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6550 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6551 napi_create_int32(env, TEST_FAIL, &result);
6552 return result;
6553 }
6554
6555 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, AUDIOSTREAM_USAGE_MUSIC,
6556 MyOnStreamVolumeChangeCallback1, nullptr);
6557 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6558 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback 1 FAILED, res is %{public}d", res);
6559 napi_create_int32(env, TEST_FAIL, &result);
6560 return result;
6561 }
6562
6563 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, AUDIOSTREAM_USAGE_MUSIC,
6564 MyOnStreamVolumeChangeCallback2, nullptr);
6565 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6566 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback 2 FAILED, res is %{public}d", res);
6567 napi_create_int32(env, TEST_FAIL, &result);
6568 return result;
6569 }
6570
6571 res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(volumeManager, MyOnStreamVolumeChangeCallback1);
6572 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6573 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback 1 FAILED, res is %{public}d", res);
6574 napi_create_int32(env, TEST_FAIL, &result);
6575 return result;
6576 }
6577
6578 res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(volumeManager, MyOnStreamVolumeChangeCallback2);
6579 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6580 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback 2 FAILED, res is %{public}d", res);
6581 napi_create_int32(env, TEST_FAIL, &result);
6582 return result;
6583 }
6584
6585 napi_create_int32(env, TEST_PASS, &result);
6586 return result;
6587 }
6588
AudioVolumeManagerRegisterStreamVolumeChangeCallback_003(napi_env env,napi_callback_info info)6589 static napi_value AudioVolumeManagerRegisterStreamVolumeChangeCallback_003(napi_env env, napi_callback_info info)
6590 {
6591 napi_value result;
6592 OH_AudioVolumeManager *volumeManager = nullptr;
6593 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6594 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6595 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6596 napi_create_int32(env, TEST_FAIL, &result);
6597 return result;
6598 }
6599
6600 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, AUDIOSTREAM_USAGE_MUSIC,
6601 MyOnStreamVolumeChangeCallback1, nullptr);
6602 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6603 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback 1 FAILED, res is %{public}d", res);
6604 napi_create_int32(env, TEST_FAIL, &result);
6605 return result;
6606 }
6607
6608 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, AUDIOSTREAM_USAGE_RINGTONE,
6609 MyOnStreamVolumeChangeCallback2, nullptr);
6610 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6611 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback 2 FAILED, res is %{public}d", res);
6612 napi_create_int32(env, TEST_FAIL, &result);
6613 return result;
6614 }
6615
6616 res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(volumeManager, MyOnStreamVolumeChangeCallback1);
6617 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6618 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback 1 FAILED, res is %{public}d", res);
6619 napi_create_int32(env, TEST_FAIL, &result);
6620 return result;
6621 }
6622
6623 res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(volumeManager, MyOnStreamVolumeChangeCallback2);
6624 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6625 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback 2 FAILED, res is %{public}d", res);
6626 napi_create_int32(env, TEST_FAIL, &result);
6627 return result;
6628 }
6629
6630 napi_create_int32(env, TEST_PASS, &result);
6631 return result;
6632 }
6633
AudioVolumeManagerRegisterStreamVolumeChangeCallback_004(napi_env env,napi_callback_info info)6634 static napi_value AudioVolumeManagerRegisterStreamVolumeChangeCallback_004(napi_env env, napi_callback_info info)
6635 {
6636 napi_value result;
6637 OH_AudioVolumeManager *volumeManager = nullptr;
6638 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6639 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6640 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6641 napi_create_int32(env, TEST_FAIL, &result);
6642 return result;
6643 }
6644
6645 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, AUDIOSTREAM_USAGE_MUSIC,
6646 MyOnStreamVolumeChangeCallback1, nullptr);
6647 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6648 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback 1 FAILED, res is %{public}d", res);
6649 napi_create_int32(env, TEST_FAIL, &result);
6650 return result;
6651 }
6652
6653 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, AUDIOSTREAM_USAGE_MUSIC,
6654 MyOnStreamVolumeChangeCallback1, nullptr);
6655 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6656 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback 2 FAILED, res is %{public}d", res);
6657 napi_create_int32(env, TEST_FAIL, &result);
6658 return result;
6659 }
6660
6661 res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(volumeManager, MyOnStreamVolumeChangeCallback1);
6662 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6663 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback 2 FAILED, res is %{public}d", res);
6664 napi_create_int32(env, TEST_FAIL, &result);
6665 return result;
6666 }
6667
6668 napi_create_int32(env, TEST_PASS, &result);
6669 return result;
6670 }
6671
AudioVolumeManagerRegisterStreamVolumeChangeCallback_005(napi_env env,napi_callback_info info)6672 static napi_value AudioVolumeManagerRegisterStreamVolumeChangeCallback_005(napi_env env, napi_callback_info info)
6673 {
6674 napi_value result;
6675 OH_AudioCommon_Result res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(nullptr,
6676 AUDIOSTREAM_USAGE_MUSIC, nullptr, nullptr);
6677 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6678 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback FAILED, res is %{public}d", res);
6679 napi_create_int32(env, TEST_FAIL, &result);
6680 return result;
6681 }
6682
6683 napi_create_int32(env, TEST_PASS, &result);
6684 return result;
6685 }
6686
AudioVolumeManagerRegisterStreamVolumeChangeCallback_006(napi_env env,napi_callback_info info)6687 static napi_value AudioVolumeManagerRegisterStreamVolumeChangeCallback_006(napi_env env, napi_callback_info info)
6688 {
6689 napi_value result;
6690 OH_AudioVolumeManager *volumeManager = nullptr;
6691 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6692 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6693 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6694 napi_create_int32(env, TEST_FAIL, &result);
6695 return result;
6696 }
6697
6698 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, (OH_AudioStream_Usage)INVALID_VALUE,
6699 nullptr, nullptr);
6700 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6701 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback FAILED, res is %{public}d", res);
6702 napi_create_int32(env, TEST_FAIL, &result);
6703 return result;
6704 }
6705
6706 napi_create_int32(env, TEST_PASS, &result);
6707 return result;
6708 }
6709
AudioVolumeManagerRegisterStreamVolumeChangeCallback_007(napi_env env,napi_callback_info info)6710 static napi_value AudioVolumeManagerRegisterStreamVolumeChangeCallback_007(napi_env env, napi_callback_info info)
6711 {
6712 napi_value result;
6713 OH_AudioVolumeManager *volumeManager = nullptr;
6714 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6715 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6716 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6717 napi_create_int32(env, TEST_FAIL, &result);
6718 return result;
6719 }
6720
6721 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, AUDIOSTREAM_USAGE_MUSIC,
6722 nullptr, nullptr);
6723 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6724 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback FAILED, res is %{public}d", res);
6725 napi_create_int32(env, TEST_FAIL, &result);
6726 return result;
6727 }
6728
6729 napi_create_int32(env, TEST_PASS, &result);
6730 return result;
6731 }
6732
AudioVolumeManagerRegisterStreamVolumeChangeCallback_008(napi_env env,napi_callback_info info)6733 static napi_value AudioVolumeManagerRegisterStreamVolumeChangeCallback_008(napi_env env, napi_callback_info info)
6734 {
6735 napi_value result;
6736 OH_AudioVolumeManager *volumeManager = nullptr;
6737 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6738 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6739 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6740 napi_create_int32(env, TEST_FAIL, &result);
6741 return result;
6742 }
6743
6744 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, AUDIOSTREAM_USAGE_MUSIC,
6745 MyOnStreamVolumeChangeCallback1, nullptr);
6746 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6747 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback 1 FAILED, res is %{public}d", res);
6748 napi_create_int32(env, TEST_FAIL, &result);
6749 return result;
6750 }
6751
6752 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, AUDIOSTREAM_USAGE_RINGTONE,
6753 MyOnStreamVolumeChangeCallback1, nullptr);
6754 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6755 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback 2 FAILED, res is %{public}d", res);
6756 napi_create_int32(env, TEST_FAIL, &result);
6757 return result;
6758 }
6759
6760 res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(volumeManager, MyOnStreamVolumeChangeCallback1);
6761 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6762 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback FAILED, res is %{public}d", res);
6763 napi_create_int32(env, TEST_FAIL, &result);
6764 return result;
6765 }
6766
6767 napi_create_int32(env, TEST_PASS, &result);
6768 return result;
6769 }
6770
AudioVolumeManagerUnregisterStreamVolumeChangeCallback_001(napi_env env,napi_callback_info info)6771 static napi_value AudioVolumeManagerUnregisterStreamVolumeChangeCallback_001(napi_env env, napi_callback_info info)
6772 {
6773 napi_value result;
6774 OH_AudioCommon_Result res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(nullptr, nullptr);
6775 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6776 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback FAILED, res is %{public}d", res);
6777 napi_create_int32(env, TEST_FAIL, &result);
6778 return result;
6779 }
6780
6781 napi_create_int32(env, TEST_PASS, &result);
6782 return result;
6783 }
6784
AudioVolumeManagerUnregisterStreamVolumeChangeCallback_002(napi_env env,napi_callback_info info)6785 static napi_value AudioVolumeManagerUnregisterStreamVolumeChangeCallback_002(napi_env env, napi_callback_info info)
6786 {
6787 napi_value result;
6788 OH_AudioVolumeManager *volumeManager = nullptr;
6789 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6790 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6791 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6792 napi_create_int32(env, TEST_FAIL, &result);
6793 return result;
6794 }
6795
6796 res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(volumeManager, nullptr);
6797 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6798 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback FAILED, res is %{public}d", res);
6799 napi_create_int32(env, TEST_FAIL, &result);
6800 return result;
6801 }
6802
6803 napi_create_int32(env, TEST_PASS, &result);
6804 return result;
6805 }
6806
AudioVolumeManagerUnregisterStreamVolumeChangeCallback_003(napi_env env,napi_callback_info info)6807 static napi_value AudioVolumeManagerUnregisterStreamVolumeChangeCallback_003(napi_env env, napi_callback_info info)
6808 {
6809 napi_value result;
6810 OH_AudioVolumeManager *volumeManager = nullptr;
6811 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6812 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6813 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6814 napi_create_int32(env, TEST_FAIL, &result);
6815 return result;
6816 }
6817
6818 res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(volumeManager, MyOnStreamVolumeChangeCallback1);
6819 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6820 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback FAILED, res is %{public}d", res);
6821 napi_create_int32(env, TEST_FAIL, &result);
6822 return result;
6823 }
6824
6825 napi_create_int32(env, TEST_PASS, &result);
6826 return result;
6827 }
6828
AudioVolumeManagerUnregisterStreamVolumeChangeCallback_004(napi_env env,napi_callback_info info)6829 static napi_value AudioVolumeManagerUnregisterStreamVolumeChangeCallback_004(napi_env env, napi_callback_info info)
6830 {
6831 napi_value result;
6832 OH_AudioVolumeManager *volumeManager = nullptr;
6833 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6834 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6835 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6836 napi_create_int32(env, TEST_FAIL, &result);
6837 return result;
6838 }
6839
6840 res = OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(volumeManager, AUDIOSTREAM_USAGE_MUSIC,
6841 MyOnStreamVolumeChangeCallback1, nullptr);
6842 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6843 LOG("OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback 1 FAILED, res is %{public}d", res);
6844 napi_create_int32(env, TEST_FAIL, &result);
6845 return result;
6846 }
6847
6848 res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(volumeManager, MyOnStreamVolumeChangeCallback1);
6849 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6850 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback 1 FAILED, res is %{public}d", res);
6851 napi_create_int32(env, TEST_FAIL, &result);
6852 return result;
6853 }
6854
6855 res = OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(volumeManager, MyOnStreamVolumeChangeCallback1);
6856 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6857 LOG("OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback 2 FAILED, res is %{public}d", res);
6858 napi_create_int32(env, TEST_FAIL, &result);
6859 return result;
6860 }
6861
6862 napi_create_int32(env, TEST_PASS, &result);
6863 return result;
6864 }
6865
AudioVolumeManagerGetRingerMode_001(napi_env env,napi_callback_info info)6866 static napi_value AudioVolumeManagerGetRingerMode_001(napi_env env, napi_callback_info info)
6867 {
6868 napi_value result;
6869 OH_AudioVolumeManager *volumeManager = nullptr;
6870 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6871 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6872 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6873 napi_create_int32(env, TEST_FAIL, &result);
6874 return result;
6875 }
6876
6877 OH_AudioRingerMode ringerMode = AUDIO_RINGER_MODE_NORMAL;
6878 res = OH_AudioVolumeManager_GetRingerMode(volumeManager, &ringerMode);
6879 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6880 LOG("OH_AudioVolumeManager_GetRingerMode FAILED, res is %{public}d", res);
6881 napi_create_int32(env, TEST_FAIL, &result);
6882 return result;
6883 }
6884
6885 napi_create_int32(env, TEST_PASS, &result);
6886 return result;
6887 }
6888
AudioVolumeManagerGetRingerMode_002(napi_env env,napi_callback_info info)6889 static napi_value AudioVolumeManagerGetRingerMode_002(napi_env env, napi_callback_info info)
6890 {
6891 napi_value result;
6892 OH_AudioCommon_Result res = OH_AudioVolumeManager_GetRingerMode(nullptr, nullptr);
6893 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6894 napi_create_int32(env, TEST_FAIL, &result);
6895 LOG("OH_AudioVolumeManager_GetRingerMode FAILED, res is %{public}d", res);
6896 return result;
6897 }
6898
6899 napi_create_int32(env, TEST_PASS, &result);
6900 return result;
6901 }
6902
AudioVolumeManagerGetRingerMode_003(napi_env env,napi_callback_info info)6903 static napi_value AudioVolumeManagerGetRingerMode_003(napi_env env, napi_callback_info info)
6904 {
6905 napi_value result;
6906 OH_AudioVolumeManager *volumeManager = nullptr;
6907 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6908 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6909 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6910 napi_create_int32(env, TEST_FAIL, &result);
6911 return result;
6912 }
6913
6914 res = OH_AudioVolumeManager_GetRingerMode(volumeManager, nullptr);
6915 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6916 LOG("OH_AudioVolumeManager_GetRingerMode FAILED, res is %{public}d", res);
6917 napi_create_int32(env, TEST_FAIL, &result);
6918 return result;
6919 }
6920
6921 napi_create_int32(env, TEST_PASS, &result);
6922 return result;
6923 }
6924
AudioVolumeManagerRegisterRingerModeChangeCallback_001(napi_env env,napi_callback_info info)6925 static napi_value AudioVolumeManagerRegisterRingerModeChangeCallback_001(napi_env env, napi_callback_info info)
6926 {
6927 napi_value result;
6928 OH_AudioVolumeManager *volumeManager = nullptr;
6929 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6930 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6931 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6932 napi_create_int32(env, TEST_FAIL, &result);
6933 return result;
6934 }
6935
6936 res = OH_AudioVolumeManager_RegisterRingerModeChangeCallback(volumeManager, MyOnRingerModeChangeCallback, nullptr);
6937 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6938 LOG("OH_AudioVolumeManager_RegisterRingerModeChangeCallback FAILED, res is %{public}d", res);
6939 napi_create_int32(env, TEST_FAIL, &result);
6940 return result;
6941 }
6942
6943 res = OH_AudioVolumeManager_UnregisterRingerModeChangeCallback(volumeManager, MyOnRingerModeChangeCallback);
6944 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6945 LOG("OH_AudioVolumeManager_UnregisterRingerModeChangeCallback FAILED, res is %{public}d", res);
6946 napi_create_int32(env, TEST_FAIL, &result);
6947 return result;
6948 }
6949
6950 napi_create_int32(env, TEST_PASS, &result);
6951 return result;
6952 }
6953
AudioVolumeManagerRegisterRingerModeChangeCallback_002(napi_env env,napi_callback_info info)6954 static napi_value AudioVolumeManagerRegisterRingerModeChangeCallback_002(napi_env env, napi_callback_info info)
6955 {
6956 napi_value result;
6957 OH_AudioCommon_Result res = OH_AudioVolumeManager_RegisterRingerModeChangeCallback(nullptr, nullptr, nullptr);
6958 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6959 LOG("OH_AudioVolumeManager_RegisterRingerModeChangeCallback FAILED, res is %{public}d", res);
6960 napi_create_int32(env, TEST_FAIL, &result);
6961 return result;
6962 }
6963
6964 napi_create_int32(env, TEST_PASS, &result);
6965 return result;
6966 }
6967
AudioVolumeManagerRegisterRingerModeChangeCallback_003(napi_env env,napi_callback_info info)6968 static napi_value AudioVolumeManagerRegisterRingerModeChangeCallback_003(napi_env env, napi_callback_info info)
6969 {
6970 napi_value result;
6971 OH_AudioVolumeManager *volumeManager = nullptr;
6972 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
6973 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
6974 LOG("OH_AudioManager_GetAudioVolumeManager FAILED, res is %{public}d", res);
6975 napi_create_int32(env, TEST_FAIL, &result);
6976 return result;
6977 }
6978
6979 res = OH_AudioVolumeManager_RegisterRingerModeChangeCallback(volumeManager, nullptr, nullptr);
6980 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6981 LOG("OH_AudioVolumeManager_RegisterRingerModeChangeCallback FAILED, res is %{public}d", res);
6982 napi_create_int32(env, TEST_FAIL, &result);
6983 return result;
6984 }
6985
6986 napi_create_int32(env, TEST_PASS, &result);
6987 return result;
6988 }
6989
AudioVolumeManagerUnregisterRingerModeChangeCallback_001(napi_env env,napi_callback_info info)6990 static napi_value AudioVolumeManagerUnregisterRingerModeChangeCallback_001(napi_env env, napi_callback_info info)
6991 {
6992 napi_value result;
6993 OH_AudioCommon_Result res = OH_AudioVolumeManager_UnregisterRingerModeChangeCallback(nullptr, nullptr);
6994 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
6995 LOG("OH_AudioVolumeManager_UnregisterRingerModeChangeCallback FAILED, res is %{public}d", res);
6996 napi_create_int32(env, TEST_FAIL, &result);
6997 return result;
6998 }
6999
7000 napi_create_int32(env, TEST_PASS, &result);
7001 return result;
7002 }
7003
AudioVolumeManagerUnregisterRingerModeChangeCallback_002(napi_env env,napi_callback_info info)7004 static napi_value AudioVolumeManagerUnregisterRingerModeChangeCallback_002(napi_env env, napi_callback_info info)
7005 {
7006 napi_value result;
7007 OH_AudioVolumeManager *volumeManager = nullptr;
7008 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
7009 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
7010 LOG("OH_AudioManager_GetAudioVolumeManager failed, res: %{public}d", res);
7011 napi_create_int32(env, TEST_FAIL, &result);
7012 return result;
7013 }
7014
7015 res = OH_AudioVolumeManager_UnregisterRingerModeChangeCallback(volumeManager, nullptr);
7016 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
7017 LOG("OH_AudioVolumeManager_UnregisterRingerModeChangeCallback failed, res: %{public}d", res);
7018 napi_create_int32(env, TEST_FAIL, &result);
7019 return result;
7020 }
7021
7022 napi_create_int32(env, TEST_PASS, &result);
7023 return result;
7024 }
7025
AudioVolumeManagerUnregisterRingerModeChangeCallback_003(napi_env env,napi_callback_info info)7026 static napi_value AudioVolumeManagerUnregisterRingerModeChangeCallback_003(napi_env env, napi_callback_info info)
7027 {
7028 napi_value result;
7029 OH_AudioVolumeManager *volumeManager = nullptr;
7030 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
7031 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
7032 LOG("OH_AudioManager_GetAudioVolumeManager failed, res: %{public}d", res);
7033 napi_create_int32(env, TEST_FAIL, &result);
7034 return result;
7035 }
7036
7037 res = OH_AudioVolumeManager_UnregisterRingerModeChangeCallback(volumeManager, MyOnRingerModeChangeCallback);
7038 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
7039 LOG("OH_AudioVolumeManager_UnregisterRingerModeChangeCallback failed, res: %{public}d", res);
7040 napi_create_int32(env, TEST_FAIL, &result);
7041 return result;
7042 }
7043
7044 napi_create_int32(env, TEST_PASS, &result);
7045 return result;
7046 }
7047
AudioVolumeManagerUnregisterRingerModeChangeCallback_004(napi_env env,napi_callback_info info)7048 static napi_value AudioVolumeManagerUnregisterRingerModeChangeCallback_004(napi_env env, napi_callback_info info)
7049 {
7050 napi_value result;
7051 OH_AudioVolumeManager *volumeManager = nullptr;
7052 OH_AudioCommon_Result res = OH_AudioManager_GetAudioVolumeManager(&volumeManager);
7053 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
7054 LOG("OH_AudioManager_GetAudioVolumeManager failed, res: %{public}d", res);
7055 napi_create_int32(env, TEST_FAIL, &result);
7056 return result;
7057 }
7058
7059 res = OH_AudioVolumeManager_RegisterRingerModeChangeCallback(volumeManager, MyOnRingerModeChangeCallback, nullptr);
7060 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
7061 LOG("OH_AudioVolumeManager_RegisterRingerModeChangeCallback failed, res: %{public}d", res);
7062 napi_create_int32(env, TEST_FAIL, &result);
7063 return result;
7064 }
7065
7066 res = OH_AudioVolumeManager_UnregisterRingerModeChangeCallback(volumeManager, MyOnRingerModeChangeCallback);
7067 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
7068 LOG("OH_AudioVolumeManager_UnregisterRingerModeChangeCallback 1 failed, res: %{public}d", res);
7069 napi_create_int32(env, TEST_FAIL, &result);
7070 return result;
7071 }
7072
7073 res = OH_AudioVolumeManager_UnregisterRingerModeChangeCallback(volumeManager, MyOnRingerModeChangeCallback);
7074 if (res != AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
7075 LOG("OH_AudioVolumeManager_UnregisterRingerModeChangeCallback 2 failed, res: %{public}d", res);
7076 napi_create_int32(env, TEST_FAIL, &result);
7077 return result;
7078 }
7079
7080 napi_create_int32(env, TEST_PASS, &result);
7081 return result;
7082 }
7083
AudioCapturerSetWillMuteWhenInterrupted(napi_env env,napi_callback_info info)7084 static napi_value AudioCapturerSetWillMuteWhenInterrupted(napi_env env, napi_callback_info info)
7085 {
7086 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
7087
7088 OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerWillMuteWhenInterrupted(builder, true);
7089 OH_AudioStreamBuilder_Destroy(builder);
7090 napi_value res;
7091 napi_create_int32(env, result, &res);
7092
7093 return res;
7094 }
7095
AudioManagerGetAudioStreamManagerTest_001(napi_env env,napi_callback_info info)7096 static napi_value AudioManagerGetAudioStreamManagerTest_001(napi_env env, napi_callback_info info)
7097 {
7098 OH_AudioStreamManager *audioStreamManager = nullptr;
7099
7100 OH_AudioCommon_Result result = OH_AudioManager_GetAudioStreamManager(&audioStreamManager);
7101
7102 napi_value res;
7103 if (result == OH_AudioCommon_Result::AUDIOCOMMON_RESULT_SUCCESS) {
7104 napi_create_int32(env, TEST_PASS, &res);
7105 } else {
7106 napi_create_int32(env, TEST_FAIL, &res);
7107 }
7108
7109 return res;
7110 }
7111
AudioManagerGetAudioStreamManagerTest_002(napi_env env,napi_callback_info info)7112 static napi_value AudioManagerGetAudioStreamManagerTest_002(napi_env env, napi_callback_info info)
7113 {
7114 OH_AudioStreamManager *audioStreamManager;
7115
7116 OH_AudioCommon_Result result = OH_AudioManager_GetAudioStreamManager(&audioStreamManager);
7117
7118 napi_value res;
7119 if (result == OH_AudioCommon_Result::AUDIOCOMMON_RESULT_SUCCESS) {
7120 napi_create_int32(env, TEST_PASS, &res);
7121 } else {
7122 napi_create_int32(env, TEST_FAIL, &res);
7123 }
7124
7125 return res;
7126 }
7127
AudioManagerGetDirectPlaybackSupportTest_001(napi_env env,napi_callback_info info)7128 static napi_value AudioManagerGetDirectPlaybackSupportTest_001(napi_env env, napi_callback_info info)
7129 {
7130 constexpr int sampleRateCur = 48000;
7131 OH_AudioStreamManager *audioStreamManager;
7132 OH_AudioStreamInfo streamInfo;
7133 streamInfo.channelLayout = OH_AudioChannelLayout::CH_LAYOUT_STEREO;
7134 streamInfo.encodingType = OH_AudioStream_EncodingType::AUDIOSTREAM_ENCODING_TYPE_RAW;
7135 streamInfo.sampleFormat = OH_AudioStream_SampleFormat::AUDIOSTREAM_SAMPLE_F32LE;
7136 streamInfo.samplingRate = sampleRateCur;
7137 OH_AudioStream_Usage usage = OH_AudioStream_Usage::AUDIOSTREAM_USAGE_MUSIC;
7138 OH_AudioStream_DirectPlaybackMode directPlaybackMode;
7139
7140 napi_value res;
7141
7142 OH_AudioCommon_Result getAudioStreamManagerResult = OH_AudioManager_GetAudioStreamManager(&audioStreamManager);
7143 if (getAudioStreamManagerResult != OH_AudioCommon_Result::AUDIOCOMMON_RESULT_SUCCESS) {
7144 napi_create_int32(env, TEST_FAIL, &res);
7145 LOG("OH_AudioManager_GetAudioStreamManager failed, res: %{public}d", res);
7146 return res;
7147 }
7148
7149 OH_AudioCommon_Result getDirectPlaybackSupportResult = OH_AudioStreamManager_GetDirectPlaybackSupport(
7150 audioStreamManager, &streamInfo, usage, &directPlaybackMode);
7151 if (getDirectPlaybackSupportResult != OH_AudioCommon_Result::AUDIOCOMMON_RESULT_SUCCESS) {
7152 napi_create_int32(env, TEST_FAIL, &res);
7153 LOG("OH_AudioStreamManager_GetDirectPlaybackSupport failed, res: %{public}d", res);
7154 return res;
7155 }
7156 if (directPlaybackMode == OH_AudioStream_DirectPlaybackMode::AUDIOSTREAM_DIRECT_PLAYBACK_NOT_SUPPORTED) {
7157 LOG("OH_AudioStreamManager_GetDirectPlaybackSupport success, directPlaybackMode: %{public}d",
7158 static_cast<int>(directPlaybackMode));
7159 napi_create_int32(env, TEST_PASS, &res);
7160 } else {
7161 LOG("OH_AudioStreamManager_GetDirectPlaybackSupport result failed, directPlaybackMode: %{public}d",
7162 static_cast<int>(directPlaybackMode));
7163 napi_create_int32(env, TEST_FAIL, &res);
7164 }
7165
7166 return res;
7167 }
7168
AudioManagerGetDirectPlaybackSupportTest_002(napi_env env,napi_callback_info info)7169 static napi_value AudioManagerGetDirectPlaybackSupportTest_002(napi_env env, napi_callback_info info)
7170 {
7171 constexpr int sampleRateCur = 48000;
7172 OH_AudioStreamManager *audioStreamManager;
7173 OH_AudioStreamInfo *streamInfo = nullptr;
7174 OH_AudioStream_Usage usage = OH_AudioStream_Usage::AUDIOSTREAM_USAGE_MUSIC;
7175 OH_AudioStream_DirectPlaybackMode directPlaybackMode;
7176
7177 napi_value res;
7178
7179 OH_AudioCommon_Result getAudioStreamManagerResult = OH_AudioManager_GetAudioStreamManager(&audioStreamManager);
7180 if (getAudioStreamManagerResult != OH_AudioCommon_Result::AUDIOCOMMON_RESULT_SUCCESS) {
7181 napi_create_int32(env, TEST_FAIL, &res);
7182 LOG("OH_AudioManager_GetAudioStreamManager failed, res: %{public}d", res);
7183 return res;
7184 }
7185
7186 OH_AudioCommon_Result getDirectPlaybackSupportResult = OH_AudioStreamManager_GetDirectPlaybackSupport(
7187 audioStreamManager, streamInfo, usage, &directPlaybackMode);
7188 if (getDirectPlaybackSupportResult == OH_AudioCommon_Result::AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
7189 LOG("OH_AudioStreamManager_GetDirectPlaybackSupport success, OH_AudioStreamInfo nullptr");
7190 napi_create_int32(env, TEST_PASS, &res);
7191 } else {
7192 LOG("OH_AudioStreamManager_GetDirectPlaybackSupport failed, OH_AudioStreamInfo nullptr");
7193 napi_create_int32(env, TEST_FAIL, &res);
7194 }
7195
7196 return res;
7197 }
7198
AudioManagerGetDirectPlaybackSupportTest_003(napi_env env,napi_callback_info info)7199 static napi_value AudioManagerGetDirectPlaybackSupportTest_003(napi_env env, napi_callback_info info)
7200 {
7201 constexpr int sampleRateCur = 48000;
7202 OH_AudioStreamManager *audioStreamManager;
7203 OH_AudioStreamInfo streamInfo;
7204 streamInfo.channelLayout = OH_AudioChannelLayout::CH_LAYOUT_STEREO;
7205 streamInfo.encodingType = OH_AudioStream_EncodingType::AUDIOSTREAM_ENCODING_TYPE_RAW;
7206 streamInfo.sampleFormat = OH_AudioStream_SampleFormat::AUDIOSTREAM_SAMPLE_F32LE;
7207 streamInfo.samplingRate = sampleRateCur;
7208 OH_AudioStream_Usage usage = OH_AudioStream_Usage::AUDIOSTREAM_USAGE_MUSIC;
7209 OH_AudioStream_DirectPlaybackMode *directPlaybackMode = nullptr;
7210
7211 napi_value res;
7212
7213 OH_AudioCommon_Result getAudioStreamManagerResult = OH_AudioManager_GetAudioStreamManager(&audioStreamManager);
7214 if (getAudioStreamManagerResult != OH_AudioCommon_Result::AUDIOCOMMON_RESULT_SUCCESS) {
7215 napi_create_int32(env, TEST_FAIL, &res);
7216 LOG("OH_AudioManager_GetAudioStreamManager failed, res: %{public}d", res);
7217 return res;
7218 }
7219
7220 OH_AudioCommon_Result getDirectPlaybackSupportResult = OH_AudioStreamManager_GetDirectPlaybackSupport(
7221 audioStreamManager, &streamInfo, usage, directPlaybackMode);
7222 if (getDirectPlaybackSupportResult == OH_AudioCommon_Result::AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
7223 LOG("OH_AudioStreamManager_GetDirectPlaybackSupport success, OH_AudioStreamManager nullptr");
7224 napi_create_int32(env, TEST_PASS, &res);
7225 } else {
7226 LOG("OH_AudioStreamManager_GetDirectPlaybackSupport failed, OH_AudioStreamManager nullptr");
7227 napi_create_int32(env, TEST_FAIL, &res);
7228 }
7229
7230 return res;
7231 }
7232
AudioManagerGetDirectPlaybackSupportTest_004(napi_env env,napi_callback_info info)7233 static napi_value AudioManagerGetDirectPlaybackSupportTest_004(napi_env env, napi_callback_info info)
7234 {
7235 constexpr int sampleRateCur = 48000;
7236 OH_AudioStreamManager *audioStreamManager = nullptr;
7237 OH_AudioStreamInfo streamInfo;
7238 streamInfo.channelLayout = OH_AudioChannelLayout::CH_LAYOUT_STEREO;
7239 streamInfo.encodingType = OH_AudioStream_EncodingType::AUDIOSTREAM_ENCODING_TYPE_RAW;
7240 streamInfo.sampleFormat = OH_AudioStream_SampleFormat::AUDIOSTREAM_SAMPLE_F32LE;
7241 streamInfo.samplingRate = sampleRateCur;
7242 OH_AudioStream_Usage usage = OH_AudioStream_Usage::AUDIOSTREAM_USAGE_MUSIC;
7243 OH_AudioStream_DirectPlaybackMode directPlaybackMode;
7244
7245 napi_value res;
7246 OH_AudioCommon_Result getDirectPlaybackSupportResult = OH_AudioStreamManager_GetDirectPlaybackSupport(
7247 audioStreamManager, &streamInfo, usage, &directPlaybackMode);
7248 if (getDirectPlaybackSupportResult == OH_AudioCommon_Result::AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
7249 LOG("OH_AudioStreamManager_GetDirectPlaybackSupport success, OH_AudioStreamManager nullptr");
7250 napi_create_int32(env, TEST_PASS, &res);
7251 } else {
7252 LOG("OH_AudioStreamManager_GetDirectPlaybackSupport failed, OH_AudioStreamManager nullptr");
7253 napi_create_int32(env, TEST_FAIL, &res);
7254 }
7255
7256 return res;
7257 }
7258
AudioManagerGetDirectPlaybackSupportTest_005(napi_env env,napi_callback_info info)7259 static napi_value AudioManagerGetDirectPlaybackSupportTest_005(napi_env env, napi_callback_info info)
7260 {
7261 constexpr int sampleRateCur = 48000;
7262 OH_AudioStreamManager *audioStreamManager;
7263 OH_AudioStreamInfo streamInfo;
7264 streamInfo.channelLayout = OH_AudioChannelLayout::CH_LAYOUT_STEREO;
7265 streamInfo.encodingType = OH_AudioStream_EncodingType::AUDIOSTREAM_ENCODING_TYPE_RAW;
7266 streamInfo.sampleFormat = OH_AudioStream_SampleFormat::AUDIOSTREAM_SAMPLE_F32LE;
7267 streamInfo.samplingRate = sampleRateCur;
7268 OH_AudioStream_Usage usage = OH_AudioStream_Usage::AUDIOSTREAM_USAGE_UNKNOWN;
7269 OH_AudioStream_DirectPlaybackMode directPlaybackMode;
7270
7271 napi_value res;
7272
7273 OH_AudioCommon_Result getAudioStreamManagerResult = OH_AudioManager_GetAudioStreamManager(&audioStreamManager);
7274 if (getAudioStreamManagerResult != OH_AudioCommon_Result::AUDIOCOMMON_RESULT_SUCCESS) {
7275 napi_create_int32(env, TEST_FAIL, &res);
7276 LOG("OH_AudioManager_GetAudioStreamManager failed, res: %{public}d", res);
7277 return res;
7278 }
7279
7280 OH_AudioCommon_Result getDirectPlaybackSupportResult = OH_AudioStreamManager_GetDirectPlaybackSupport(
7281 audioStreamManager, &streamInfo, usage, &directPlaybackMode);
7282 if (getDirectPlaybackSupportResult == OH_AudioCommon_Result::AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM) {
7283 LOG("OH_AudioStreamManager_GetDirectPlaybackSupport success, OH_AudioStream_Usage invaild");
7284 napi_create_int32(env, TEST_PASS, &res);
7285 } else {
7286 LOG("OH_AudioStreamManager_GetDirectPlaybackSupport failed, OH_AudioStream_Usage invaild");
7287 napi_create_int32(env, TEST_FAIL, &res);
7288 }
7289
7290 return res;
7291 }
7292
AudioCaptureGetFastStatus_001(napi_env env,napi_callback_info info)7293 static napi_value AudioCaptureGetFastStatus_001(napi_env env, napi_callback_info info)
7294 {
7295 OH_AudioCapturer *audioCapturer = nullptr;
7296 OH_AudioStream_FastStatus fastStatus;
7297 napi_value result;
7298 OH_AudioStream_Result res = OH_AudioCapturer_GetFastStatus(audioCapturer, &fastStatus);
7299 if (res != AUDIOSTREAM_ERROR_INVALID_PARAM) {
7300 LOG("OH_AudioCapturer_GetFastStatus FAILED, res is %{public}d", res);
7301 OH_AudioCapturer_Release(audioCapturer);
7302 napi_create_int32(env, TEST_FAIL, &result);
7303 return result;
7304 }
7305
7306 OH_AudioCapturer_Release(audioCapturer);
7307 napi_create_int32(env, TEST_PASS, &result);
7308 return result;
7309 }
7310
AudioCaptureGetFastStatus_002(napi_env env,napi_callback_info info)7311 static napi_value AudioCaptureGetFastStatus_002(napi_env env, napi_callback_info info)
7312 {
7313 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
7314 napi_value result;
7315 OH_AudioCapturer *audioCapturer;
7316 OH_AudioStream_FastStatus fastStatus;
7317 OH_AudioStream_Result res = OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
7318
7319 res = OH_AudioCapturer_GetFastStatus(audioCapturer, &fastStatus);
7320 if (res != AUDIOSTREAM_SUCCESS) {
7321 LOG("OH_AudioCapturer_GetFastStatus FAILED, res is %{public}d", res);
7322 OH_AudioCapturer_Release(audioCapturer);
7323 OH_AudioStreamBuilder_Destroy(builder);
7324 napi_create_int32(env, TEST_FAIL, &result);
7325 return result;
7326 }
7327
7328 OH_AudioCapturer_Release(audioCapturer);
7329 OH_AudioStreamBuilder_Destroy(builder);
7330 napi_create_int32(env, TEST_PASS, &result);
7331 return result;
7332 }
7333
AudioRendererGetFastStatus_001(napi_env env,napi_callback_info info)7334 static napi_value AudioRendererGetFastStatus_001(napi_env env, napi_callback_info info)
7335 {
7336 OH_AudioRenderer *audioRenderer = nullptr;
7337 OH_AudioStream_FastStatus fastStatus;
7338 napi_value result;
7339 OH_AudioStream_Result res = OH_AudioRenderer_GetFastStatus(audioRenderer, &fastStatus);
7340 if (res != AUDIOSTREAM_ERROR_INVALID_PARAM) {
7341 LOG("OH_AudioRenderer_GetFastStatus FAILED, res is %{public}d", res);
7342 OH_AudioRenderer_Release(audioRenderer);
7343 napi_create_int32(env, TEST_FAIL, &result);
7344 return result;
7345 }
7346
7347 OH_AudioRenderer_Release(audioRenderer);
7348 napi_create_int32(env, TEST_PASS, &result);
7349 return result;
7350 }
7351
AudioRendererGetFastStatus_002(napi_env env,napi_callback_info info)7352 static napi_value AudioRendererGetFastStatus_002(napi_env env, napi_callback_info info)
7353 {
7354 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
7355 napi_value result;
7356 OH_AudioRenderer *audioRenderer;
7357 OH_AudioStream_FastStatus fastStatus;
7358 OH_AudioStream_Result res = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
7359
7360 res = OH_AudioRenderer_GetFastStatus(audioRenderer, &fastStatus);
7361 if (res != AUDIOSTREAM_SUCCESS) {
7362 LOG("OH_AudioRenderer_GetFastStatus FAILED, res is %{public}d", res);
7363 OH_AudioRenderer_Release(audioRenderer);
7364 OH_AudioStreamBuilder_Destroy(builder);
7365 napi_create_int32(env, TEST_FAIL, &result);
7366 return result;
7367 }
7368
7369 OH_AudioRenderer_Release(audioRenderer);
7370 OH_AudioStreamBuilder_Destroy(builder);
7371 napi_create_int32(env, TEST_PASS, &result);
7372 return result;
7373 }
7374
AudioStreamManagerIsFastPlaybackSupported_001(napi_env env,napi_callback_info info)7375 static napi_value AudioStreamManagerIsFastPlaybackSupported_001(napi_env env, napi_callback_info info)
7376 {
7377 OH_AudioStreamManager *streamManager;
7378 OH_AudioStreamInfo streamInfo;
7379 napi_value result;
7380 OH_AudioCommon_Result res = OH_AudioManager_GetAudioStreamManager(&streamManager);
7381 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
7382 LOG("OH_AudioManager_GetAudioStreamManager FAILED, res is %{public}d", res);
7383 napi_create_int32(env, TEST_FAIL, &result);
7384 return result;
7385 }
7386
7387 streamInfo.samplingRate = NORMAL_RATE;
7388 streamInfo.channelLayout = (OH_AudioChannelLayout)CHANNEL_LAYOUT;
7389 streamInfo.encodingType = (OH_AudioStream_EncodingType)ENCODING_TYPE;
7390 streamInfo.sampleFormat = (OH_AudioStream_SampleFormat)g_sampleFormat;
7391
7392 bool isFastStatus = false;
7393 for (auto usage : VALID_OH_STREAM_USAGES) {
7394 isFastStatus = OH_AudioStreamManager_IsFastPlaybackSupported(streamManager, &streamInfo, usage);
7395 }
7396
7397 napi_create_int32(env, TEST_PASS, &result);
7398 return result;
7399 }
7400
AudioStreamManagerIsFastRecordingSupported_001(napi_env env,napi_callback_info info)7401 static napi_value AudioStreamManagerIsFastRecordingSupported_001(napi_env env, napi_callback_info info)
7402 {
7403 OH_AudioStreamManager *streamManager;
7404 OH_AudioStreamInfo streamInfo;
7405 napi_value result;
7406 OH_AudioCommon_Result res = OH_AudioManager_GetAudioStreamManager(&streamManager);
7407 if (res != AUDIOCOMMON_RESULT_SUCCESS) {
7408 LOG("OH_AudioManager_GetAudioStreamManager FAILED, res is %{public}d", res);
7409 napi_create_int32(env, TEST_FAIL, &result);
7410 return result;
7411 }
7412
7413 streamInfo.samplingRate = NORMAL_RATE;
7414 streamInfo.channelLayout = (OH_AudioChannelLayout)CHANNEL_LAYOUT;
7415 streamInfo.encodingType = (OH_AudioStream_EncodingType)ENCODING_TYPE;
7416 streamInfo.sampleFormat = (OH_AudioStream_SampleFormat)g_sampleFormat;
7417
7418 bool isFastStatus = false;
7419 for (auto source : VALID_OH_SOURCE_TYPES) {
7420 isFastStatus = OH_AudioStreamManager_IsFastRecordingSupported(streamManager, &streamInfo, source);
7421 }
7422
7423 napi_create_int32(env, TEST_PASS, &result);
7424 return result;
7425 }
7426
AudioStreamBuilderSetCapturerFastStatusChangeCallback_001(napi_env env,napi_callback_info info)7427 static napi_value AudioStreamBuilderSetCapturerFastStatusChangeCallback_001(napi_env env, napi_callback_info info)
7428 {
7429 OH_AudioStreamBuilder *builder = nullptr;
7430 void *userData = nullptr;
7431 napi_value result;
7432 OH_AudioStream_Result res = OH_AudioStreamBuilder_SetCapturerFastStatusChangeCallback(builder, nullptr, userData);
7433 if (res != AUDIOSTREAM_ERROR_INVALID_PARAM) {
7434 LOG("OH_AudioStreamBuilder_SetCapturerFastStatusChangeCallback FAILED, res is %{public}d", res);
7435 OH_AudioStreamBuilder_Destroy(builder);
7436 napi_create_int32(env, TEST_FAIL, &result);
7437 return result;
7438 }
7439 OH_AudioStreamBuilder_Destroy(builder);
7440 napi_create_int32(env, TEST_PASS, &result);
7441 return result;
7442 }
7443
AudioStreamBuilderSetCapturerFastStatusChangeCallback_002(napi_env env,napi_callback_info info)7444 static napi_value AudioStreamBuilderSetCapturerFastStatusChangeCallback_002(napi_env env, napi_callback_info info)
7445 {
7446 OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
7447 void *userData = nullptr;
7448 napi_value result;
7449 OH_AudioStream_Result res = OH_AudioStreamBuilder_SetCapturerFastStatusChangeCallback(builder,
7450 MyAudioCapturerOnFastStatusChangeCallback, userData);
7451 if (res != AUDIOSTREAM_SUCCESS) {
7452 LOG("OH_AudioStreamBuilder_SetCapturerFastStatusChangeCallback FAILED, res is %{public}d", res);
7453 OH_AudioStreamBuilder_Destroy(builder);
7454 napi_create_int32(env, TEST_FAIL, &result);
7455 return result;
7456 }
7457 OH_AudioStreamBuilder_Destroy(builder);
7458 napi_create_int32(env, TEST_PASS, &result);
7459 return result;
7460 }
7461
AudioStreamBuilderSetRendererFastStatusChangeCallback_001(napi_env env,napi_callback_info info)7462 static napi_value AudioStreamBuilderSetRendererFastStatusChangeCallback_001(napi_env env, napi_callback_info info)
7463 {
7464 OH_AudioStreamBuilder *builder = nullptr;
7465 void *userData = nullptr;
7466 napi_value result;
7467 OH_AudioStream_Result res = OH_AudioStreamBuilder_SetRendererFastStatusChangeCallback(builder, nullptr, userData);
7468 if (res != AUDIOSTREAM_ERROR_INVALID_PARAM) {
7469 LOG("OH_AudioStreamBuilder_SetRendererFastStatusChangeCallback FAILED, res is %{public}d", res);
7470 OH_AudioStreamBuilder_Destroy(builder);
7471 napi_create_int32(env, TEST_FAIL, &result);
7472 return result;
7473 }
7474 OH_AudioStreamBuilder_Destroy(builder);
7475 napi_create_int32(env, TEST_PASS, &result);
7476 return result;
7477 }
7478
AudioStreamBuilderSetRendererFastStatusChangeCallback_002(napi_env env,napi_callback_info info)7479 static napi_value AudioStreamBuilderSetRendererFastStatusChangeCallback_002(napi_env env, napi_callback_info info)
7480 {
7481 OH_AudioStreamBuilder *builder = CreateRenderBuilder();
7482 void *userData = nullptr;
7483 napi_value result;
7484 OH_AudioStream_Result res = OH_AudioStreamBuilder_SetRendererFastStatusChangeCallback(builder,
7485 MyAudioRendererOnFastStatusChangeCallback, userData);
7486 if (res != AUDIOSTREAM_SUCCESS) {
7487 LOG("OH_AudioStreamBuilder_SetRendererFastStatusChangeCallback FAILED, res is %{public}d", res);
7488 OH_AudioStreamBuilder_Destroy(builder);
7489 napi_create_int32(env, TEST_FAIL, &result);
7490 return result;
7491 }
7492 OH_AudioStreamBuilder_Destroy(builder);
7493 napi_create_int32(env, TEST_PASS, &result);
7494 return result;
7495 }
7496
AudioRendererOnWriteDataEnhance(OH_AudioRenderer * renderer,void * userData,void * audioData,int32_t audioDataSize)7497 static int32_t AudioRendererOnWriteDataEnhance(
7498 OH_AudioRenderer* renderer,
7499 void* userData,
7500 void* audioData,
7501 int32_t audioDataSize)
7502 {
7503 if (latencySize == 0) {
7504 latencySize = audioDataSize;
7505 dist = std::uniform_int_distribution<>(g_randomLowerBound, latencySize / g_smallUnit);
7506 }
7507 if (randomTestEnable && g_fileOffset != FileRecourceManager::len) {
7508 int random_int = dist(gen);
7509 LOG("random_int SUCCESS, result is: %{public}d", random_int);
7510 audioDataSize = static_cast<int32_t>(random_int * g_smallUnit);
7511 }
7512 // 将待播放的数据,按audioDataSize长度写入audioData。
7513 // 如果开发者不希望播放某段audioData,返回AUDIO_DATA_CALLBACK_RESULT_INVALID即可。
7514 if (g_fileOffset + audioDataSize < FileRecourceManager::len) {
7515 std::copy(FileRecourceManager::dataCopy.get() + g_fileOffset,
7516 FileRecourceManager::dataCopy.get() + g_fileOffset + audioDataSize,
7517 static_cast<uint8_t*>(audioData));
7518 g_fileOffset += audioDataSize;
7519 LOG("AudioRendererOnWriteData SUCCESS, result is: %{public}d, res is %{public}d",
7520 audioDataSize, *(FileRecourceManager::dataCopy.get() + g_fileOffset));
7521 return audioDataSize;
7522 }
7523 else {
7524 if (g_fileOffset == FileRecourceManager::len) { return 0; }
7525 std::copy(FileRecourceManager::dataCopy.get() + g_fileOffset,
7526 FileRecourceManager::dataCopy.get() + g_fileOffset + (FileRecourceManager::len - g_fileOffset),
7527 static_cast<uint8_t*>(audioData));
7528 g_fileOffset = FileRecourceManager::len;
7529 LOG("AudioRendererOnWriteData SUCCESS, result is: %{public}d, res is %{public}d",
7530 FileRecourceManager::len - g_fileOffset, *(FileRecourceManager::dataCopy.get() + g_fileOffset));
7531 return FileRecourceManager::len - g_fileOffset;
7532 }
7533 }
7534
7535 // 自定义音频流事件函数。
OnStreamEvent(OH_AudioRenderer * renderer,void * userData,OH_AudioStream_Event event)7536 int32_t OnStreamEvent(
7537 OH_AudioRenderer* renderer,
7538 void* userData,
7539 OH_AudioStream_Event event)
7540 {
7541 // 根据event表示的音频流事件信息,更新播放器状态和界面。
7542 return 0;
7543 }
7544
7545 // 自定义音频中断事件函数。
OnInterruptEvent(OH_AudioRenderer * renderer,void * userData,OH_AudioInterrupt_ForceType type,OH_AudioInterrupt_Hint hint)7546 int32_t OnInterruptEvent(
7547 OH_AudioRenderer* renderer,
7548 void* userData,
7549 OH_AudioInterrupt_ForceType type,
7550 OH_AudioInterrupt_Hint hint)
7551 {
7552 // 根据type和hint表示的音频中断信息,更新播放器状态和界面。
7553 return 0;
7554 }
7555
7556 // 自定义异常回调函数。
OnError(OH_AudioRenderer * renderer,void * userData,OH_AudioStream_Result error)7557 int32_t OnError(
7558 OH_AudioRenderer* renderer,
7559 void* userData,
7560 OH_AudioStream_Result error)
7561 {
7562 // 根据error表示的音频异常信息,做出相应的处理。
7563 LOG("OnError FAILED, result is: %{public}d", static_cast<int32_t>(error));
7564 return 0;
7565 }
7566
StopAndReleaseRenderer(napi_env env,napi_callback_info info)7567 static napi_value StopAndReleaseRenderer(napi_env env, napi_callback_info info)
7568 {
7569 OH_AudioRenderer_Pause(audioRenderer);
7570 OH_AudioRenderer_Stop(audioRenderer);
7571 LOG("OH_AudioRenderer_Pause and OH_AudioRenderer_Stop SUCCESS");
7572 if (audioRenderer) {
7573 OH_AudioRenderer_Release(audioRenderer);
7574 OH_AudioStreamBuilder_Destroy(builder);
7575 audioRenderer = nullptr;
7576 builder = nullptr;
7577 LOG("OH_AudioRenderer_Release and OH_AudioStreamBuilder_Destroy SUCCESS");
7578 }
7579 napi_value result;
7580 napi_create_int32(env, static_cast<int32_t>(TEST_RESULT::TEST_FAIL), &result);
7581 return result;
7582 }
7583
AudioLowLatencyOut(napi_env env,napi_callback_info info)7584 static napi_value AudioLowLatencyOut(napi_env env, napi_callback_info info)
7585 {
7586 napi_value result;
7587
7588 constexpr float volume = 0.5f;
7589 constexpr int32_t streamRate = 48000;
7590 OH_AudioStream_Type streamType = OH_AudioStream_Type::AUDIOSTREAM_TYPE_RENDERER;
7591
7592 OH_AudioStream_Result BuilderCreateResult = OH_AudioStreamBuilder_Create(&builder, streamType);
7593 if (BuilderCreateResult != OH_AudioStream_Result::AUDIOSTREAM_SUCCESS) {
7594 napi_create_int32(env, static_cast<int32_t>(TEST_RESULT::TEST_FAIL), &result);
7595 LOG("OH_AudioStreamBuilder_Create FAILED, result is: %{public}d", result);
7596 return result;
7597 }
7598 LOG("OH_AudioStreamBuilder_Create SUCCESS");
7599
7600 // 设置音频采样率。
7601 OH_AudioStreamBuilder_SetSamplingRate(builder, streamRate);
7602 // 设置音频声道。
7603 OH_AudioStreamBuilder_SetChannelLayout(builder, CH_LAYOUT_STEREO);
7604 // 设置音频采样格式。
7605 OH_AudioStreamBuilder_SetSampleFormat(builder, OH_AudioStream_SampleFormat::AUDIOSTREAM_SAMPLE_S16LE);
7606 // 设置音频流的编码类型。
7607 OH_AudioStreamBuilder_SetEncodingType(builder, AUDIOSTREAM_ENCODING_TYPE_RAW);
7608 // 设置输出音频流的工作场景。
7609 OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_GAME);
7610 // 设置低时延模式
7611 OH_AudioStreamBuilder_SetLatencyMode(builder, AUDIOSTREAM_LATENCY_MODE_FAST);
7612
7613 OH_AudioRenderer_Callbacks rendererCallBacks;
7614
7615 // 使用前,初始化并清零结构体。
7616 memset(&rendererCallBacks, 0, sizeof(OH_AudioRenderer_Callbacks));
7617
7618 rendererCallBacks.OH_AudioRenderer_OnStreamEvent = OnStreamEvent;
7619 rendererCallBacks.OH_AudioRenderer_OnInterruptEvent = OnInterruptEvent;
7620 rendererCallBacks.OH_AudioRenderer_OnError = OnError;
7621 rendererCallBacks.OH_AudioRenderer_OnWriteData = nullptr;
7622
7623 OH_AudioStreamBuilder_SetRendererCallback(builder, rendererCallBacks, nullptr);
7624
7625 OH_AudioRenderer_OnWriteDataCallbackAdvanced writeDataCb = AudioRendererOnWriteDataEnhance;
7626 OH_AudioStreamBuilder_SetRendererWriteDataCallbackAdvanced(builder, writeDataCb, nullptr);
7627
7628 OH_AudioStream_Result GenerateRendererResult = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
7629 if (GenerateRendererResult != OH_AudioStream_Result::AUDIOSTREAM_SUCCESS) {
7630 napi_create_int32(env, static_cast<int32_t>(TEST_RESULT::TEST_FAIL), &result);
7631 LOG("OH_AudioStreamBuilder_GenerateRenderer FAILED, result is: %{public}d", result);
7632 return result;
7633 }
7634 LOG("OH_AudioStreamBuilder_GenerateRenderer SUCCESS");
7635
7636 // 设置音频流音量
7637 OH_AudioStream_Result SetVolumeResult = OH_AudioRenderer_SetVolume(audioRenderer, volume);
7638 if (SetVolumeResult != OH_AudioStream_Result::AUDIOSTREAM_SUCCESS) {
7639 napi_create_int32(env, static_cast<int32_t>(TEST_RESULT::TEST_FAIL), &result);
7640 LOG("OH_AudioRenderer_SetVolume FAILED, result is: %{public}d", result);
7641 return result;
7642 }
7643 LOG("OH_AudioRenderer_SetVolume SUCCESS");
7644
7645 g_fileOffset = 0;
7646
7647 LOG("FileRecourceManager::len SUCCESS: %{public}d", FileRecourceManager::len);
7648 LOG("FileRecourceManager::data SUCCESS: %{public}p", FileRecourceManager::dataCopy.get());
7649
7650 napi_create_int32(env, static_cast<int32_t>(TEST_RESULT::TEST_PASS), &result);
7651 return result;
7652 }
7653
AudioWorkGroupSet(napi_env env,napi_callback_info info)7654 static napi_value AudioWorkGroupSet(napi_env env, napi_callback_info info)
7655 {
7656 napi_value result;
7657
7658 constexpr float volume = 0.5f;
7659 constexpr int32_t streamRate = 48000;
7660 OH_AudioStream_Type streamType = OH_AudioStream_Type::AUDIOSTREAM_TYPE_RENDERER;
7661
7662 OH_AudioStream_Result BuilderCreateResult = OH_AudioStreamBuilder_Create(&builder, streamType);
7663 if (BuilderCreateResult != OH_AudioStream_Result::AUDIOSTREAM_SUCCESS) {
7664 napi_create_int32(env, static_cast<int32_t>(TEST_RESULT::TEST_FAIL), &result);
7665 LOG("OH_AudioStreamBuilder_Create FAILED, result is: %{public}d", result);
7666 return result;
7667 }
7668 LOG("OH_AudioStreamBuilder_Create SUCCESS");
7669
7670 // 设置音频采样率。
7671 OH_AudioStreamBuilder_SetSamplingRate(builder, streamRate);
7672 // 设置音频声道。
7673 OH_AudioStreamBuilder_SetChannelLayout(builder, CH_LAYOUT_STEREO);
7674 // 设置音频采样格式。
7675 OH_AudioStreamBuilder_SetSampleFormat(builder, OH_AudioStream_SampleFormat::AUDIOSTREAM_SAMPLE_S16LE);
7676 // 设置音频流的编码类型。
7677 OH_AudioStreamBuilder_SetEncodingType(builder, AUDIOSTREAM_ENCODING_TYPE_RAW);
7678 // 设置输出音频流的工作场景。
7679 OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_MUSIC);
7680 // 设置低时延模式
7681 OH_AudioStreamBuilder_SetLatencyMode(builder, AUDIOSTREAM_LATENCY_MODE_FAST);
7682
7683 OH_AudioRenderer_Callbacks rendererCallBacks;
7684
7685 // 使用前,初始化并清零结构体。
7686 memset(&rendererCallBacks, 0, sizeof(OH_AudioRenderer_Callbacks));
7687
7688 rendererCallBacks.OH_AudioRenderer_OnStreamEvent = OnStreamEvent;
7689 rendererCallBacks.OH_AudioRenderer_OnInterruptEvent = OnInterruptEvent;
7690 rendererCallBacks.OH_AudioRenderer_OnError = OnError;
7691 rendererCallBacks.OH_AudioRenderer_OnWriteData = nullptr;
7692
7693 OH_AudioStreamBuilder_SetRendererCallback(builder, rendererCallBacks, nullptr);
7694
7695 OH_AudioStream_Result GenerateRendererResult = OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
7696 if (GenerateRendererResult != OH_AudioStream_Result::AUDIOSTREAM_SUCCESS) {
7697 napi_create_int32(env, static_cast<int32_t>(TEST_RESULT::TEST_FAIL), &result);
7698 LOG("OH_AudioStreamBuilder_GenerateRenderer FAILED, result is: %{public}d", result);
7699 return result;
7700 }
7701 LOG("OH_AudioStreamBuilder_GenerateRenderer SUCCESS");
7702
7703 // 设置音频流音量
7704 OH_AudioStream_Result SetVolumeResult = OH_AudioRenderer_SetVolume(audioRenderer, volume);
7705 if (SetVolumeResult != OH_AudioStream_Result::AUDIOSTREAM_SUCCESS) {
7706 napi_create_int32(env, static_cast<int32_t>(TEST_RESULT::TEST_FAIL), &result);
7707 LOG("OH_AudioRenderer_SetVolume FAILED, result is: %{public}d", result);
7708 return result;
7709 }
7710 LOG("OH_AudioRenderer_SetVolume SUCCESS");
7711
7712
7713 int32_t tid;
7714 OH_AudioResourceManager *mgr;
7715 OH_AudioWorkgroup *grp;
7716 OH_AudioCommon_Result mgrresult = OH_AudioManager_GetAudioResourceManager(&mgr);
7717 LOG("OH_AudioManager_GetAudioResourceManager result is: %{public}d", mgrresult);
7718
7719 OH_AudioCommon_Result cwgresult = OH_AudioResourceManager_CreateWorkgroup(mgr, "new", &grp);
7720 LOG("OH_AudioResourceManager_CreateWorkgroup result is: %{public}d", cwgresult);
7721
7722 OH_AudioCommon_Result addtrdresult = OH_AudioWorkgroup_AddCurrentThread(grp, &tid);
7723 LOG("OH_AudioWorkgroup_AddCurrentThread result is: %{public}d", addtrdresult);
7724
7725 OH_AudioCommon_Result startresult = OH_AudioWorkgroup_Start(grp, STATE_TIME, END_TIME);
7726 LOG("OH_AudioWorkgroup_Start result is: %{public}d", startresult);
7727
7728 OH_AudioCommon_Result stopresult = OH_AudioWorkgroup_Stop(grp);
7729 LOG("OH_AudioWorkgroup_Stop result is: %{public}d", stopresult);
7730
7731 OH_AudioCommon_Result rmresult = OH_AudioWorkgroup_RemoveThread(grp, tid);
7732 LOG("OH_AudioWorkgroup_RemoveThread result is: %{public}d", rmresult);
7733
7734 OH_AudioCommon_Result rsresult=OH_AudioResourceManager_ReleaseWorkgroup(mgr, grp);
7735 LOG("OH_AudioResourceManager_ReleaseWorkgroup result is: %{public}d", rsresult);
7736
7737 g_fileOffset = 0;
7738
7739 LOG("FileRecourceManager::len SUCCESS: %{public}d", FileRecourceManager::len);
7740 LOG("FileRecourceManager::data SUCCESS: %{public}p", FileRecourceManager::dataCopy.get());
7741
7742 napi_create_int32(env, static_cast<int32_t>(TEST_RESULT::TEST_PASS), &result);
7743 return result;
7744 }
7745
7746
StartAudioRenderer(napi_env env,napi_callback_info info)7747 static napi_value StartAudioRenderer(napi_env env, napi_callback_info info)
7748 {
7749 OH_AudioRenderer_Start(audioRenderer);
7750 LOG("OH_AudioRenderer_Start SUCCESS");
7751 napi_value result;
7752 napi_create_int32(env, static_cast<int32_t>(TEST_RESULT::TEST_PASS), &result);
7753 return result;
7754 }
7755
7756 EXTERN_C_START
7757 napi_property_descriptor desc1[] = {
7758 {"audioManagerGetAudioStreamManagerTest_001", nullptr, AudioManagerGetAudioStreamManagerTest_001,
7759 nullptr, nullptr, nullptr, napi_default, nullptr},
7760 {"audioManagerGetAudioStreamManagerTest_002", nullptr, AudioManagerGetAudioStreamManagerTest_002,
7761 nullptr, nullptr, nullptr, napi_default, nullptr},
7762 {"audioManagerGetDirectPlaybackSupportTest_001", nullptr, AudioManagerGetDirectPlaybackSupportTest_001,
7763 nullptr, nullptr, nullptr, napi_default, nullptr},
7764 {"audioManagerGetDirectPlaybackSupportTest_002", nullptr, AudioManagerGetDirectPlaybackSupportTest_001,
7765 nullptr, nullptr, nullptr, napi_default, nullptr},
7766 {"audioManagerGetDirectPlaybackSupportTest_003", nullptr, AudioManagerGetDirectPlaybackSupportTest_001,
7767 nullptr, nullptr, nullptr, napi_default, nullptr},
7768 {"audioManagerGetDirectPlaybackSupportTest_004", nullptr, AudioManagerGetDirectPlaybackSupportTest_001,
7769 nullptr, nullptr, nullptr, napi_default, nullptr},
7770 {"audioManagerGetDirectPlaybackSupportTest_005", nullptr, AudioManagerGetDirectPlaybackSupportTest_001,
7771 nullptr, nullptr, nullptr, napi_default, nullptr},
7772 {"audioStreamBuilderSetVolumeModeTest_001", nullptr, OH_AudioStreamBuilder_SetVolumeMode_Test_001,
7773 nullptr, nullptr, nullptr, napi_default, nullptr},
7774 {"audioStreamBuilderSetVolumeModeTest_002", nullptr, OH_AudioStreamBuilder_SetVolumeMode_Test_002,
7775 nullptr, nullptr, nullptr, napi_default, nullptr},
7776 {"audioStreamBuilderSetVolumeModeTest_003", nullptr, OH_AudioStreamBuilder_SetVolumeMode_Test_003,
7777 nullptr, nullptr, nullptr, napi_default, nullptr},
7778 {"audioStreamBuilderSetVolumeModeTest_004", nullptr, OH_AudioStreamBuilder_SetVolumeMode_Test_004,
7779 nullptr, nullptr, nullptr, napi_default, nullptr},
7780 {"createAudioStreamBuilder", nullptr, CreateAudioStreamBuilder, nullptr, nullptr, nullptr, napi_default, nullptr},
7781 {"audioCaptureGenerate", nullptr, AudioCaptureGenerate, nullptr, nullptr, nullptr, napi_default, nullptr},
7782 {"audioWorkGroup", nullptr, AudioWorkGroup, nullptr, nullptr, nullptr, napi_default, nullptr},
7783 {"audioCaptureGenerateErr", nullptr, AudioCaptureGenerateErr,
7784 nullptr, nullptr, nullptr, napi_default, nullptr},
7785 {"audioCaptureStart", nullptr, AudioCaptureStart, nullptr, nullptr, nullptr, napi_default, nullptr},
7786 {"audioCaptureStartErr", nullptr, AudioCaptureStartErr, nullptr, nullptr, nullptr, napi_default, nullptr},
7787 {"audioCapturePause", nullptr, AudioCapturePause, nullptr, nullptr, nullptr, napi_default, nullptr},
7788 {"audioCapturePauseErr", nullptr, AudioCapturePauseErr, nullptr, nullptr, nullptr, napi_default, nullptr},
7789 {"audioCaptureStop", nullptr, AudioCaptureStop, nullptr, nullptr, nullptr, napi_default, nullptr},
7790 {"audioCaptureStopErr", nullptr, AudioCaptureStopErr, nullptr, nullptr, nullptr, napi_default, nullptr},
7791 {"audioCaptureFlush", nullptr, AudioCaptureFlush, nullptr, nullptr, nullptr, napi_default, nullptr},
7792 {"audioCaptureFlushErr", nullptr, AudioCaptureFlushErr, nullptr, nullptr, nullptr, napi_default, nullptr},
7793 {"audioCaptureRelease", nullptr, AudioCaptureRelease, nullptr, nullptr, nullptr, napi_default, nullptr},
7794 {"audioCaptureReleaseErr", nullptr, AudioCaptureReleaseErr, nullptr, nullptr, nullptr, napi_default, nullptr},
7795 {"audioCaptureGetParameter", nullptr, AudioCaptureGetParameter,
7796 nullptr, nullptr, nullptr, napi_default, nullptr},
7797 {"audioCaptureGetCurrentState", nullptr, AudioCaptureGetCurrentState,
7798 nullptr, nullptr, nullptr, napi_default, nullptr},
7799 {"audioCaptureGetStreamId", nullptr, AudioCaptureGetStreamId,
7800 nullptr, nullptr, nullptr, napi_default, nullptr},
7801 {"audioCaptureGetSamplingRate", nullptr, AudioCaptureGetSamplingRate,
7802 nullptr, nullptr, nullptr, napi_default, nullptr},
7803 {"audioCaptureGetSampleFormat", nullptr, AudioCaptureGetSampleFormat,
7804 nullptr, nullptr, nullptr, napi_default, nullptr},
7805 {"audioCaptureGetEncodingType", nullptr, AudioCaptureGetEncodingType,
7806 nullptr, nullptr, nullptr, napi_default, nullptr},
7807 {"audioCaptureGetCapturerInfo", nullptr, AudioCaptureGetCapturerInfo,
7808 nullptr, nullptr, nullptr, napi_default, nullptr},
7809 {"audioCaptureGetTimestamp", nullptr, AudioCaptureGetTimestamp,
7810 nullptr, nullptr, nullptr, napi_default, nullptr},
7811 {"audioCaptureGetFramesRead", nullptr, AudioCaptureGetFramesRead,
7812 nullptr, nullptr, nullptr, napi_default, nullptr},
7813 {"audioCaptureGetFrameSizeInCallback", nullptr, AudioCaptureGetFrameSizeInCallback,
7814 nullptr, nullptr, nullptr, napi_default, nullptr},
7815 {"audioRendererSetSpeed", nullptr, AudioRendererSetSpeed,
7816 nullptr, nullptr, nullptr, napi_default, nullptr},
7817 {"audioRendererGetSpeed", nullptr, AudioRendererGetSpeed,
7818 nullptr, nullptr, nullptr, napi_default, nullptr},
7819 {"audioRendererSetGetSpeed", nullptr, AudioRendererSetGetSpeed,
7820 nullptr, nullptr, nullptr, napi_default, nullptr},
7821 {"audioSetRendererOutputDeviceChangeCallback", nullptr, AudioSetRendererOutputDeviceChangeCallback,
7822 nullptr, nullptr, nullptr, napi_default, nullptr},
7823 {"audioRenderGetFramesWritten", nullptr, AudioRenderGetFramesWritten,
7824 nullptr, nullptr, nullptr, napi_default, nullptr},
7825 {"audioRenderGetTimestamp", nullptr, AudioRenderGetTimestamp,
7826 nullptr, nullptr, nullptr, napi_default, nullptr},
7827 {"audioRenderGetAudioTimestampInfo", nullptr, AudioRenderGetAudioTimestampInfo,
7828 nullptr, nullptr, nullptr, napi_default, nullptr},
7829 {"audioRenderGetAudioTimestampInfoInterval", nullptr, AudioRenderGetAudioTimestampInfoInterval,
7830 nullptr, nullptr, nullptr, napi_default, nullptr},
7831 {"audioRenderGetFrameSizeInCallback", nullptr, AudioRenderGetFrameSizeInCallback,
7832 nullptr, nullptr, nullptr, napi_default, nullptr},
7833 {"audioRenderGenerate", nullptr, AudioRenderGenerate, nullptr, nullptr, nullptr, napi_default, nullptr},
7834 {"audioRenderGenerateErr", nullptr, AudioRenderGenerateErr, nullptr, nullptr, nullptr, napi_default, nullptr},
7835 {"audioRenderStart", nullptr, AudioRenderStart, nullptr, nullptr, nullptr, napi_default, nullptr},
7836 {"audioRenderStartErr", nullptr, AudioRenderStartErr, nullptr, nullptr, nullptr, napi_default, nullptr},
7837 {"audioRenderPause", nullptr, AudioRenderPause, nullptr, nullptr, nullptr, napi_default, nullptr},
7838 {"audioRenderPauseErr", nullptr, AudioRenderPauseErr, nullptr, nullptr, nullptr, napi_default, nullptr},
7839 {"audioRenderStop", nullptr, AudioRenderStop, nullptr, nullptr, nullptr, napi_default, nullptr},
7840 {"audioRenderStopErr", nullptr, AudioRenderStopErr, nullptr, nullptr, nullptr, napi_default, nullptr},
7841 {"audioRenderFlush", nullptr, AudioRenderFlush, nullptr, nullptr, nullptr, napi_default, nullptr},
7842 {"audioRenderFlushErr", nullptr, AudioRenderFlushErr, nullptr, nullptr, nullptr, napi_default, nullptr},
7843 {"audioRenderRelease", nullptr, AudioRenderRelease, nullptr, nullptr, nullptr, napi_default, nullptr},
7844 {"audioRenderReleaseErr", nullptr, AudioRenderReleaseErr, nullptr, nullptr, nullptr, napi_default, nullptr},
7845 {"audioRenderGetCurrentState", nullptr, AudioRenderGetCurrentState,
7846 nullptr, nullptr, nullptr, napi_default, nullptr},
7847 {"audioRenderGetParameter", nullptr, AudioRenderGetParameter,
7848 nullptr, nullptr, nullptr, napi_default, nullptr},
7849 {"audioRenderGetStreamId", nullptr, AudioRenderGetStreamId, nullptr, nullptr, nullptr, napi_default, nullptr},
7850 {"audioRenderGetSamplingRate", nullptr, AudioRenderGetSamplingRate,
7851 nullptr, nullptr, nullptr, napi_default, nullptr},
7852 {"audioRenderGetSampleFormat", nullptr, AudioRenderGetSampleFormat,
7853 nullptr, nullptr, nullptr, napi_default, nullptr},
7854 {"audioRenderGetEncodingType", nullptr, AudioRenderGetEncodingType,
7855 nullptr, nullptr, nullptr, napi_default, nullptr},
7856 {"audioRenderGetRendererInfo", nullptr, AudioRenderGetRendererInfo,
7857 nullptr, nullptr, nullptr, napi_default, nullptr},
7858 {"audioStreamBuilderSetSamplingRate", nullptr, AudioStreamBuilderSetSamplingRate,
7859 nullptr, nullptr, nullptr, napi_default, nullptr},
7860 {"audioStreamBuilderSetChannelCount", nullptr, AudioStreamBuilderSetChannelCount,
7861 nullptr, nullptr, nullptr, napi_default, nullptr},
7862 {"audioStreamBuilderSetSampleFormat", nullptr, AudioStreamBuilderSetSampleFormat,
7863 nullptr, nullptr, nullptr, napi_default, nullptr},
7864 {"audioStreamBuilderSetEncodingType", nullptr, AudioStreamBuilderSetEncodingType,
7865 nullptr, nullptr, nullptr, napi_default, nullptr},
7866 {"audioStreamBuilderSetLatencyMode", nullptr, AudioStreamBuilderSetLatencyMode,
7867 nullptr, nullptr, nullptr, napi_default, nullptr},
7868 {"audioStreamBuilderSetRendererInfo", nullptr, AudioStreamBuilderSetRendererInfo,
7869 nullptr, nullptr, nullptr, napi_default, nullptr},
7870 {"audioStreamBuilderSetCapturerInfo", nullptr, AudioStreamBuilderSetCapturerInfo,
7871 nullptr, nullptr, nullptr, napi_default, nullptr},
7872 {"audioStreamBuilderSetCapturerReadDataCallback_001", nullptr, AudioStreamBuilderSetCapturerReadDataCallback_001,
7873 nullptr, nullptr, nullptr, napi_default, nullptr},
7874 {"audioStreamBuilderSetCapturerReadDataCallback_002", nullptr, AudioStreamBuilderSetCapturerReadDataCallback_002,
7875 nullptr, nullptr, nullptr, napi_default, nullptr},
7876 {"audioStreamBuilderSetCapturerDeviceChangeCallback_001", nullptr,
7877 AudioStreamBuilderSetCapturerDeviceChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
7878 {"audioStreamBuilderSetCapturerDeviceChangeCallback_002", nullptr,
7879 AudioStreamBuilderSetCapturerDeviceChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
7880 {"audioStreamBuilderSetCapturerInterruptCallback_001", nullptr, AudioStreamBuilderSetCapturerInterruptCallback_001,
7881 nullptr, nullptr, nullptr, napi_default, nullptr},
7882 {"audioStreamBuilderSetCapturerInterruptCallback_002", nullptr, AudioStreamBuilderSetCapturerInterruptCallback_002,
7883 nullptr, nullptr, nullptr, napi_default, nullptr},
7884 {"audioStreamBuilderSetCapturerErrorCallback_001", nullptr, AudioStreamBuilderSetCapturerErrorCallback_001,
7885 nullptr, nullptr, nullptr, napi_default, nullptr},
7886 {"audioStreamBuilderSetCapturerErrorCallback_002", nullptr, AudioStreamBuilderSetCapturerErrorCallback_002,
7887 nullptr, nullptr, nullptr, napi_default, nullptr},
7888 {"audioStreamBuilderSetRendererCallback", nullptr, AudioStreamBuilderSetRendererCallback,
7889 nullptr, nullptr, nullptr, napi_default, nullptr},
7890 {"audioStreamBuilderSetCapturerCallback", nullptr, AudioStreamBuilderSetCapturerCallback,
7891 nullptr, nullptr, nullptr, napi_default, nullptr},
7892 {"audioCaptureGetChannelCount", nullptr, AudioCaptureGetChannelCount,
7893 nullptr, nullptr, nullptr, napi_default, nullptr},
7894 {"audioRenderGetChannelCount", nullptr, AudioRenderGetChannelCount,
7895 nullptr, nullptr, nullptr, napi_default, nullptr},
7896 {"audioStreamBuilderSetFrameSizeInCallback", nullptr, AudioStreamBuilderSetFrameSizeInCallback,
7897 nullptr, nullptr, nullptr, napi_default, nullptr},
7898 {"audioRendererGetVolume_01", nullptr, AudioRendererGetVolume_01,
7899 nullptr, nullptr, nullptr, napi_default, nullptr},
7900 {"audioRendererSetVolume_01", nullptr, AudioRendererSetVolume_01,
7901 nullptr, nullptr, nullptr, napi_default, nullptr},
7902 {"audioRendererSetVolume_02", nullptr, AudioRendererSetVolume_02,
7903 nullptr, nullptr, nullptr, napi_default, nullptr},
7904 {"audioRendererSetVolume_03", nullptr, AudioRendererSetVolume_03,
7905 nullptr, nullptr, nullptr, napi_default, nullptr},
7906 {"audioRendererSetVolume_04", nullptr, AudioRendererSetVolume_04,
7907 nullptr, nullptr, nullptr, napi_default, nullptr},
7908 {"audioRendererSetVolume_05", nullptr, AudioRendererSetVolume_05,
7909 nullptr, nullptr, nullptr, napi_default, nullptr},
7910 {"audioRendererSetVolume_06", nullptr, AudioRendererSetVolume_06,
7911 nullptr, nullptr, nullptr, napi_default, nullptr},
7912 {"audioRendererSetVolumeWithRamp_01", nullptr, AudioRendererSetVolumeWithRamp_01,
7913 nullptr, nullptr, nullptr, napi_default, nullptr},
7914 {"audioRendererSetVolumeWithRamp_02", nullptr, AudioRendererSetVolumeWithRamp_02,
7915 nullptr, nullptr, nullptr, napi_default, nullptr},
7916 {"audioRendererSetVolumeWithRamp_03", nullptr, AudioRendererSetVolumeWithRamp_03,
7917 nullptr, nullptr, nullptr, napi_default, nullptr},
7918 {"audioRendererSetVolumeWithRamp_04", nullptr, AudioRendererSetVolumeWithRamp_04,
7919 nullptr, nullptr, nullptr, napi_default, nullptr},
7920 {"audioRendererSetVolumeWithRamp_05", nullptr, AudioRendererSetVolumeWithRamp_05,
7921 nullptr, nullptr, nullptr, napi_default, nullptr},
7922 {"audioRendererSetVolumeWithRamp_06", nullptr, AudioRendererSetVolumeWithRamp_06,
7923 nullptr, nullptr, nullptr, napi_default, nullptr},
7924 {"audioRendererSetVolumeWithRamp_07", nullptr, AudioRendererSetVolumeWithRamp_07,
7925 nullptr, nullptr, nullptr, napi_default, nullptr},
7926 {"audioRendererSetVolumeWithRamp_08", nullptr, AudioRendererSetVolumeWithRamp_08,
7927 nullptr, nullptr, nullptr, napi_default, nullptr},
7928 {"audioRendererSetVolumeWithRamp_09", nullptr, AudioRendererSetVolumeWithRamp_09,
7929 nullptr, nullptr, nullptr, napi_default, nullptr},
7930 {"audioRendererSetOnMarkReached_01", nullptr, AudioRendererSetOnMarkReached_01,
7931 nullptr, nullptr, nullptr, napi_default, nullptr},
7932 {"audioRendererSetOnMarkReached_02", nullptr, AudioRendererSetOnMarkReached_02,
7933 nullptr, nullptr, nullptr, napi_default, nullptr},
7934 {"audioRendererSetOnMarkReached_03", nullptr, AudioRendererSetOnMarkReached_03,
7935 nullptr, nullptr, nullptr, napi_default, nullptr},
7936 {"audioRendererSetOnMarkReached_04", nullptr, AudioRendererSetOnMarkReached_04,
7937 nullptr, nullptr, nullptr, napi_default, nullptr},
7938 {"audioRendererSetOnMarkReached_05", nullptr, AudioRendererSetOnMarkReached_05,
7939 nullptr, nullptr, nullptr, napi_default, nullptr},
7940 {"audioRendererSetOnMarkReached_06", nullptr, AudioRendererSetOnMarkReached_06,
7941 nullptr, nullptr, nullptr, napi_default, nullptr},
7942 {"audioRendererSetOnMarkReached_07", nullptr, AudioRendererSetOnMarkReached_07,
7943 nullptr, nullptr, nullptr, napi_default, nullptr},
7944 {"audioRendererSetOnMarkReached_08", nullptr, AudioRendererSetOnMarkReached_08,
7945 nullptr, nullptr, nullptr, napi_default, nullptr},
7946 {"audioRendererCancelMark_01", nullptr, AudioRendererCancelMark_01,
7947 nullptr, nullptr, nullptr, napi_default, nullptr},
7948 {"audioRendererCancelMark_02", nullptr, AudioRendererCancelMark_02,
7949 nullptr, nullptr, nullptr, napi_default, nullptr},
7950 {"audioRendererCancelMark_03", nullptr, AudioRendererCancelMark_03,
7951 nullptr, nullptr, nullptr, napi_default, nullptr},
7952 {"audioRendererSetInterruptMode_01", nullptr, AudioRendererSetInterruptMode_01,
7953 nullptr, nullptr, nullptr, napi_default, nullptr},
7954 {"audioRendererSetInterruptMode_02", nullptr, AudioRendererSetInterruptMode_02,
7955 nullptr, nullptr, nullptr, napi_default, nullptr},
7956 {"audioRendererSetInterruptMode_03", nullptr, AudioRendererSetInterruptMode_03,
7957 nullptr, nullptr, nullptr, napi_default, nullptr},
7958 {"audioRendererSetInterruptMode_04", nullptr, AudioRendererSetInterruptMode_04,
7959 nullptr, nullptr, nullptr, napi_default, nullptr},
7960 {"audioManagerGetAudioRoutingManager_01", nullptr, AudioManagerGetAudioRoutingManager_01,
7961 nullptr, nullptr, nullptr, napi_default, nullptr},
7962 {"audioRoutingManagerGetDevices_01", nullptr, AudioRoutingManagerGetDevices_01,
7963 nullptr, nullptr, nullptr, napi_default, nullptr},
7964 {"audioRoutingManagerGetDevices_02", nullptr, AudioRoutingManagerGetDevices_02,
7965 nullptr, nullptr, nullptr, napi_default, nullptr},
7966 {"audioRoutingManagerGetDevices_03", nullptr, AudioRoutingManagerGetDevices_03,
7967 nullptr, nullptr, nullptr, napi_default, nullptr},
7968 {"audioRoutingManagerGetDevices_04", nullptr, AudioRoutingManagerGetDevices_04,
7969 nullptr, nullptr, nullptr, napi_default, nullptr},
7970 {"audioRoutingManagerGetDevices_05", nullptr, AudioRoutingManagerGetDevices_05,
7971 nullptr, nullptr, nullptr, napi_default, nullptr},
7972 {"audioRoutingManagerGetDevices_06", nullptr, AudioRoutingManagerGetDevices_06,
7973 nullptr, nullptr, nullptr, napi_default, nullptr},
7974 {"audioRoutingManagerGetDevices_07", nullptr, AudioRoutingManagerGetDevices_07,
7975 nullptr, nullptr, nullptr, napi_default, nullptr},
7976 {"audioManagerGetManager_01", nullptr, AudioManagerGetManager_01, nullptr, nullptr, nullptr, napi_default,
7977 nullptr},
7978 {"audioManagerGetManager_02", nullptr, AudioManagerGetManager_02, nullptr, nullptr, nullptr, napi_default,
7979 nullptr},
7980 {"audioManagerGetAudioScene_01", nullptr, AudioManagerGetAudioScene_01, nullptr, nullptr, nullptr, napi_default,
7981 nullptr},
7982 {"AudioLowLatencyOut", nullptr, AudioLowLatencyOut, nullptr, nullptr, nullptr, napi_default, nullptr},
7983 {"AudioWorkGroupSet", nullptr, AudioWorkGroupSet, nullptr, nullptr, nullptr, napi_default, nullptr},
7984 {"StopAndReleaseRenderer", nullptr, StopAndReleaseRenderer, nullptr, nullptr, nullptr, napi_default, nullptr},
7985 {"GetRawFileContent", nullptr, &FileRecourceManager::GetRawFileContent, nullptr, nullptr, nullptr, napi_default,
7986 nullptr},
7987 {"StartAudioRenderer", nullptr, StartAudioRenderer, nullptr, nullptr, nullptr, napi_default, nullptr},
7988 {"getFileList", nullptr, &FileRecourceManager::GetFileList, nullptr, nullptr, nullptr, napi_default, nullptr },
7989 };
7990 napi_property_descriptor desc2[] = {
7991 {"audioManagerGetAudioScene_02", nullptr, AudioManagerGetAudioScene_02, nullptr, nullptr, nullptr, napi_default,
7992 nullptr},
7993 {"audioManagerRegisterAudioSceneChangeCallback_01", nullptr, AudioManagerRegisterAudioSceneChangeCallback_01,
7994 nullptr, nullptr, nullptr, napi_default, nullptr},
7995 {"audioManagerRegisterAudioSceneChangeCallback_02", nullptr, AudioManagerRegisterAudioSceneChangeCallback_02,
7996 nullptr, nullptr, nullptr, napi_default, nullptr},
7997 {"audioManagerRegisterAudioSceneChangeCallback_03", nullptr, AudioManagerRegisterAudioSceneChangeCallback_03,
7998 nullptr, nullptr, nullptr, napi_default, nullptr},
7999 {"audioManagerUnregisterAudioSceneChangeCallback_01", nullptr, AudioManagerUnregisterAudioSceneChangeCallback_01,
8000 nullptr, nullptr, nullptr, napi_default, nullptr},
8001 {"audioManagerUnregisterAudioSceneChangeCallback_02", nullptr, AudioManagerUnregisterAudioSceneChangeCallback_02,
8002 nullptr, nullptr, nullptr, napi_default, nullptr},
8003 {"audioManagerUnregisterAudioSceneChangeCallback_03", nullptr, AudioManagerUnregisterAudioSceneChangeCallback_03,
8004 nullptr, nullptr, nullptr, napi_default, nullptr},
8005 {"audioManagerUnregisterAudioSceneChangeCallback_04", nullptr, AudioManagerUnregisterAudioSceneChangeCallback_04,
8006 nullptr, nullptr, nullptr, napi_default, nullptr},
8007 {"audioRoutingManagerGetAvailableDevices001", nullptr, AudioRoutingManagerGetAvailableDevices001, nullptr,
8008 nullptr, nullptr, napi_default, nullptr},
8009 {"audioRoutingManagerGetPreferredOutputDevice001", nullptr, AudioRoutingManagerGetPreferredOutputDevice001,
8010 nullptr, nullptr, nullptr, napi_default, nullptr},
8011 {"audioRoutingManagerGetPreferredInputDevice001", nullptr, AudioRoutingManagerGetPreferredInputDevice001,
8012 nullptr, nullptr, nullptr, napi_default, nullptr},
8013 {"audioRoutingManagerSetMicBlockStatusCallback_001", nullptr,
8014 AudioRoutingManagerSetMicBlockStatusCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8015 {"audioRoutingManagerSetMicBlockStatusCallback_002", nullptr,
8016 AudioRoutingManagerSetMicBlockStatusCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8017 {"audioRoutingManagerRegisterDeviceChangeCallback_001", nullptr,
8018 AudioRoutingManagerRegisterDeviceChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8019 {"audioRoutingManagerRegisterDeviceChangeCallback_002", nullptr,
8020 AudioRoutingManagerRegisterDeviceChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8021 {"audioRoutingManagerRegisterDeviceChangeCallback_003", nullptr,
8022 AudioRoutingManagerRegisterDeviceChangeCallback_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8023 {"audioRoutingManagerRegisterDeviceChangeCallback_004", nullptr,
8024 AudioRoutingManagerRegisterDeviceChangeCallback_004, nullptr, nullptr, nullptr, napi_default, nullptr},
8025 {"audioRoutingManagerRegisterDeviceChangeCallback_005", nullptr,
8026 AudioRoutingManagerRegisterDeviceChangeCallback_005, nullptr, nullptr, nullptr, napi_default, nullptr},
8027 {"audioRoutingManagerRegisterDeviceChangeCallback_006", nullptr,
8028 AudioRoutingManagerRegisterDeviceChangeCallback_006, nullptr, nullptr, nullptr, napi_default, nullptr},
8029 {"audioRoutingManagerRegisterDeviceChangeCallback_007", nullptr,
8030 AudioRoutingManagerRegisterDeviceChangeCallback_007, nullptr, nullptr, nullptr, napi_default, nullptr},
8031 {"audioRoutingManagerRegisterDeviceChangeCallback_008", nullptr,
8032 AudioRoutingManagerRegisterDeviceChangeCallback_008, nullptr, nullptr, nullptr, napi_default, nullptr},
8033 {"audioRoutingManagerUnregisterDeviceChangeCallback_001", nullptr,
8034 AudioRoutingManagerUnregisterDeviceChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8035 {"audioRoutingManagerUnregisterDeviceChangeCallback_002", nullptr,
8036 AudioRoutingManagerUnregisterDeviceChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8037 {"audioRoutingManagerUnregisterDeviceChangeCallback_003", nullptr,
8038 AudioRoutingManagerUnregisterDeviceChangeCallback_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8039 {"audioRoutingManagerReleaseDevices_001", nullptr, AudioRoutingManagerReleaseDevices_001,
8040 nullptr, nullptr, nullptr, napi_default, nullptr},
8041 {"audioRoutingManagerReleaseDevices_002", nullptr, AudioRoutingManagerReleaseDevices_002,
8042 nullptr, nullptr, nullptr, napi_default, nullptr},
8043 {"audioAudioDeviceDescriptorGetDeviceType_001", nullptr, AudioAudioDeviceDescriptorGetDeviceType_001,
8044 nullptr, nullptr, nullptr, napi_default, nullptr},
8045 {"audioAudioDeviceDescriptorGetDeviceType_002", nullptr, AudioAudioDeviceDescriptorGetDeviceType_002,
8046 nullptr, nullptr, nullptr, napi_default, nullptr},
8047 {"audioAudioDeviceDescriptorGetDeviceType_003", nullptr, AudioAudioDeviceDescriptorGetDeviceType_003,
8048 nullptr, nullptr, nullptr, napi_default, nullptr},
8049 {"audioAudioDeviceDescriptorGetDeviceRole_001", nullptr, AudioAudioDeviceDescriptorGetDeviceRole_001,
8050 nullptr, nullptr, nullptr, napi_default, nullptr},
8051 {"audioAudioDeviceDescriptorGetDeviceRole_002", nullptr, AudioAudioDeviceDescriptorGetDeviceRole_002,
8052 nullptr, nullptr, nullptr, napi_default, nullptr},
8053 {"audioAudioDeviceDescriptorGetDeviceRole_003", nullptr, AudioAudioDeviceDescriptorGetDeviceRole_003,
8054 nullptr, nullptr, nullptr, napi_default, nullptr},
8055 {"audioAudioDeviceDescriptorGetDeviceId_001", nullptr, AudioAudioDeviceDescriptorGetDeviceId_001,
8056 nullptr, nullptr, nullptr, napi_default, nullptr},
8057 {"audioAudioDeviceDescriptorGetDeviceId_002", nullptr, AudioAudioDeviceDescriptorGetDeviceId_002,
8058 nullptr, nullptr, nullptr, napi_default, nullptr},
8059 {"audioAudioDeviceDescriptorGetDeviceId_003", nullptr, AudioAudioDeviceDescriptorGetDeviceId_003,
8060 nullptr, nullptr, nullptr, napi_default, nullptr},
8061 {"audioAudioDeviceDescriptorGetDeviceName_001", nullptr, AudioAudioDeviceDescriptorGetDeviceName_001,
8062 nullptr, nullptr, nullptr, napi_default, nullptr},
8063 {"audioAudioDeviceDescriptorGetDeviceName_002", nullptr, AudioAudioDeviceDescriptorGetDeviceName_002,
8064 nullptr, nullptr, nullptr, napi_default, nullptr},
8065 {"audioAudioDeviceDescriptorGetDeviceName_003", nullptr, AudioAudioDeviceDescriptorGetDeviceName_003,
8066 nullptr, nullptr, nullptr, napi_default, nullptr},
8067 {"audioAudioDeviceDescriptorGetDeviceAddress_001", nullptr, AudioAudioDeviceDescriptorGetDeviceAddress_001,
8068 nullptr, nullptr, nullptr, napi_default, nullptr},
8069 {"audioAudioDeviceDescriptorGetDeviceAddress_002", nullptr, AudioAudioDeviceDescriptorGetDeviceAddress_002,
8070 nullptr, nullptr, nullptr, napi_default, nullptr},
8071 {"audioAudioDeviceDescriptorGetDeviceAddress_003", nullptr, AudioAudioDeviceDescriptorGetDeviceAddress_003,
8072 nullptr, nullptr, nullptr, napi_default, nullptr},
8073 {"audioAudioDeviceDescriptorGetDeviceSampleRates_001", nullptr,
8074 AudioAudioDeviceDescriptorGetDeviceSampleRates_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8075 {"audioAudioDeviceDescriptorGetDeviceSampleRates_002", nullptr,
8076 AudioAudioDeviceDescriptorGetDeviceSampleRates_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8077 {"audioAudioDeviceDescriptorGetDeviceSampleRates_003", nullptr,
8078 AudioAudioDeviceDescriptorGetDeviceSampleRates_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8079 {"audioAudioDeviceDescriptorGetDeviceSampleRates_004", nullptr,
8080 AudioAudioDeviceDescriptorGetDeviceSampleRates_004, nullptr, nullptr, nullptr, napi_default, nullptr},
8081 {"audioAudioDeviceDescriptorGetDeviceChannelCounts_001", nullptr,
8082 AudioAudioDeviceDescriptorGetDeviceChannelCounts_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8083 {"audioAudioDeviceDescriptorGetDeviceChannelCounts_002", nullptr,
8084 AudioAudioDeviceDescriptorGetDeviceChannelCounts_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8085 {"audioAudioDeviceDescriptorGetDeviceChannelCounts_003", nullptr,
8086 AudioAudioDeviceDescriptorGetDeviceChannelCounts_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8087 {"audioAudioDeviceDescriptorGetDeviceChannelCounts_004", nullptr,
8088 AudioAudioDeviceDescriptorGetDeviceChannelCounts_004, nullptr, nullptr, nullptr, napi_default, nullptr},
8089 {"audioAudioDeviceDescriptorGetDeviceDisplayName_001", nullptr,
8090 AudioAudioDeviceDescriptorGetDeviceDisplayName_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8091 {"audioAudioDeviceDescriptorGetDeviceDisplayName_002", nullptr,
8092 AudioAudioDeviceDescriptorGetDeviceDisplayName_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8093 {"audioAudioDeviceDescriptorGetDeviceDisplayName_003", nullptr,
8094 AudioAudioDeviceDescriptorGetDeviceDisplayName_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8095 {"audioAudioDeviceDescriptorGetDeviceEncodingTypes_001", nullptr,
8096 AudioAudioDeviceDescriptorGetDeviceEncodingTypes_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8097 {"audioAudioDeviceDescriptorGetDeviceEncodingTypes_002", nullptr,
8098 AudioAudioDeviceDescriptorGetDeviceEncodingTypes_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8099 {"audioAudioDeviceDescriptorGetDeviceEncodingTypes_003", nullptr,
8100 AudioAudioDeviceDescriptorGetDeviceEncodingTypes_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8101 {"audioAudioDeviceDescriptorGetDeviceEncodingTypes_004", nullptr,
8102 AudioAudioDeviceDescriptorGetDeviceEncodingTypes_004, nullptr, nullptr, nullptr, napi_default, nullptr},
8103 {"audioAudioInternalRecordingSuccess01", nullptr,
8104 AudioAudioInternalRecordingSuccess01, nullptr, nullptr, nullptr, napi_default, nullptr},
8105 {"audioAudioInternalRecordingSuccess02", nullptr,
8106 AudioAudioInternalRecordingSuccess02, nullptr, nullptr, nullptr, napi_default, nullptr},
8107 {"audioAudioInternalRecordingFalse", nullptr,
8108 AudioAudioInternalRecordingFalse, nullptr, nullptr, nullptr, napi_default, nullptr},
8109 {"audioStreamBuilderSetRendererWriteDataCallback_001", nullptr,
8110 AudioStreamBuilderSetRendererWriteDataCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8111 {"audioStreamBuilderSetRendererWriteDataCallback_002", nullptr,
8112 AudioStreamBuilderSetRendererWriteDataCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8113 {"audioStreamBuilderSetRendererInterruptCallback_001", nullptr,
8114 AudioStreamBuilderSetRendererInterruptCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8115 {"audioStreamBuilderSetRendererInterruptCallback_002", nullptr,
8116 AudioStreamBuilderSetRendererInterruptCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8117 {"audioStreamBuilderSetRendererErrorCallback_001", nullptr,
8118 AudioStreamBuilderSetRendererErrorCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8119 {"audioStreamBuilderSetRendererErrorCallback_002", nullptr,
8120 AudioStreamBuilderSetRendererErrorCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8121 {"audioCapturerGetOverflowCount_001", nullptr,
8122 audioCapturerGetOverflowCount_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8123 {"AudioSessionManagerStrategy_001", nullptr,
8124 AudioSessionManagerStrategy_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8125 {"AudioSessionManagerStrategy_002", nullptr,
8126 AudioSessionManagerStrategy_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8127 {"AudioSessionManagerStrategy_003", nullptr,
8128 AudioSessionManagerStrategy_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8129 {"AudioSessionManagerStrategy_004", nullptr,
8130 AudioSessionManagerStrategy_004, nullptr, nullptr, nullptr, napi_default, nullptr},
8131 {"AudioSessionManagerStrategyError_001", nullptr,
8132 AudioSessionManagerStrategyError_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8133 {"AudioSessionManagerActivatedError_001", nullptr,
8134 AudioSessionManagerActivatedError_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8135 {"AudioSessionManagerStopError_001", nullptr,
8136 AudioSessionManagerStopError_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8137 {"AudioSessionManagerStopError_002", nullptr,
8138 AudioSessionManagerStopError_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8139 {"AudioSessionManagerRegisterError_001", nullptr,
8140 AudioSessionManagerRegisterError_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8141 {"AudioSessionManagerRegisterError_002", nullptr,
8142 AudioSessionManagerRegisterError_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8143 {"AudioSessionManagerUnregisterError_001", nullptr,
8144 AudioSessionManagerUnregisterError_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8145 {"AudioSessionManagerUnregisterError_002", nullptr,
8146 AudioSessionManagerUnregisterError_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8147 {"AudioSessionManagerReason_001", nullptr,
8148 AudioSessionManagerReason_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8149 {"AudioSessionManagerReason_002", nullptr,
8150 AudioSessionManagerReason_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8151 {"AudioSessionManagerSetScene_001", nullptr,
8152 AudioSessionManagerSetScene_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8153 {"AudioSessionManagerRegisterStateChangeCallback_001", nullptr,
8154 AudioSessionManagerRegisterStateChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8155 {"AudioSessionManagerRegisterStateChangeCallback_002", nullptr,
8156 AudioSessionManagerRegisterStateChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8157 {"AudioSessionManagerRegisterStateChangeCallback_003", nullptr,
8158 AudioSessionManagerRegisterStateChangeCallback_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8159 {"AudioSessionManagerSetDefaultOutputDevice_001", nullptr,
8160 AudioSessionManagerSetDefaultOutputDevice_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8161 {"AudioSessionManagerSetDefaultOutputDevice_002", nullptr,
8162 AudioSessionManagerSetDefaultOutputDevice_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8163 {"AudioSessionManagerGetDefaultOutputDevice_001", nullptr,
8164 AudioSessionManagerGetDefaultOutputDevice_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8165 {"AudioSessionManagerRegisterDeviceCallback_001", nullptr,
8166 AudioSessionManagerRegisterDeviceCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8167 {"AudioSessionManagerRegisterDeviceCallback_002", nullptr,
8168 AudioSessionManagerRegisterDeviceCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8169 {"AudioSessionManagerRegisterDeviceCallback_003", nullptr,
8170 AudioSessionManagerRegisterDeviceCallback_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8171 {"AudioSessionManagerReleaseDevices_001", nullptr,
8172 AudioSessionManagerReleaseDevices_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8173 {"AudioSessionManagerReleaseDevices_002", nullptr,
8174 AudioSessionManagerReleaseDevices_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8175 {"audioRendererSetDefaultOutputDevice_01", nullptr,
8176 AudioRendererSetDefaultOutputDevice_01, nullptr, nullptr, nullptr, napi_default, nullptr},
8177 {"audioRendererSetDefaultOutputDevice_02", nullptr,
8178 AudioRendererSetDefaultOutputDevice_02, nullptr, nullptr, nullptr, napi_default, nullptr},
8179 {"audioRendererSetDefaultOutputDevice_03", nullptr,
8180 AudioRendererSetDefaultOutputDevice_03, nullptr, nullptr, nullptr, napi_default, nullptr},
8181 {"audioCapturerInit", nullptr, AudioCapturerInit, nullptr, nullptr, nullptr, napi_default, nullptr},
8182 {"audioCapturerStart", nullptr, AudioCapturerStart, nullptr, nullptr, nullptr, napi_default, nullptr},
8183 {"audioCapturerStop", nullptr, AudioCapturerStop, nullptr, nullptr, nullptr, napi_default, nullptr},
8184 {"audioCapturerRelease", nullptr, AudioCapturerRelease, nullptr, nullptr, nullptr, napi_default, nullptr},
8185 {"audioRendererInit", nullptr, AudioRendererInit, nullptr, nullptr, nullptr, napi_default, nullptr},
8186 {"audioRendererStart", nullptr, AudioRendererStart, nullptr, nullptr, nullptr, napi_default, nullptr},
8187 {"audioRendererStop", nullptr, AudioRendererStop, nullptr, nullptr, nullptr, napi_default, nullptr},
8188 {"audioRendererRelease", nullptr, AudioRendererRelease, nullptr, nullptr, nullptr, napi_default, nullptr},
8189 {"AudioCapturerSetWillMuteWhenInterrupted", nullptr,
8190 AudioCapturerSetWillMuteWhenInterrupted, nullptr, nullptr, nullptr, napi_default, nullptr}
8191 };
8192 napi_property_descriptor desc3[] = {
8193 {"audioManagerGetAudioVolumeManager_001", nullptr, AudioManagerGetAudioVolumeManager_001,
8194 nullptr, nullptr, nullptr, napi_default, nullptr},
8195 {"audioManagerGetAudioVolumeManager_002", nullptr, AudioManagerGetAudioVolumeManager_002,
8196 nullptr, nullptr, nullptr, napi_default, nullptr},
8197 {"audioVolumeManagerGetMaxVolumeByUsage_001", nullptr, AudioVolumeManagerGetMaxVolumeByUsage_001,
8198 nullptr, nullptr, nullptr, napi_default, nullptr},
8199 {"audioVolumeManagerGetMaxVolumeByUsage_002", nullptr, AudioVolumeManagerGetMaxVolumeByUsage_002,
8200 nullptr, nullptr, nullptr, napi_default, nullptr},
8201 {"audioVolumeManagerGetMaxVolumeByUsage_003", nullptr, AudioVolumeManagerGetMaxVolumeByUsage_003,
8202 nullptr, nullptr, nullptr, napi_default, nullptr},
8203 {"audioVolumeManagerGetMaxVolumeByUsage_004", nullptr, AudioVolumeManagerGetMaxVolumeByUsage_004,
8204 nullptr, nullptr, nullptr, napi_default, nullptr},
8205 {"audioVolumeManagerGetMinVolumeByUsage_001", nullptr, AudioVolumeManagerGetMinVolumeByUsage_001,
8206 nullptr, nullptr, nullptr, napi_default, nullptr},
8207 {"audioVolumeManagerGetMinVolumeByUsage_002", nullptr, AudioVolumeManagerGetMinVolumeByUsage_002,
8208 nullptr, nullptr, nullptr, napi_default, nullptr},
8209 {"audioVolumeManagerGetMinVolumeByUsage_003", nullptr, AudioVolumeManagerGetMinVolumeByUsage_003,
8210 nullptr, nullptr, nullptr, napi_default, nullptr},
8211 {"audioVolumeManagerGetMinVolumeByUsage_004", nullptr, AudioVolumeManagerGetMinVolumeByUsage_004,
8212 nullptr, nullptr, nullptr, napi_default, nullptr},
8213 {"audioVolumeManagerGetVolumeByUsage_001", nullptr, AudioVolumeManagerGetVolumeByUsage_001,
8214 nullptr, nullptr, nullptr, napi_default, nullptr},
8215 {"audioVolumeManagerGetVolumeByUsage_002", nullptr, AudioVolumeManagerGetVolumeByUsage_002,
8216 nullptr, nullptr, nullptr, napi_default, nullptr},
8217 {"audioVolumeManagerGetVolumeByUsage_003", nullptr, AudioVolumeManagerGetVolumeByUsage_003,
8218 nullptr, nullptr, nullptr, napi_default, nullptr},
8219 {"audioVolumeManagerGetVolumeByUsage_004", nullptr, AudioVolumeManagerGetVolumeByUsage_004,
8220 nullptr, nullptr, nullptr, napi_default, nullptr},
8221 {"audioVolumeManagerIsMuteByUsage_001", nullptr, AudioVolumeManagerIsMuteByUsage_001,
8222 nullptr, nullptr, nullptr, napi_default, nullptr},
8223 {"audioVolumeManagerIsMuteByUsage_002", nullptr, AudioVolumeManagerIsMuteByUsage_002,
8224 nullptr, nullptr, nullptr, napi_default, nullptr},
8225 {"audioVolumeManagerIsMuteByUsage_003", nullptr, AudioVolumeManagerIsMuteByUsage_003,
8226 nullptr, nullptr, nullptr, napi_default, nullptr},
8227 {"audioVolumeManagerIsMuteByUsage_004", nullptr, AudioVolumeManagerIsMuteByUsage_004,
8228 nullptr, nullptr, nullptr, napi_default, nullptr},
8229 {"audioVolumeManagerRegisterStreamVolumeChangeCallback_001", nullptr,
8230 AudioVolumeManagerRegisterStreamVolumeChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8231 {"audioVolumeManagerRegisterStreamVolumeChangeCallback_002", nullptr,
8232 AudioVolumeManagerRegisterStreamVolumeChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8233 {"audioVolumeManagerRegisterStreamVolumeChangeCallback_003", nullptr,
8234 AudioVolumeManagerRegisterStreamVolumeChangeCallback_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8235 {"audioVolumeManagerRegisterStreamVolumeChangeCallback_004", nullptr,
8236 AudioVolumeManagerRegisterStreamVolumeChangeCallback_004, nullptr, nullptr, nullptr, napi_default, nullptr},
8237 {"audioVolumeManagerRegisterStreamVolumeChangeCallback_005", nullptr,
8238 AudioVolumeManagerRegisterStreamVolumeChangeCallback_005, nullptr, nullptr, nullptr, napi_default, nullptr},
8239 {"audioVolumeManagerRegisterStreamVolumeChangeCallback_006", nullptr,
8240 AudioVolumeManagerRegisterStreamVolumeChangeCallback_006, nullptr, nullptr, nullptr, napi_default, nullptr},
8241 {"audioVolumeManagerRegisterStreamVolumeChangeCallback_007", nullptr,
8242 AudioVolumeManagerRegisterStreamVolumeChangeCallback_007, nullptr, nullptr, nullptr, napi_default, nullptr},
8243 {"audioVolumeManagerRegisterStreamVolumeChangeCallback_008", nullptr,
8244 AudioVolumeManagerRegisterStreamVolumeChangeCallback_008, nullptr, nullptr, nullptr, napi_default, nullptr},
8245 {"audioVolumeManagerUnregisterStreamVolumeChangeCallback_001", nullptr,
8246 AudioVolumeManagerUnregisterStreamVolumeChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8247 {"audioVolumeManagerUnregisterStreamVolumeChangeCallback_002", nullptr,
8248 AudioVolumeManagerUnregisterStreamVolumeChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8249 {"audioVolumeManagerUnregisterStreamVolumeChangeCallback_003", nullptr,
8250 AudioVolumeManagerUnregisterStreamVolumeChangeCallback_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8251 {"audioVolumeManagerUnregisterStreamVolumeChangeCallback_004", nullptr,
8252 AudioVolumeManagerUnregisterStreamVolumeChangeCallback_004, nullptr, nullptr, nullptr, napi_default, nullptr},
8253 {"audioVolumeManagerGetRingerMode_001", nullptr, AudioVolumeManagerGetRingerMode_001,
8254 nullptr, nullptr, nullptr, napi_default, nullptr},
8255 {"audioVolumeManagerGetRingerMode_002", nullptr, AudioVolumeManagerGetRingerMode_002,
8256 nullptr, nullptr, nullptr, napi_default, nullptr},
8257 {"audioVolumeManagerGetRingerMode_003", nullptr, AudioVolumeManagerGetRingerMode_003,
8258 nullptr, nullptr, nullptr, napi_default, nullptr},
8259 {"audioVolumeManagerRegisterRingerModeChangeCallback_001", nullptr,
8260 AudioVolumeManagerRegisterRingerModeChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8261 {"audioVolumeManagerRegisterRingerModeChangeCallback_002", nullptr,
8262 AudioVolumeManagerRegisterRingerModeChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8263 {"audioVolumeManagerRegisterRingerModeChangeCallback_003", nullptr,
8264 AudioVolumeManagerRegisterRingerModeChangeCallback_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8265 {"audioVolumeManagerUnregisterRingerModeChangeCallback_001", nullptr,
8266 AudioVolumeManagerUnregisterRingerModeChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8267 {"audioVolumeManagerUnregisterRingerModeChangeCallback_002", nullptr,
8268 AudioVolumeManagerUnregisterRingerModeChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8269 {"audioVolumeManagerUnregisterRingerModeChangeCallback_003", nullptr,
8270 AudioVolumeManagerUnregisterRingerModeChangeCallback_003, nullptr, nullptr, nullptr, napi_default, nullptr},
8271 {"audioVolumeManagerUnregisterRingerModeChangeCallback_004", nullptr,
8272 AudioVolumeManagerUnregisterRingerModeChangeCallback_004, nullptr, nullptr, nullptr, napi_default, nullptr},
8273 {"audioCaptureGetFastStatus_001", nullptr, AudioCaptureGetFastStatus_001,
8274 nullptr, nullptr, nullptr, napi_default, nullptr},
8275 {"audioCaptureGetFastStatus_002", nullptr, AudioCaptureGetFastStatus_002,
8276 nullptr, nullptr, nullptr, napi_default, nullptr},
8277 {"audioRendererGetFastStatus_001", nullptr, AudioRendererGetFastStatus_001,
8278 nullptr, nullptr, nullptr, napi_default, nullptr},
8279 {"audioRendererGetFastStatus_002", nullptr, AudioRendererGetFastStatus_002,
8280 nullptr, nullptr, nullptr, napi_default, nullptr},
8281 {"audioStreamManagerIsFastPlaybackSupported_001", nullptr, AudioStreamManagerIsFastPlaybackSupported_001,
8282 nullptr, nullptr, nullptr, napi_default, nullptr},
8283 {"audioStreamManagerIsFastRecordingSupported_001", nullptr, AudioStreamManagerIsFastRecordingSupported_001,
8284 nullptr, nullptr, nullptr, napi_default, nullptr},
8285 {"audioStreamBuilderSetCapturerFastStatusChangeCallback_001", nullptr,
8286 AudioStreamBuilderSetCapturerFastStatusChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8287 {"audioStreamBuilderSetCapturerFastStatusChangeCallback_002", nullptr,
8288 AudioStreamBuilderSetCapturerFastStatusChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8289 {"audioStreamBuilderSetRendererFastStatusChangeCallback_001", nullptr,
8290 AudioStreamBuilderSetRendererFastStatusChangeCallback_001, nullptr, nullptr, nullptr, napi_default, nullptr},
8291 {"audioStreamBuilderSetRendererFastStatusChangeCallback_002", nullptr,
8292 AudioStreamBuilderSetRendererFastStatusChangeCallback_002, nullptr, nullptr, nullptr, napi_default, nullptr},
8293 };
Init(napi_env env,napi_value exports)8294 static napi_value Init(napi_env env, napi_value exports)
8295 {
8296 size_t mergedLength = sizeof(desc1) / sizeof(desc1[0]) +
8297 sizeof(desc2) / sizeof(desc2[0]) + sizeof(desc3) / sizeof(desc3[0]);
8298 napi_property_descriptor mergedArray[mergedLength];
8299 for (size_t i = 0; i < sizeof(desc1) / sizeof(desc1[0]); ++i) {
8300 mergedArray[i] = desc1[i];
8301 }
8302 for (size_t i = 0; i < sizeof(desc2) / sizeof(desc2[0]); ++i) {
8303 mergedArray[sizeof(desc1) / sizeof(desc1[0]) + i] = desc2[i];
8304 }
8305 for (size_t i = 0; i < sizeof(desc3) / sizeof(desc3[0]); ++i) {
8306 mergedArray[sizeof(desc1) / sizeof(desc1[0]) + sizeof(desc2) / sizeof(desc2[0]) + i] = desc3[i];
8307 }
8308 napi_define_properties(env, exports, mergedLength, mergedArray);
8309 return exports;
8310 }
8311 EXTERN_C_END
8312
8313 /*
8314
8315 * module define
8316 */
8317 static napi_module g_module = {
8318 .nm_version = 1,
8319 .nm_flags = 0,
8320 .nm_filename = nullptr,
8321 .nm_register_func = Init,
8322 .nm_modname = "entry",
8323 .nm_priv = ((void *)0),
8324 .reserved = {0}};
8325
8326 /*
8327 * module register
8328 */
RegisterEntryModule(void)8329 extern "C" __attribute__((constructor)) void RegisterEntryModule(void)
8330 {
8331 napi_module_register(&g_module);
8332 }