• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2022 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
16import { paramMock } from "../utils"
17
18export function mockMultimediaAudio() {
19  const interruptAction = {
20    actionType: audio.InterruptActionType,
21    type: audio.InterruptType,
22    hint: audio.InterruptHint,
23    activated: "[PC Preview] unknow activated",
24  }
25  const AudioDeviceDescriptor = {
26    deviceRole: audio.DeviceRole,
27    deviceType: audio.DeviceType,
28    id: "[PC Preview] unknow id",
29    name: "[PC Preview] unknow name",
30    address: "[PC Preview] unknow address",
31    sampleRates: [paramMock.paramNumberMock],
32    channelCounts: [paramMock.paramNumberMock],
33    channelMasks: [paramMock.paramNumberMock],
34    networkId: "[PC Preview] unknow networkId",
35    interruptGroupId: "[PC Preview] unknow interruptGroupId",
36    volumeGroupId: "[PC Preview] unknow volumeGroupId",
37  }
38  const DeviceChangeAction = {
39    type: audio.DeviceChangeType,
40    deviceDescriptors: AudioDeviceDescriptor,
41  }
42  const AudioRingMode = audio.AudioRingMode
43  const VolumeEvent = {
44    volumeType: audio.AudioVolumeType,
45    volume: "[PC Preview] unknow volume",
46    updateUi: "[PC Preview] unknow updateUi",
47    volumeGroupId: "[PC Preview] unknow volumeGroupId",
48    networkId: "[PC Preview] unknow networkId",
49  }
50  const AudioScene = '[PC Preview] unknow AudioScene'
51  const AudioStreamInfo = {
52    samplingRate: audio.AudioSamplingRate,
53    channels: audio.AudioChannel,
54    sampleFormat: audio.AudioSampleFormat,
55    encodingType: audio.AudioEncodingType,
56  }
57  const AudioRendererInfo = {
58    content: audio.ContentType,
59    usage: audio.StreamUsage,
60    rendererFlags: "[PC Preview] unknow rendererFlags",
61  }
62  const AudioRendererOptions = {
63    streamInfo: AudioStreamInfo,
64    rendererInfo: AudioRendererInfo,
65  }
66  const AudioCapturerInfo = {
67    source: audio.SourceType,
68    capturerFlags: "[PC Preview] unknow capturerFlags",
69  }
70  const AudioCapturerOptions = {
71    streamInfo: AudioStreamInfo,
72    capturerInfo: AudioCapturerInfo,
73  }
74  const AudioRendererRate = audio.AudioRendererRate
75  const InterruptEvent = {
76    eventType: audio.InterruptType,
77    forceType: audio.InterruptForceType,
78    hintType: audio.InterruptHint,
79  }
80  const AudioInterrupt = {
81    streamUsage: audio.StreamUsage,
82    contentType: audio.ContentType,
83    pauseWhenDucked: "[PC Preview] unknow pauseWhenDucked",
84  }
85  const AudioRendererChangeInfo = {
86    streamId: "[PC Preview] unknow streamId",
87    clientUid: "[PC Preview] unknow clientUid",
88    rendererInfo: AudioRendererInfo,
89    rendererState: audio.AudioState,
90    deviceDescriptors: [AudioDeviceDescriptor],
91  }
92  const AudioCapturerChangeInfo = {
93    streamId: "[PC Preview] unknow streamId",
94    clientUid: "[PC Preview] unknow clientUid",
95    capturerInfo: AudioRendererInfo,
96    capturerState: audio.AudioState,
97    deviceDescriptors: [AudioDeviceDescriptor],
98  }
99  const AudioRendererFilter = {
100    uid: "[PC Preview] unknow uid",
101    rendererInfo: AudioRendererInfo,
102    rendererId: "[PC Preview] unknow rendererId",
103  }
104  const VolumeGroupInfo = {
105    networkId: "[PC Preview] unknow networkId",
106    groupId: "[PC Preview] unknow groupId",
107    mappingId: "[PC Preview] unknow mappingId",
108    groupName: "[PC Preview] unknow groupName",
109    type: audio.ConnectType,
110  }
111  const AudioCapturer = {
112    state: "[PC Preview] unknow state",
113    getCapturerInfo: function (...args) {
114      console.warn("AudioCapturer.getCapturerInfo interface mocked in the Previewer." +
115      " How this interface works on the Previewer may be different from that on a real device.")
116      const len = args.length
117      if (typeof args[len - 1] === 'function') {
118        args[len - 1].call(this, paramMock.businessErrorMock, AudioCapturerInfo);
119      } else {
120        return new Promise((resolve, reject) => {
121          resolve(AudioCapturerInfo);
122        })
123      }
124    },
125    getStreamInfo: function (...args) {
126      console.warn("AudioCapturer.getStreamInfo interface mocked in the Previewer." +
127        " How this interface works on the Previewer may be different from that on a real device.")
128      const len = args.length
129      if (typeof args[len - 1] === 'function') {
130        args[len - 1].call(this, paramMock.businessErrorMock, AudioStreamInfo);
131      } else {
132        return new Promise((resolve, reject) => {
133          resolve(AudioStreamInfo);
134        })
135      }
136    },
137    start: function (...args) {
138      console.warn("AudioCapturer.start interface mocked in the Previewer." +
139      " How this interface works on the Previewer may be different from that on a real device.")
140      const len = args.length
141      if (typeof args[len - 1] === 'function') {
142        args[len - 1].call(this, paramMock.businessErrorMock);
143      } else {
144        return new Promise((resolve, reject) => {
145          resolve();
146        })
147      }
148    },
149    read: function (...args) {
150      console.warn("AudioCapturer.read interface mocked in the Previewer." +
151      " How this interface works on the Previewer may be different from that on a real device.")
152      const len = args.length
153      if (typeof args[len - 1] === 'function') {
154        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramArrayMock);
155      } else {
156        return new Promise((resolve, reject) => {
157          resolve(paramMock.paramArrayMock);
158        })
159      }
160    },
161    getAudioTime: function (...args) {
162      console.warn("AudioCapturer.getAudioTime interface mocked in the Previewer." +
163      " How this interface works on the Previewer may be different from that on a real device.")
164      const len = args.length
165      if (typeof args[len - 1] === 'function') {
166        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
167      } else {
168        return new Promise((resolve, reject) => {
169          resolve(paramMock.paramNumberMock);
170        })
171      }
172    },
173    stop: function (...args) {
174      console.warn("AudioCapturer.stop interface mocked in the Previewer." +
175      " How this interface works on the Previewer may be different from that on a real device.")
176      const len = args.length
177      if (typeof args[len - 1] === 'function') {
178        args[len - 1].call(this, paramMock.businessErrorMock);
179      } else {
180        return new Promise((resolve, reject) => {
181          resolve();
182        })
183      }
184    },
185    release: function (...args) {
186      console.warn("AudioCapturer.release interface mocked in the Previewer." +
187      " How this interface works on the Previewer may be different from that on a real device.")
188      const len = args.length
189      if (typeof args[len - 1] === 'function') {
190        args[len - 1].call(this, paramMock.businessErrorMock);
191      } else {
192        return new Promise((resolve, reject) => {
193          resolve();
194        })
195      }
196    },
197    getBufferSize: function (...args) {
198      console.warn("AudioCapturer.getBufferSize interface mocked in the Previewer." +
199      " How this interface works on the Previewer may be different from that on a real device.")
200      const len = args.length
201      if (typeof args[len - 1] === 'function') {
202        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
203      } else {
204        return new Promise((resolve, reject) => {
205          resolve(paramMock.paramNumberMock);
206        })
207      }
208    },
209    on: function (...args) {
210      console.warn("AudioCapturer.on interface mocked in the Previewer." +
211        " How this interface works on the Previewer may be different from that on a real device.")
212    },
213    off: function (...args) {
214      console.warn("AudioCapturer.off interface mocked in the Previewer." +
215        " How this interface works on the Previewer may be different from that on a real device.")
216    },
217  }
218  const AudioRenderer = {
219    state: "[PC Preview] unknow state",
220    getRendererInfo: function (...args) {
221      console.warn("AudioRenderer.getRendererInfo interface mocked in the Previewer." +
222        " How this interface works on the Previewer may be different from that on a real device.")
223      const len = args.length
224      if (typeof args[len - 1] === 'function') {
225        args[len - 1].call(this, paramMock.businessErrorMock, AudioRendererInfo);
226      } else {
227        return new Promise((resolve, reject) => {
228          resolve(AudioRendererInfo);
229        })
230      }
231    },
232    getStreamInfo: function (...args) {
233      console.warn("AudioRenderer.getStreamInfo interface mocked in the Previewer." +
234        " How this interface works on the Previewer may be different from that on a real device.")
235      const len = args.length
236      if (typeof args[len - 1] === 'function') {
237        args[len - 1].call(this, paramMock.businessErrorMock, AudioStreamInfo);
238      } else {
239        return new Promise((resolve, reject) => {
240          resolve(AudioStreamInfo);
241        })
242      }
243    },
244    start: function (...args) {
245      console.warn("AudioRenderer.start interface mocked in the Previewer." +
246        " How this interface works on the Previewer may be different from that on a real device.")
247      const len = args.length
248      if (typeof args[len - 1] === 'function') {
249        args[len - 1].call(this, paramMock.businessErrorMock);
250      } else {
251        return new Promise((resolve, reject) => {
252          resolve();
253        })
254      }
255    },
256    write: function (...args) {
257      console.warn("AudioRenderer.write interface mocked in the Previewer." +
258        " How this interface works on the Previewer may be different from that on a real device.")
259      const len = args.length
260      if (typeof args[len - 1] === 'function') {
261        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
262      } else {
263        return new Promise((resolve, reject) => {
264          resolve(paramMock.paramNumberMock);
265        })
266      }
267    },
268    getAudioTime: function (...args) {
269      console.warn("AudioRenderer.getAudioTime interface mocked in the Previewer." +
270        " How this interface works on the Previewer may be different from that on a real device.")
271      const len = args.length
272      if (typeof args[len - 1] === 'function') {
273        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
274      } else {
275        return new Promise((resolve, reject) => {
276          resolve(paramMock.paramNumberMock);
277        })
278      }
279    },
280    drain: function (...args) {
281      console.warn("AudioRenderer.drain interface mocked in the Previewer." +
282        " How this interface works on the Previewer may be different from that on a real device.")
283      const len = args.length
284      if (typeof args[len - 1] === 'function') {
285        args[len - 1].call(this, paramMock.businessErrorMock);
286      } else {
287        return new Promise((resolve, reject) => {
288          resolve();
289        })
290      }
291    },
292    pause: function (...args) {
293      console.warn("AudioRenderer.pause interface mocked in the Previewer." +
294        " How this interface works on the Previewer may be different from that on a real device.")
295      const len = args.length
296      if (typeof args[len - 1] === 'function') {
297        args[len - 1].call(this, paramMock.businessErrorMock);
298      } else {
299        return new Promise((resolve, reject) => {
300          resolve();
301        })
302      }
303    },
304    stop: function (...args) {
305      console.warn("AudioRenderer.stop interface mocked in the Previewer." +
306        " How this interface works on the Previewer may be different from that on a real device.")
307      const len = args.length
308      if (typeof args[len - 1] === 'function') {
309        args[len - 1].call(this, paramMock.businessErrorMock);
310      } else {
311        return new Promise((resolve, reject) => {
312          resolve();
313        })
314      }
315    },
316    release: function (...args) {
317      console.warn("AudioRenderer.release interface mocked in the Previewer." +
318        " How this interface works on the Previewer may be different from that on a real device.")
319      const len = args.length
320      if (typeof args[len - 1] === 'function') {
321        args[len - 1].call(this, paramMock.businessErrorMock);
322      } else {
323        return new Promise((resolve, reject) => {
324          resolve();
325        })
326      }
327    },
328    getBufferSize: function (...args) {
329      console.warn("AudioRenderer.getBufferSize interface mocked in the Previewer." +
330        " How this interface works on the Previewer may be different from that on a real device.")
331      const len = args.length
332      if (typeof args[len - 1] === 'function') {
333        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
334      } else {
335        return new Promise((resolve, reject) => {
336          resolve(paramMock.paramNumberMock);
337        })
338      }
339    },
340    setRenderRate: function (...args) {
341      console.warn("AudioRenderer.setRenderRate interface mocked in the Previewer." +
342        " How this interface works on the Previewer may be different from that on a real device.")
343      const len = args.length
344      if (typeof args[len - 1] === 'function') {
345        args[len - 1].call(this, paramMock.businessErrorMock);
346      } else {
347        return new Promise((resolve, reject) => {
348          resolve();
349        })
350      }
351    },
352    getRenderRate: function (...args) {
353      console.warn("AudioRenderer.getRenderRate interface mocked in the Previewer." +
354        " How this interface works on the Previewer may be different from that on a real device.")
355      const len = args.length
356      if (typeof args[len - 1] === 'function') {
357        args[len - 1].call(this, paramMock.businessErrorMock, AudioRendererRate);
358      } else {
359        return new Promise((resolve, reject) => {
360          resolve(AudioRendererRate);
361        })
362      }
363    },
364    on: function (...args) {
365      console.warn("AudioRenderer.on interface mocked in the Previewer." +
366        " How this interface works on the Previewer may be different from that on a real device.")
367    },
368    off: function (...args) {
369      console.warn("AudioRenderer.off interface mocked in the Previewer." +
370        " How this interface works on the Previewer may be different from that on a real device.")
371    },
372    setInterruptMode: function (...args) {
373      console.warn("AudioRenderer.setInterruptMode interface mocked in the Previewer." +
374        " How this interface works on the Previewer may be different from that on a real device.")
375      const len = args.length
376      if (typeof args[len - 1] === 'function') {
377        args[len - 1].call(this, paramMock.businessErrorMock);
378      } else {
379        return new Promise((resolve, reject) => {
380          resolve();
381        })
382      }
383    }
384  }
385  const AudioManager = {
386    on: function (...args) {
387      console.warn("AudioManager.on interface mocked in the Previewer." +
388        " How this interface works on the Previewer may be different from that on a real device.")
389      const len = args.length
390      if (typeof args[len - 1] === 'function') {
391        if (args[0] == 'interrupt') {
392          args[len - 1].call(this, interruptAction);
393        } else if (args[0] == 'deviceChange') {
394          args[len - 1].call(this, DeviceChangeAction);
395        } else if (args[0] == 'volumeChange') {
396          args[len - 1].call(this, VolumeEvent);
397        } else if (args[0] == 'ringerModeChange') {
398          args[len - 1].call(this, AudioRingMode);
399        }
400      }
401    },
402    off: function (...args) {
403      console.warn("AudioManager.off interface mocked in the Previewer." +
404        " How this interface works on the Previewer  may be different from that on a real device.")
405    },
406    getDevices: function (...args) {
407      console.warn("AudioManager.getDevices interface mocked in the Previewer." +
408        " How this interface works on the Previewer may be different from that on a real device.")
409      var AudioDeviceDescriptors = new Array(AudioDeviceDescriptor)
410      const len = args.length
411      if (typeof args[len - 1] === 'function') {
412        args[len - 1].call(this, paramMock.businessErrorMock, AudioDeviceDescriptors);
413      } else {
414        return new Promise((resolve, reject) => {
415          resolve(AudioDeviceDescriptors);
416        })
417      }
418    },
419    isDeviceActive: function (...args) {
420      console.warn("AudioManager.isDeviceActive interface mocked in the Previewer." +
421        " How this interface works on the Previewer may be different from that on a real device.")
422      const len = args.length
423      if (typeof args[len - 1] === 'function') {
424        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock);
425      } else {
426        return new Promise((resolve, reject) => {
427          resolve(paramMock.paramBooleanMock);
428        })
429      }
430    },
431    setDeviceActive: function (...args) {
432      console.warn("AudioManager.setDeviceActive interface mocked in the Previewer." +
433        " How this interface works on the Previewer may be different from that on a real device.")
434      const len = args.length
435      if (typeof args[len - 1] === 'function') {
436        args[len - 1].call(this, paramMock.businessErrorMock);
437      } else {
438        return new Promise((resolve, reject) => {
439          resolve();
440        })
441      }
442    },
443    setRingerMode: function (...args) {
444      console.warn("AudioManager.setRingerMode interface mocked in the Previewer." +
445        " How this interface works on the Previewer may be different from that on a real device.")
446      const len = args.length
447      if (typeof args[len - 1] === 'function') {
448        args[len - 1].call(this, paramMock.businessErrorMock);
449      } else {
450        return new Promise((resolve, reject) => {
451          resolve();
452        })
453      }
454    },
455    setAudioParameter: function (...args) {
456      console.warn("AudioManager.setAudioParameter interface mocked in the Previewer." +
457        " How this interface works on the Previewer may be different from that on a real device.")
458      const len = args.length
459      if (typeof args[len - 1] === 'function') {
460        args[len - 1].call(this, paramMock.businessErrorMock);
461      } else {
462        return new Promise((resolve, reject) => {
463          resolve();
464        })
465      }
466    },
467    setVolume: function (...args) {
468      console.warn("AudioManager.setVolume interface mocked in the Previewer." +
469        " How this interface works on the Previewer may be different from that on a real device.")
470      const len = args.length
471      if (typeof args[len - 1] === 'function') {
472        args[len - 1].call(this, paramMock.businessErrorMock);
473      } else {
474        return new Promise((resolve, reject) => {
475          resolve();
476        })
477      }
478    },
479    getVolume: function (...args) {
480      console.warn("AudioManager.getVolume interface mocked in the Previewer." +
481        " How this interface works on the Previewer may be different from that on a real device.")
482      const len = args.length
483      if (typeof args[len - 1] === 'function') {
484        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
485      } else {
486        return new Promise((resolve, reject) => {
487          resolve(paramMock.paramNumberMock);
488        })
489      }
490    },
491    getMinVolume: function (...args) {
492      console.warn("AudioManager.getMinVolume interface mocked in the Previewer." +
493        " How this interface works on the Previewer may be different from that on a real device.")
494      const len = args.length
495      if (typeof args[len - 1] === 'function') {
496        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
497      } else {
498        return new Promise((resolve, reject) => {
499          resolve(paramMock.paramNumberMock);
500        })
501      }
502    },
503    getMaxVolume: function (...args) {
504      console.warn("AudioManager.getMaxVolume interface mocked in the Previewer." +
505        " How this interface works on the Previewer may be different from that on a real device.")
506      const len = args.length
507      if (typeof args[len - 1] === 'function') {
508        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
509      } else {
510        return new Promise((resolve, reject) => {
511          resolve(paramMock.paramNumberMock);
512        })
513      }
514    },
515    isMute: function (...args) {
516      console.warn("AudioManager.isMute interface mocked in the Previewer." +
517        " How this interface works on the Previewer may be different from that on a real device.")
518      const len = args.length
519      if (typeof args[len - 1] === 'function') {
520        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock);
521      } else {
522        return new Promise((resolve, reject) => {
523          resolve(paramMock.paramBooleanMock);
524        })
525      }
526    },
527    mute: function (...args) {
528      console.warn("AudioManager.mute interface mocked in the Previewer." +
529        " How this interface works on the Previewer may be different from that on a real device.")
530      const len = args.length
531      if (typeof args[len - 1] === 'function') {
532        args[len - 1].call(this, paramMock.businessErrorMock);
533      } else {
534        return new Promise((resolve, reject) => {
535          resolve();
536        })
537      }
538    },
539    isActive: function (...args) {
540      console.warn("AudioManager.isActive interface mocked in the Previewer." +
541        " How this interface works on the Previewer may be different from that on a real device.")
542      const len = args.length
543      if (typeof args[len - 1] === 'function') {
544        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock);
545      } else {
546        return new Promise((resolve, reject) => {
547          resolve(paramMock.paramBooleanMock);
548        })
549      }
550    },
551    isMicrophoneMute: function (...args) {
552      console.warn("AudioManager.isMicrophoneMute interface mocked in the Previewer." +
553        " How this interface works on the Previewer may be different from that on a real device.")
554      const len = args.length
555      if (typeof args[len - 1] === 'function') {
556        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock);
557      } else {
558        return new Promise((resolve, reject) => {
559          resolve(paramMock.paramBooleanMock);
560        })
561      }
562    },
563    setMicrophoneMute: function (...args) {
564      console.warn("AudioManager.setMicrophoneMute interface mocked in the Previewer." +
565        " How this interface works on the Previewer may be different from that on a real device.")
566      const len = args.length
567      if (typeof args[len - 1] === 'function') {
568        args[len - 1].call(this, paramMock.businessErrorMock);
569      } else {
570        return new Promise((resolve, reject) => {
571          resolve();
572        })
573      }
574    },
575    getAudioParameter: function (...args) {
576      console.warn("AudioManager.getAudioParameter interface mocked in the Previewer." +
577        " How this interface works on the Previewer may be different from that on a real device.")
578      const len = args.length
579      if (typeof args[len - 1] === 'function') {
580        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramStringMock);
581      } else {
582        return new Promise((resolve, reject) => {
583          resolve(paramMock.paramStringMock);
584        })
585      }
586    },
587    getRingerMode: function (...args) {
588      console.warn("AudioManager.getRingerMode interface mocked in the Previewer." +
589        " How this interface works on the Previewer may be different from that on a real device.")
590      const len = args.length
591      if (typeof args[len - 1] === 'function') {
592        args[len - 1].call(this, paramMock.businessErrorMock, AudioRingMode);
593      } else {
594        return new Promise((resolve, reject) => {
595          resolve(AudioRingMode);
596        })
597      }
598    },
599    setAudioScene: function (...args) {
600      console.warn("AudioManager.setAudioScene interface mocked in the Previewer." +
601      " How this interface works on the Previewer may be different from that on a real device.")
602      const len = args.length
603      if (typeof args[len - 1] === 'function') {
604        args[len - 1].call(this, paramMock.businessErrorMock);
605      } else {
606        return new Promise((resolve, reject) => {
607          resolve();
608        })
609      }
610    },
611    getAudioScene: function (...args) {
612      console.warn("AudioManager.getAudioScene interface mocked in the Previewer." +
613        " How this interface works on the Previewer may be different from that on a real device.")
614      const len = args.length
615      if (typeof args[len - 1] === 'function') {
616        args[len - 1].call(this, paramMock.businessErrorMock, AudioScene);
617      } else {
618        return new Promise((resolve, reject) => {
619          resolve(AudioScene);
620        })
621      }
622    },
623    requestIndependentInterrupt: function (...args) {
624      console.warn("AudioManager.requestIndependentInterrupt interface mocked in the Previewer." +
625        " How this interface works on the Previewer may be different from that on a real device.")
626        const len = args.length
627        if (typeof args[len - 1] === 'function') {
628          args[len - 1].call(this, paramMock.businessErrorMock,paramMock.paramBooleanMock);
629        } else {
630          return new Promise((resolve, reject) => {
631            resolve(paramMock.paramBooleanMock);
632          })
633        }
634    },
635    abandonIndependentInterrupt: function (...args) {
636      console.warn("AudioManager.abandonIndependentInterrupt interface mocked in the Previewer." +
637        " How this interface works on the Previewer may be different from that on a real device.")
638      const len = args.length
639      if (typeof args[len - 1] === 'function') {
640        args[len - 1].call(this, paramMock.businessErrorMock,paramMock.paramBooleanMock);
641      } else {
642        return new Promise((resolve, reject) => {
643          resolve(paramMock.paramBooleanMock);
644        })
645      }
646    },
647    getStreamManager: function (...args) {
648      console.warn("AudioManager.getStreamManager interface mocked in the Previewer." +
649        " How this interface works on the Previewer may be different from that on a real device.")
650      const len = args.length
651      if (typeof args[len - 1] === 'function') {
652        args[len - 1].call(this, paramMock.businessErrorMock, AudioStreamManager);
653      } else {
654        return new Promise((resolve, reject) => {
655          resolve(AudioStreamManager);
656        })
657      }
658    },
659    getRoutingManager: function (...args) {
660      console.warn("AudioManager.getRoutingManager interface mocked in the Previewer." +
661        " How this interface works on the Previewer may be different from that on a real device.")
662      const len = args.length
663      if (typeof args[len - 1] === 'function') {
664        args[len - 1].call(this, paramMock.businessErrorMock, AudioRoutingManager);
665      } else {
666        return new Promise((resolve, reject) => {
667          resolve(AudioRoutingManager);
668        })
669      }
670    },
671    getVolumeGroups: function (...args) {
672      console.warn("AudioManager.getVolumeGroups interface mocked in the Previewer." +
673        " How this interface works on the Previewer may be different from that on a real device.")
674      var VolumeGroupInfos  = new Array(VolumeGroupInfo)
675      const len = args.length
676      if (typeof args[len - 1] === 'function') {
677        args[len - 1].call(this, paramMock.businessErrorMock, VolumeGroupInfos);
678      } else {
679        return new Promise((resolve, reject) => {
680          resolve(VolumeGroupInfos);
681        })
682      }
683    },
684    getGroupManager: function (...args) {
685      console.warn("AudioManager.getGroupManager interface mocked in the Previewer." +
686        " How this interface works on the Previewer may be different from that on a real device.")
687      const len = args.length
688      if (typeof args[len - 1] === 'function') {
689        args[len - 1].call(this, paramMock.businessErrorMock, AudioGroupManager);
690      } else {
691        return new Promise((resolve, reject) => {
692          resolve(AudioGroupManager);
693        })
694      }
695    }
696  }
697  const AudioStreamManager = {
698    on: function (...args) {
699      const len = args.length
700      if (typeof args[len - 1] === 'function') {
701        if (args[0] == 'audioRendererChange') {
702          console.warn("AudioStreamManager.on_audioRendererChange interface mocked in the Previewer." +
703            " How this interface works on the Previewer may be different from that on a real device.")
704        } else if (args[0] == 'audioCapturerChange') {
705          console.warn("AudioStreamManager.on_audioCapturerChange interface mocked in the Previewer." +
706            " How this interface works on the Previewer may be different from that on a real device.")
707        }
708      }
709    },
710    off: function (...args) {
711      console.warn("AudioStreamManager.off interface mocked in the Previewer." +
712        " How this interface works on the Previewer may be different from that on a real device.")
713    },
714    getCurrentAudioRendererInfoArray: function (...args) {
715      console.warn("AudioStreamManager.getCurrentAudioRendererInfoArray interface mocked in the Previewer." +
716        " How this interface works on the Previewer may be different from that on a real device.")
717      var AudioRendererChangeInfoArray = new Array(AudioRendererChangeInfo)
718      const len = args.length
719      if (typeof args[len - 1] === 'function') {
720        args[len - 1].call(this, paramMock.businessErrorMock, AudioRendererChangeInfoArray);
721      } else {
722        return new Promise((resolve, reject) => {
723          resolve(AudioRendererChangeInfoArray);
724        })
725      }
726    },
727    getCurrentAudioCapturerInfoArray: function (...args) {
728      console.warn("AudioStreamManager.getCurrentAudioCapturerInfoArray interface mocked in the Previewer." +
729        " How this interface works on the Previewer may be different from that on a real device.")
730      var AudioCapturerChangeInfoArray = new Array(AudioCapturerChangeInfo)
731      const len = args.length
732      if (typeof args[len - 1] === 'function') {
733        args[len - 1].call(this, paramMock.businessErrorMock, AudioCapturerChangeInfoArray);
734      } else {
735        return new Promise((resolve, reject) => {
736          resolve(AudioCapturerChangeInfoArray);
737        })
738      }
739    }
740  }
741  const AudioRoutingManager = {
742    on: function (...args) {
743      console.warn("AudioRoutingManager.on_deviceChange interface mocked in the Previewer." +
744        " How this interface works on the Previewer may be different from that on a real device.")
745      const len = args.length
746      if (typeof args[len - 1] === 'function') {
747        if (args[0] == 'deviceChange') {
748          args[len-1].call(this,DeviceChangeAction);
749        }
750      }
751    },
752    off: function (...args) {
753      console.warn("AudioRoutingManager.off interface mocked in the Previewer." +
754        " How this interface works on the Previewer may be different from that on a real device.")
755        if (typeof args[len - 1] === 'function') {
756          if (args[0] == 'deviceChange') {
757            args[len-1].call(this,DeviceChangeAction);
758          }
759        }
760    },
761    getDevices: function (...args) {
762      console.warn("AudioRoutingManager.getDevices interface mocked in the Previewer." +
763        " How this interface works on the Previewer may be different from that on a real device.")
764      var AudioDeviceDescriptors = new Array(AudioDeviceDescriptor)
765      const len = args.length
766      if (typeof args[len - 1] === 'function') {
767        args[len - 1].call(this, paramMock.businessErrorMock, AudioDeviceDescriptors);
768      } else {
769        return new Promise((resolve, reject) => {
770          resolve(AudioDeviceDescriptors);
771        })
772      }
773    },
774    selectOutputDevice: function (...args) {
775      console.warn("AudioRoutingManager.selectOutputDevice interface mocked in the Previewer." +
776        " How this interface works on the Previewer may be different from that on a real device.")
777      if (typeof args[len - 1] === 'function') {
778        args[len - 1].call(this, paramMock.businessErrorMock);
779      } else {
780        return new Promise((resolve, reject) => {
781          resolve();
782        })
783      }
784    },
785    selectOutputDeviceByFilter: function (...args) {
786      console.warn("AudioRoutingManager.selectOutputDeviceByFilter interface mocked in the Previewer." +
787        " How this interface works on the Previewer may be different from that on a real device.")
788      if (typeof args[len - 1] === 'function') {
789        args[len - 1].call(this, paramMock.businessErrorMock);
790      } else {
791        return new Promise((resolve, reject) => {
792          resolve();
793        })
794      }
795    }
796  }
797  const AudioGroupManager = {
798    setVolume: function (...args) {
799      console.warn("AudioGroupManager.setVolume interface mocked in the Previewer." +
800        " How this interface works on the Previewer may be different from that on a real device.")
801      const len = args.length
802      if (typeof args[len - 1] === 'function') {
803        args[len - 1].call(this, paramMock.businessErrorMock);
804      } else {
805        return new Promise((resolve, reject) => {
806          resolve();
807        })
808      }
809    },
810    getVolume: function (...args) {
811      console.warn("AudioGroupManager.getVolume interface mocked in the Previewer." +
812        " How this interface works on the Previewer may be different from that on a real device.")
813      const len = args.length
814      if (typeof args[len - 1] === 'function') {
815        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
816      } else {
817        return new Promise((resolve, reject) => {
818          resolve(paramMock.paramNumberMock);
819        })
820      }
821    },
822    getMinVolume: function (...args) {
823      console.warn("AudioGroupManager.getMinVolume interface mocked in the Previewer." +
824        " How this interface works on the Previewer may be different from that on a real device.")
825      const len = args.length
826      if (typeof args[len - 1] === 'function') {
827        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
828      } else {
829        return new Promise((resolve, reject) => {
830          resolve(paramMock.paramNumberMock);
831        })
832      }
833    },
834    getMaxVolume: function (...args) {
835      console.warn("AudioGroupManager.getMaxVolume interface mocked in the Previewer." +
836        " How this interface works on the Previewer may be different from that on a real device.")
837      const len = args.length
838      if (typeof args[len - 1] === 'function') {
839        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
840      } else {
841        return new Promise((resolve, reject) => {
842          resolve(paramMock.paramNumberMock);
843        })
844      }
845    },
846    isMute: function (...args) {
847      console.warn("AudioGroupManager.isMute interface mocked in the Previewer." +
848        " How this interface works on the Previewer may be different from that on a real device.")
849      const len = args.length
850      if (typeof args[len - 1] === 'function') {
851        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock);
852      } else {
853        return new Promise((resolve, reject) => {
854          resolve(paramMock.paramBooleanMock);
855        })
856      }
857    },
858    mute: function (...args) {
859      console.warn("AudioGroupManager.mute interface mocked in the Previewer." +
860        " How this interface works on the Previewer may be different from that on a real device.")
861      const len = args.length
862      if (typeof args[len - 1] === 'function') {
863        args[len - 1].call(this, paramMock.businessErrorMock);
864      } else {
865        return new Promise((resolve, reject) => {
866          resolve();
867        })
868      }
869    },
870  }
871  const audio = {
872    LOCAL_NETWORK_ID: "LocalDevice",
873    AudioState: {
874      STATE_INVALID: -1,
875      STATE_NEW: 0,
876      STATE_PREPARED: 1,
877      STATE_RUNNING: 2,
878      STATE_STOPPED: 3,
879      STATE_RELEASED:4,
880      STATE_PAUSED: 5,
881    },
882    AudioVolumeType: {
883      VOICE_CALL: 0,
884      RINGTONE: 2,
885      MEDIA: 3,
886      VOICE_ASSISTANT: 9,
887      ALL:100
888    },
889    ContentType: {
890      CONTENT_TYPE_UNKNOWN: 0,
891      CONTENT_TYPE_SPEECH: 1,
892      CONTENT_TYPE_MUSIC: 2,
893      CONTENT_TYPE_MOVIE: 3,
894      CONTENT_TYPE_SONIFICATION: 4,
895      CONTENT_TYPE_RINGTONE: 5,
896    },
897    StreamUsage: {
898      STREAM_USAGE_UNKNOWN: 0,
899      STREAM_USAGE_MEDIA: 1,
900      STREAM_USAGE_VOICE_COMMUNICATION: 2,
901      STREAM_USAGE_NOTIFICATION_RINGTONE: 6,
902    },
903    DeviceFlag: {
904      OUTPUT_DEVICES_FLAG: 1,
905      INPUT_DEVICES_FLAG: 2,
906      ALL_DEVICES_FLAG: 3,
907    },
908    ActiveDeviceType: {
909      SPEAKER: 2,
910      BLUETOOTH_SCO: 7,
911    },
912    AudioRingMode: {
913      RINGER_MODE_NORMAL: 2,
914      RINGER_MODE_SILENT: 0,
915      RINGER_MODE_VIBRATE: 1,
916    },
917    AudioSampleFormat: {
918      SAMPLE_FORMAT_INVALID: -1,
919      SAMPLE_FORMAT_U8: 0,
920      SAMPLE_FORMAT_S16LE: 1,
921      SAMPLE_FORMAT_S24LE: 2,
922      SAMPLE_FORMAT_S32LE: 3,
923      SAMPLE_FORMAT_F32LE: 4,
924    },
925    AudioChannel: {
926      CHANNEL_1: 1,
927      CHANNEL_2: 2,
928    },
929    AudioSamplingRate: {
930      SAMPLE_RATE_8000: 8000,
931      SAMPLE_RATE_11025: 11025,
932      SAMPLE_RATE_12000: 12000,
933      SAMPLE_RATE_16000: 16000,
934      SAMPLE_RATE_22050: 22050,
935      SAMPLE_RATE_24000: 24000,
936      SAMPLE_RATE_32000: 32000,
937      SAMPLE_RATE_44100: 44100,
938      SAMPLE_RATE_48000: 48000,
939      SAMPLE_RATE_64000: 64000,
940      SAMPLE_RATE_96000: 96000,
941    },
942    AudioEncodingType: {
943      ENCODING_TYPE_INVALID: -1,
944      ENCODING_TYPE_RAW: 0,
945    },
946    AudioRendererRate: {
947      RENDER_RATE_NORMAL: 0,
948      RENDER_RATE_DOUBLE: 1,
949      RENDER_RATE_HALF: 2,
950    },
951    SourceType: {
952      SOURCE_TYPE_INVALID: -1,
953      SOURCE_TYPE_MIC: 0,
954      SOURCE_TYPE_VOICE_COMMUNICATION: 7,
955    },
956    AudioScene: {
957      AUDIO_SCENE_DEFAULT: 0,
958      AUDIO_SCENE_RINGING: 1,
959      AUDIO_SCENE_PHONE_CALL: 2,
960      AUDIO_SCENE_VOICE_CHAT: 3,
961    },
962    InterruptType: {
963      INTERRUPT_TYPE_BEGIN: 1,
964      INTERRUPT_TYPE_END: 2,
965    },
966    InterruptForceType: {
967      INTERRUPT_FORCE: 0,
968      INTERRUPT_SHARE: 1,
969    },
970    FocusType: {
971      FOCUS_TYPE_RECORDING: 0,
972    },
973    InterruptMode: {
974      SHARE_MODE: 0,
975      INDEPENDENT_MODE: 1
976    },
977    DeviceRole: {
978      INPUT_DEVICE: 1,
979      OUTPUT_DEVICE: 2
980    },
981    DeviceType: {
982      INVALID: 0,
983      EARPIECE: 1,
984      SPEAKER: 2,
985      WIRED_HEADSET: 3,
986      WIRED_HEADPHONES: 4,
987      BLUETOOTH_SCO: 7,
988      BLUETOOTH_A2DP: 8,
989      MIC: 15,
990      USB_HEADSET: 22
991    },
992    InterruptHint: {
993      INTERRUPT_HINT_NONE: 0,
994      INTERRUPT_HINT_RESUME: 1,
995      INTERRUPT_HINT_PAUSE: 2,
996      INTERRUPT_HINT_STOP: 3,
997      INTERRUPT_HINT_DUCK: 4,
998      INTERRUPT_HINT_UNDUCK: 5
999    },
1000    InterruptActionType: {
1001      TYPE_ACTIVATED: 0,
1002      TYPE_INTERRUPT: 1
1003    },
1004    DeviceChangeType: {
1005      CONNECT: 0,
1006      DISCONNECT: 1
1007    },
1008    ConnectType: {
1009      CONNECT_TYPE_LOCAL: 1,
1010      CONNECT_TYPE_DISTRIBUTED: 2
1011    },
1012    getAudioManager: function () {
1013      console.warn("audio.getAudioManager interface mocked in the Previewer." +
1014        " How this interface works on the Previewer may be different from that on a real device.")
1015      return AudioManager;
1016    },
1017    createAudioCapturer: function (...args) {
1018      console.warn("audio.createAudioCapturer interface mocked in the Previewer." +
1019        " How this interface works on the Previewer may be different from that on a real device.")
1020      const len = args.length
1021      if (typeof args[len - 1] === 'function') {
1022        args[len - 1].call(this, paramMock.businessErrorMock, AudioCapturer);
1023      } else {
1024        return new Promise((resolve, reject) => {
1025          resolve(AudioCapturer);
1026        })
1027      }
1028    },
1029    createAudioRenderer: function (...args) {
1030      console.warn("audio.createAudioRenderer interface mocked in the Previewer." +
1031        " How this interface works on the Previewer may be different from that on a real device.")
1032      const len = args.length
1033      if (typeof args[len - 1] === 'function') {
1034        args[len - 1].call(this, paramMock.businessErrorMock, AudioRenderer);
1035      } else {
1036        return new Promise((resolve, reject) => {
1037          resolve(AudioRenderer);
1038        })
1039      }
1040    }
1041  }
1042  return audio;
1043}
1044