• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/**
2 * Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development 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 media from '@ohos.multimedia.media'
17import * as mediaTestBase from './MediaTestBase.js';
18
19export function resourceName(){
20    let timestamp = Date.now();
21    let filename = `avRecorder_${timestamp}.m4a`;
22    return filename;
23}
24
25export async function idleCallback(avRecorder, avConfig, done) {
26    console.info('case idleCallback called');
27    media.createAVRecorder((error, recorder) => {
28        if (recorder != null) {
29            avRecorder = recorder;
30            console.info('createAVRecorder idleCallback success');
31            avRecorder.prepare(avConfig)
32            releaseDone(avRecorder, done)
33        } else {
34            console.info(`createAVRecorder idleCallback fail, error:${error}`);
35        }
36    });
37}
38
39// create avRecorder(promise)
40export async function idle(avRecorder) {
41    console.info('case createAVRecorder called');
42    await media.createAVRecorder().then((recorder) => {
43        if (recorder != null) {
44            avRecorder = recorder;
45            console.info('createAVRecorder success');
46        } else {
47            console.info('createAVRecorder fail');
48        }
49    }).catch((error) => {
50        console.info(`createAVRecorder catchCallback, error:${error}`);
51    });
52    return avRecorder;
53}
54
55export const AV_RECORDER_STATE = {
56    IDLE : 'idle',
57    PREPARED : 'prepared',
58    STARTED : 'started',
59    PAUSED : 'paused',
60    STOPPED : 'stopped',
61    RELEASED : 'released',
62    ERROR : 'error',
63}
64
65export function prepareCallback(avRecorder, avConfig) {
66    if (typeof(avRecorder) == 'undefined') {
67        return;
68    }
69    avRecorder.prepare(avConfig, (err) => {
70        console.info('case prepare called' + err);
71        if (err == null) {
72            sleep(200)
73            console.error(`case prepare success, state is ${avRecorder.state}`);
74            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
75            console.info('prepare success');
76        } else {
77            console.error(`case prepare error, errMessage is ${err.message}`);
78        }
79    })
80}
81
82export async function preparePromise(avRecorder, avConfig) {
83    if (typeof(avRecorder) == 'undefined') {
84        return;
85    }
86    await avRecorder.prepare(avConfig).then(() => {
87        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
88        console.info('prepare success');
89    }).catch((err) => {
90        console.info('prepare failed and catch error is ' + err.message);
91    });
92}
93
94export async function getInputSurfacePromise(avRecorder) {
95    let surfaceID = null;
96    if (typeof(avRecorder) == 'undefined') {
97        return;
98    }
99    await avRecorder.getInputSurface().then((surfaceId) => {
100        console.info('getInputSurface success');
101        surfaceID = surfaceId;
102    }).catch((err) => {
103        console.info('getInputSurface failed and catch error is ' + err.message);
104    });
105}
106
107export function getInputSurfaceCallback(avRecorder) {
108    if (typeof(avRecorder) == 'undefined') {
109        return;
110    }
111    let surfaceID = null;
112    avRecorder.getInputSurface((err, surfaceId) => {
113        if (err == null) {
114            console.info('getInputSurface success');
115            surfaceID = surfaceId;
116        } else {
117            console.info('getInputSurface failed and error is ' + err.message);
118        }
119    });
120}
121
122export async function startCallback(avRecorder, recorderTime) {
123    if (typeof(avRecorder) == 'undefined') {
124        return;
125    }
126    await avRecorder.start((err) => {
127        console.info('case start called');
128        if (err == null) {
129            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.STARTED);
130            console.info('start AVRecorder success');
131            if (recorderTime != undefined) {
132                sleep(recorderTime);
133            }
134        } else {
135            console.info('start AVRecorder failed and error is ' + err.message);
136        }
137    })
138}
139
140export async function startPromise(avRecorder, recorderTime) {
141    if (typeof(avRecorder) == 'undefined') {
142        return;
143    }
144    await avRecorder.start().then(() => {
145        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.STARTED);
146        console.info('start success');
147        if (recorderTime != undefined) {
148            sleep(recorderTime);
149        }
150    }).catch((err) => {
151        console.info('start failed and catch error is ' + err.message);
152    });
153    if (recorderTime != undefined) {
154         await sleep(recorderTime);
155    }
156}
157
158export async function pauseCallback(avRecorder) {
159    if (typeof(avRecorder) == 'undefined') {
160        return;
161    }
162    await avRecorder.pause((err) => {
163        console.info('case pause called');
164        if (err == null) {
165            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PAUSED);
166            console.info('pause AVRecorder success');
167        } else {
168            console.info('pause AVRecorder failed and error is ' + err.message);
169        }
170    })
171}
172
173export async function pausePromise(avRecorder) {
174    if (typeof(avRecorder) == 'undefined') {
175        return;
176    }
177    await avRecorder.pause().then(() => {
178        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PAUSED);
179        console.info('pause success');
180    }).catch((err) => {
181        console.info('pause failed and catch error is ' + err.message);
182    });
183}
184
185export async function resumeCallback(avRecorder) {
186    if (typeof(avRecorder) == 'undefined') {
187        return;
188    }
189    await avRecorder.resume((err) => {
190        console.info('case resume called');
191        if (err == null) {
192            console.info('resume AVRecorder success');
193        } else {
194            console.info('resume AVRecorder failed and error is ' + err.message);
195        }
196    })
197}
198
199export async function resumePromise(avRecorder) {
200    if (typeof(avRecorder) == 'undefined') {
201        return;
202    }
203    await avRecorder.resume().then(() => {
204        console.info('resume success');
205    }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
206}
207
208export function stopCallback(avRecorder) {
209    if (typeof(avRecorder) == 'undefined') {
210        return;
211    }
212    avRecorder.stop((err) => {
213        console.info('case stop called');
214        if (err == null) {
215            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.STOPPED);
216            console.info('stop AVRecorder success');
217        } else {
218            console.info('stop AVRecorder failed and error is ' + err.message);
219        }
220    })
221}
222
223export async function stopPromise(avRecorder) {
224    if (typeof(avRecorder) == 'undefined') {
225        return;
226    }
227    await avRecorder.stop().then(() => {
228        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.STOPPED);
229        console.info('stop success');
230    }).catch((err) => {
231        console.info('stop failed and catch error is ' + err.message);
232    });
233}
234
235export async function resetCallback(avRecorder) {
236    if (typeof(avRecorder) == 'undefined') {
237        return;
238    }
239    await avRecorder.reset((err) => {
240        console.info('case reset called');
241        if (err == null) {
242            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
243            console.info('reset AVRecorder success');
244        } else {
245            console.info('reset AVRecorder failed and error is ' + err.message);
246        }
247    })
248}
249
250export async function resetPromise(avRecorder) {
251    if (typeof(avRecorder) == 'undefined') {
252        return;
253    }
254    await avRecorder.reset().then(() => {
255        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
256    }).catch((err) => {
257        console.info('reset AVRecorder failed and catch error is ' + err.message);
258    });
259}
260
261export async function releaseCallback(avRecorder) {
262    if (typeof(avRecorder) == 'undefined') {
263        return;
264    }
265    avRecorder.release((err) => {
266        console.info('case release called');
267        if (err == null) {
268            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
269            console.info('release AVRecorder success');
270        } else {
271            console.info('release AVRecorder failed and error is ' + err.message);
272        }
273    })
274}
275
276export async function releasePromise(avRecorder) {
277    if (typeof(avRecorder) == 'undefined') {
278        return;
279    }
280    await avRecorder.release().then(() => {
281        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
282    }).catch((err) => {
283        console.info('release AVRecorder failed and catch error is ' + err.message);
284    });
285}
286
287export async function releaseDone(avRecorder, done){
288    await avRecorder.release().then(() => {
289        console.info('releaseDone avRecorder.state is ' + avRecorder.state);
290        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
291        done();
292    }).catch((err) => {
293        console.info('release releaseDone failed and catch error is ' + err.message);
294    });
295}
296
297export function sleep(ms) {
298    return new Promise(resolve => setTimeout(resolve, ms));
299}
300
301export function offCallback(avRecorder, typeArr)
302{
303    if (avRecorder == null) {
304        return;
305    }
306    for (let i = 0; i < typeArr.length; i++) {
307        switch (typeArr[i]) {
308            case 'stateChange':
309                avRecorder.off('stateChange');
310                break;
311            case 'error':
312                avRecorder.off('error');
313                break;
314            default:
315                break;
316        }
317    }
318}
319
320export async function setOnCallback(avConfig, avRecorder, recorderTime, done) {
321    console.info(`case setOnCallback in`);
322    avRecorder.on('stateChange', async (state, reason) => {
323        console.info('case state has changed, new state is :' + state);
324        switch (state) {
325            case AV_RECORDER_STATE.IDLE:
326                console.info(`case avRecorderWithCallBack is idle`);
327                expect(avRecorder.state).assertEqual("idle");
328            // start->stop->release
329                prepareCallback(avRecorder, avConfig);
330                break;
331            case AV_RECORDER_STATE.PREPARED:
332                console.info(`case avRecorderWithCallBack is prepared`);
333                expect(avRecorder.state).assertEqual('prepared');
334                startCallback(avRecorder);
335                break;
336            case AV_RECORDER_STATE.STARTED:
337                console.info(`case avRecorderWithCallBack is started`)
338                expect(avRecorder.state).assertEqual('started');
339                await sleep(recorderTime);
340                stopCallback(avRecorder);
341                break;
342            case AV_RECORDER_STATE.PAUSED:
343                console.info(`case avRecorderWithCallBackis paused`)
344                expect(avRecorder.state).assertEqual('paused');
345                break;
346            case AV_RECORDER_STATE.STOPPED:
347                console.info(`case avRecorderWithCallBack is stopped`)
348                expect(avRecorder.state).assertEqual('stopped');
349                releasePromise(avRecorder)
350                break;
351            case AV_RECORDER_STATE.RELEASED:
352                console.info(`case avRecorderWithCallBack is released`);
353                expect(avRecorder.state).assertEqual('released');
354                done();
355                break;
356            case AV_RECORDER_STATE.ERROR:
357                console.info(`case avRecorderWithCallBack is error`)
358                expect(avRecorder.state).assertEqual('error');
359                break;
360            default:
361                console.info('case state is unknown');
362        }
363    });
364
365    avRecorder.on('error', (err) => {
366        console.info('case avRecorder.on(error) called, errMessage is ' + err.message);
367    });
368}
369
370export async function setPrepareOnCallback(avConfig, avRecorder, recorderTime, done) {
371    console.info(`case setOnCallback in`);
372    avRecorder.on('stateChange', async (state, reason) => {
373        console.info('case state has changed, new state is :' + state);
374        switch (state) {
375            case AV_RECORDER_STATE.PREPARED:
376                console.info(`case AV_RECORDER_STATE.PREPARED`);
377                expect(avRecorder.state).assertEqual('prepared');
378                releaseCallback(avRecorder);
379                break;
380            case AV_RECORDER_STATE.RELEASED:
381                console.info(`case setPrepareOnCallback is released`);
382                expect(avRecorder.state).assertEqual('released');
383                done();
384                break;
385            case AV_RECORDER_STATE.ERROR:
386                console.info(`case AV_RECORDER_STATE.ERROR`)
387                expect(avRecorder.state).assertEqual('error');
388                break;
389            default:
390                console.info('case state is unknown');
391        }
392    });
393}
394
395export async function avRecorderWithCallBack(avConfig, avRecorder, recorderTime, done) {
396    // Create an instance
397    avRecorder = await idle(avRecorder)
398    setOnCallback(avConfig, avRecorder, recorderTime, done);
399    await avRecorder.prepare(avConfig)
400}
401
402export async function avRecorderWithCallBack2(avConfig, avRecorder, recorderTime, done) {
403    avRecorder = await idle(avRecorder);
404    console.info('case avConfig.url is ' + avConfig.url);
405    await preparePromise(avRecorder, avConfig);
406    await startPromise(avRecorder, recorderTime);
407    await pausePromise(avRecorder);
408    await stopPromise(avRecorder);
409    await avRecorder.reset().then(() => {
410        console.info('reset avRecorderWithCallBack2 success');
411        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
412    }).catch((err) => {
413        console.info('reset avRecorderWithCallBack2 failed and catch error is ' + err.message);
414    });
415    await releaseDone(avRecorder, done)
416}
417
418export async function avRecorderWithCallBack3(avConfig, avRecorder, recorderTime, done) {
419    avRecorder = await idle(avRecorder);
420    console.info('case avConfig.url is ' + avConfig.url);
421    await preparePromise(avRecorder, avConfig);
422    await startPromise(avRecorder, recorderTime);
423    await pausePromise(avRecorder);
424    await resumePromise(avRecorder);
425    await stopPromise(avRecorder);
426    await avRecorder.reset().then(() => {
427        console.info('reset avRecorderWithCallBack3 success');
428        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
429    }).catch((err) => {
430        console.info('reset avRecorderWithCallBack3 failed and catch error is ' + err.message);
431    });
432    await releaseDone(avRecorder, done)
433}
434
435export async function avRecorderWithCallBack4(avConfig, avRecorder, recorderTime, done) {
436    avRecorder = await idle(avRecorder);
437    console.info('case avConfig.url is ' + avConfig.url);
438    await preparePromise(avRecorder, avConfig);
439    await startPromise(avRecorder, recorderTime);
440    await stopPromise(avRecorder);
441    await avRecorder.reset().then(() => {
442        console.info('reset avRecorderWithCallBack4 success');
443        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
444    }).catch((err) => {
445        console.info('reset avRecorderWithCallBack4 failed and catch error is ' + err.message);
446    });
447    await releaseDone(avRecorder, done)
448}
449
450export async function avRecorderWithCallBack5(avConfig, avRecorder, recorderTime, done) {
451    avRecorder = await idle(avRecorder);
452    console.info('case avConfig.url is ' + avConfig.url);
453    await preparePromise(avRecorder, avConfig);
454    await startPromise(avRecorder, recorderTime);
455    await pausePromise(avRecorder);
456    await resumePromise(avRecorder);
457    await avRecorder.reset().then(() => {
458        console.info('reset avRecorderWithCallBack5 success');
459        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
460    }).catch((err) => {
461        console.info('reset avRecorderWithCallBack5 failed and catch error is ' + err.message);
462    });
463    await releaseDone(avRecorder, done)
464}
465
466export async function avRecorderWithCallBack6(avConfig, avRecorder, recorderTime, done) {
467    avRecorder = await idle(avRecorder);
468    console.info('case avConfig.url is ' + avConfig.url);
469    await preparePromise(avRecorder, avConfig);
470    await startPromise(avRecorder, recorderTime);
471    await pausePromise(avRecorder);
472    await startPromise(avRecorder, recorderTime);
473    await avRecorder.reset().then(() => {
474        console.info('reset avRecorderWithCallBack6 success');
475        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
476    }).catch((err) => {
477        console.info('reset avRecorderWithCallBack6 failed and catch error is ' + err.message);
478    });
479    await releaseDone(avRecorder, done)
480}
481
482export async function avRecorderWithCallBack7(avConfig, avRecorder, recorderTime, done) {
483    avRecorder = await idle(avRecorder);
484    console.info('case avConfig.url is ' + avConfig.url);
485    await preparePromise(avRecorder, avConfig);
486    await startPromise(avRecorder, recorderTime);
487    await pausePromise(avRecorder);
488    await resumePromise(avRecorder);
489    await pausePromise(avRecorder);
490    await avRecorder.reset().then(() => {
491        console.info('reset avRecorderWithCallBack7 success');
492        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
493    }).catch((err) => {
494        console.info('reset avRecorderWithCallBack7 failed and catch error is ' + err.message);
495    });
496    await releaseDone(avRecorder, done)
497}
498
499export async function avRecorderWithCallBack8(avConfig, avRecorder, recorderTime, done) {
500    avRecorder = await idle(avRecorder);
501    console.info('case avConfig.url is ' + avConfig.url);
502    await preparePromise(avRecorder, avConfig);
503    await startPromise(avRecorder, recorderTime);
504    await pausePromise(avRecorder);
505    await stopPromise(avRecorder);
506    await startPromise(avRecorder, recorderTime);
507    await pausePromise(avRecorder);
508    await avRecorder.reset().then(() => {
509        console.info('reset avRecorderWithCallBack8 success');
510        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
511    }).catch((err) => {
512        console.info('reset avRecorderWithCallBack8 failed and catch error is ' + err.message);
513    });
514    await releaseDone(avRecorder, done)
515}
516
517export async function avRecorderWithCallBack9(avConfig, avRecorder, recorderTime, done) {
518    avRecorder = await idle(avRecorder);
519    console.info('case avConfig.url is ' + avConfig.url);
520    await preparePromise(avRecorder, avConfig);
521    await startPromise(avRecorder, recorderTime);
522    await stopPromise(avRecorder);
523    await avRecorder.reset().then(() => {
524        console.info('reset avRecorderWithCallBack9 success');
525        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
526    }).catch((err) => {
527        console.info('reset avRecorderWithCallBack9 failed and catch error is ' + err.message);
528    });
529    await releaseDone(avRecorder, done)
530}
531
532export async function avRecorderWithCallBack10(avConfig, avRecorder, recorderTime, done) {
533    avRecorder = await idle(avRecorder);
534    console.info('case avConfig.url is ' + avConfig.url);
535    await preparePromise(avRecorder, avConfig);
536    await startPromise(avRecorder, recorderTime);
537    await stopPromise(avRecorder);
538    await pausePromise(avRecorder);
539    await avRecorder.reset().then(() => {
540        console.info('reset AVRecorder success');
541        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
542    }).catch((err) => {
543        console.info('reset AVRecorder failed and catch error is ' + err.message);
544    });
545    await releaseDone(avRecorder, done)
546}
547
548export async function avRecorderWithCallBack11(avConfig, avRecorder, recorderTime, done) {
549    avRecorder = await idle(avRecorder);
550    console.info('case avConfig.url is ' + avConfig.url);
551    await preparePromise(avRecorder, avConfig);
552    await startPromise(avRecorder, recorderTime);
553    await pausePromise(avRecorder);
554    await avRecorder.reset().then(() => {
555        console.info('avRecorderWithCallBack11 reset AVRecorder success');
556        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.IDLE);
557    }).catch((err) => {
558        console.info('avRecorderWithCallBack11 reset AVRecorder failed and catch error is ' + err.message);
559    });
560    await releaseDone(avRecorder, done)
561}
562
563export async function avRecorderWithCallBack13(avConfig, avRecorder, recorderTime, done) {
564    avRecorder = await idle(avRecorder);
565    console.info('case avConfig.url is ' + avConfig.url);
566    await preparePromise(avRecorder, avConfig);
567    await startPromise(avRecorder, recorderTime);
568    await pausePromise(avRecorder);
569    await resumePromise(avRecorder);
570    await sleep(recorderTime);
571    await stopPromise(avRecorder);
572    await avRecorder.release().then(() => {
573        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
574        console.info('release success');
575        done();
576    }).catch((err) => {
577        console.info('release failed and catch error is ' + err.message);
578    });
579}
580
581export async function avRecorderWithPreparePromise(avConfig, avRecorder, loopTimes, done) {
582    avRecorder = await idle(avRecorder);
583    console.info('case avConfig.url is ' + avConfig.url);
584    while (loopTimes > 0) {
585        await preparePromise(avRecorder, avConfig);
586        loopTimes--;
587    }
588    await releaseDone(avRecorder, done)
589}
590
591export async function avRecorderWithStartPromise(avConfig, avRecorder, loopTimes, done) {
592    avRecorder = await idle(avRecorder);
593    console.info('case avConfig.url is ' + avConfig.url);
594    await preparePromise(avRecorder, avConfig);
595    while (loopTimes > 0) {
596        await startPromise(avRecorder);
597        loopTimes--;
598    }
599    await releaseDone(avRecorder, done)
600}
601
602export async function avRecorderWithPausePromise(avConfig, avRecorder, recorderTime, loopTimes, done) {
603    avRecorder = await idle(avRecorder);
604    console.info('case avConfig.url is ' + avConfig.url);
605    await preparePromise(avRecorder, avConfig);
606    await startPromise(avRecorder, recorderTime);
607    while (loopTimes > 0) {
608        await pausePromise(avRecorder);
609        loopTimes--;
610    }
611    await releaseDone(avRecorder, done)
612}
613
614export async function avRecorderWithResumePromise(avConfig, avRecorder, recorderTime, loopTimes, done) {
615    avRecorder = await idle(avRecorder);
616    console.info('case avConfig.url is ' + avConfig.url);
617    await preparePromise(avRecorder, avConfig);
618    await startPromise(avRecorder, recorderTime);
619    await pausePromise(avRecorder);
620    while (loopTimes > 0) {
621        await resumePromise(avRecorder);
622        loopTimes--;
623    }
624    await releaseDone(avRecorder, done)
625}
626
627export async function avRecorderWithStopPromise(avConfig, avRecorder, recorderTime, loopTimes, done) {
628    avRecorder = await idle(avRecorder);
629    console.info('case avConfig.url is ' + avConfig.url);
630    await preparePromise(avRecorder, avConfig);
631    await startPromise(avRecorder, recorderTime);
632    while (loopTimes > 0) {
633        await stopPromise(avRecorder);
634        loopTimes--;
635    }
636    await releaseDone(avRecorder, done)
637}
638
639export async function avRecorderWithResetPromise(avConfig, avRecorder, recorderTime, loopTimes, done) {
640    avRecorder = await idle(avRecorder);
641    console.info('case avConfig.url is ' + avConfig.url);
642    await preparePromise(avRecorder, avConfig);
643    await startPromise(avRecorder, recorderTime);
644    while (loopTimes > 0) {
645        await resetPromise(avRecorder);
646        loopTimes--;
647    }
648    await releaseDone(avRecorder, done)
649}
650
651export async function avRecorderWithReleasePromise(avConfig, avRecorder, recorderTime, loopTimes, done) {
652    avRecorder = await idle(avRecorder);
653    console.info('case avConfig.url is ' + avConfig.url);
654    await preparePromise(avRecorder, avConfig);
655    await startPromise(avRecorder, recorderTime);
656    while (loopTimes > 0) {
657        await releasePromise(avRecorder);
658        loopTimes--;
659    }
660    done();
661}
662
663export async function avRecorderWithPrepareCallback(avConfig, avRecorder, loopTimes, done) {
664    avRecorder = await idle(avRecorder);
665    console.info('case avConfig.url is ' + avConfig.url);
666    while (loopTimes > 0) {
667        if(loopTimes == 1){
668            avRecorder.release()
669            done();
670        }
671        prepareCallback(avRecorder, avConfig);
672        loopTimes--;
673    }
674}
675
676export async function avRecorderWithStartCallback(avConfig, avRecorder, loopTimes, done) {
677    avRecorder = await idle(avRecorder);
678    sleep(300)
679    await avRecorder.prepare(avConfig).then(() => {
680        expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
681        console.info('prepare success');
682    }).catch((err) => {
683        console.info('prepare failed and catch error is ' + err.message);
684    });
685    await sleep(300)
686    while (loopTimes > 0) {
687        console.info(`avRecorderWithStartCallback loop time is :${loopTimes}`)
688        startCallback(avRecorder);
689        await sleep(200)
690        loopTimes--;
691        if(loopTimes == 0){
692            await avRecorder.release().then(() => {
693                console.info(`avRecorderWithStartCallback release success`)
694                done();
695            }).catch((err) => {
696                console.info('release avRecorderWithStartCallback failed and catch error is ' + err.message);
697            });
698            done();
699        }
700    }
701}
702
703export async function avRecorderWithPauseCallback(avConfig, avRecorder, recorderTime, loopTimes, done) {
704    avRecorder = await idle(avRecorder);
705    console.info('case avRecorderWithPauseCallback avConfig.url is ' + avConfig.url);
706    await preparePromise(avRecorder, avConfig);
707    await startPromise(avRecorder, recorderTime);
708    for(var i = 0;i < 1001;i++){
709        if(i == 1000){
710            avRecorder.release()
711            done();
712        }else{
713            console.info(`avRecorderWithPauseCallback loop time is :${i}`)
714        }
715        await pauseCallback(avRecorder, avConfig);
716    }
717}
718
719export async function avRecorderWithResumeCallback(avConfig, avRecorder, recorderTime, loopTimes, done) {
720    avRecorder = await idle(avRecorder);
721    console.info('case avRecorderWithPauseCallback avConfig.url is ' + avConfig.url);
722    await preparePromise(avRecorder, avConfig);
723    await startPromise(avRecorder, recorderTime);
724    await pausePromise(avRecorder);
725    for(var i = 0;i < 1001;i++){
726        if(i == 1000){
727            avRecorder.release()
728            done();
729        }else{
730            console.info(`avRecorderWithResumeCallback loop time is :${i}`)
731        }
732        await resumeCallback(avRecorder);
733    }
734}
735
736export async function avRecorderWithStopCallback(avConfig, avRecorder, recorderTime, loopTimes, done) {
737    avRecorder = await idle(avRecorder);
738    console.info('case avRecorderWithStopCallback avConfig.url is ' + avConfig.url);
739    await preparePromise(avRecorder, avConfig);
740    await startPromise(avRecorder, recorderTime);
741    while (loopTimes > 0) {
742        if(loopTimes == 1){
743            avRecorder.release()
744            done();
745        }
746        stopCallback(avRecorder, avConfig);
747        loopTimes--;
748    }
749    //    await releaseDone(avRecorder, done)
750}
751
752export async function avRecorderWithResetCallback(avConfig, avRecorder, recorderTime, loopTimes, done) {
753    avRecorder = await idle(avRecorder);
754    console.info('case avRecorderWithResetCallback avConfig.url is ' + avConfig.url);
755    await preparePromise(avRecorder, avConfig);
756    await startPromise(avRecorder, recorderTime);
757    while (loopTimes > 0) {
758        if(loopTimes == 1){
759            avRecorder.release()
760            done();
761        }
762        await resetCallback(avRecorder);
763        loopTimes--;
764    }
765    //    await releaseDone(avRecorder, done)
766}
767
768export async function avRecorderWithReleaseCallback(avConfig, avRecorder, recorderTime, loopTimes, done) {
769    avRecorder = await idle(avRecorder);
770    console.info('case avRecorderWithReleaseCallback avConfig.url is ' + avConfig.url);
771    await preparePromise(avRecorder, avConfig);
772    await startPromise(avRecorder, recorderTime);
773    while (loopTimes > 0) {
774        if(loopTimes == 1){
775            avRecorder.release()
776            done();
777        }
778        releaseCallback(avRecorder, avConfig);
779        loopTimes--;
780    }
781}
782
783///xxxxx
784export async function avRecorderLoopPrepare2ResetWithPromise(avConfig, avRecorder, loopTimes, done) {
785    avRecorder = await idle(avRecorder);
786    sleep(300)
787    console.info('case avRecorderLoopPrepare2ResetWithPromise avConfig.url is ' + avConfig.url);
788    while (loopTimes > 0) {
789        await preparePromise(avRecorder, avConfig);
790        await startPromise(avRecorder);
791        await resetPromise(avRecorder);
792        console.info(`avRecorderLoopPrepare2ResetWithPromise loop time is :${loopTimes}`)
793        loopTimes--;
794        if(loopTimes == 0){
795            await avRecorder.release().then(() => {
796                console.info(`avRecorderLoopPrepare2ResetWithPromise release success`)
797                done();
798            }).catch((err) => {
799                console.info('release avRecorderLoopPrepare2ResetWithPromise failed and catch error is ' + err.message);
800            });
801            done();
802        }
803    }
804    //    await releaseDone(avRecorder, done)
805}
806
807export async function avRecorderLoopCreate2ReleaseWithPromise(avConfig, avRecorder, loopTimes, done) {
808    console.info(`avRecorderLoopCreate2ReleaseWithPromise loop begin`)
809    while (loopTimes > 0) {
810        avRecorder = await idle(avRecorder);
811        await preparePromise(avRecorder, avConfig);
812        await startPromise(avRecorder);
813        await resetPromise(avRecorder);
814        await releasePromise(avRecorder);
815        console.info(`avRecorderLoopCreate2ReleaseWithPromise loop time is :${loopTimes}`)
816        loopTimes--;
817        if(loopTimes == 0){
818            done();
819        }
820    }
821}
822
823
824export async function avRecorderLoopPrepare2StopWithPromise(avConfig, avRecorder, loopTimes, done) {
825    avRecorder = await idle(avRecorder);
826    console.info('case avConfig.url is ' + avConfig.url);
827    await preparePromise(avRecorder, avConfig);
828    while (loopTimes > 0) {
829        await startPromise(avRecorder);
830        await stopPromise(avRecorder);
831        loopTimes--;
832        console.info(`avRecorderLoopPrepare2StopWithPromise loop time is :${loopTimes}`)
833        if(loopTimes == 0){
834            await avRecorder.release().then(() => {
835                done();
836                console.info(`avRecorderLoopPrepare2StopWithPromise release success`)
837            }).catch((err) => {
838                console.info('release avRecorderLoopPrepare2StopWithPromise failed and catch error is ' + err.message);
839            });
840        }
841    }
842    //    await releaseDone(avRecorder, done)
843}
844
845export async function avRecorderLoopPause2ResumeWithPromise(avConfig, avRecorder, loopTimes, done) {
846    avRecorder = await idle(avRecorder);
847    sleep(200)
848    console.info('case avConfig.url is ' + avConfig.url);
849    await preparePromise(avRecorder, avConfig);
850    sleep(200)
851    await startPromise(avRecorder);
852    while (loopTimes > 0) {
853        await pausePromise(avRecorder);
854        await sleep(20)
855        await resumePromise(avRecorder);
856        console.info(`avRecorderLoopPause2ResumeWithPromise loop time is :${loopTimes}`)
857        loopTimes--;
858        if(loopTimes == 0){
859            await sleep(2000)
860            await avRecorder.release().then(() => {
861                console.info(`avRecorderLoopPause2ResumeWithPromise release success`)
862                done();
863            }).catch((err) => {
864                console.info('release avRecorderLoopPause2ResumeWithPromise failed and catch error is ' + err.message);
865            });
866        }
867    }
868    //    await releaseDone(avRecorder, done)
869}
870
871export async function avRecorderLoopCreate2Release2WithPromise(avConfig, avRecorder, loopTimes, done) {
872    while (loopTimes > 0) {
873        avRecorder = await idle(avRecorder);
874        console.info('case avConfig.url is ' + avConfig.url);
875        await releasePromise(avRecorder);
876        console.info(`avRecorderLoopCreate2Release2WithPromise loop time is :${loopTimes}`)
877        loopTimes--;
878        if(loopTimes == 0){
879            avRecorder.release()
880            done();
881        }
882    }
883}
884
885export async function avRecorderLoopPrepare2ResetWithCallback(avConfig, avRecorder, loopTimes, done) {
886    avRecorder = await idle(avRecorder);
887    sleep(200)
888    while (loopTimes > 0) {
889        await avRecorder.prepare(avConfig).then(() => {
890            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
891            console.info('prepare success');
892        }).catch((err) => {
893            console.info('prepare failed and catch error is ' + err.message);
894        });
895        await sleep(100)
896        await startCallback(avRecorder);
897        await sleep(100)
898        await resetCallback(avRecorder);
899        loopTimes--;
900        console.info(`avRecorderLoopPrepare2ResetWithCallback loop time is :${loopTimes}`)
901        if(loopTimes == 0){
902            await sleep(2000)
903            await avRecorder.release().then(() => {
904                console.info(`avRecorderLoopPrepare2ResetWithCallback release success`)
905                done();
906            }).catch((err) => {
907                console.info('release avRecorderLoopPrepare2ResetWithCallback failed and catch error is ' + err.message);
908            });
909        }
910    }
911}
912
913export async function avRecorderLoopCreate2ReleaseWithCallback(avConfig, avRecorder, loopTimes, done) {
914    while (loopTimes > 0) {
915        console.info(`avRecorderLoopCreate2ReleaseWithCallback test loop start1 `)
916        avRecorder = await idle(avRecorder);
917        await sleep(200)
918        console.info(`avRecorderLoopCreate2ReleaseWithCallback test loop start2 `)
919        await avRecorder.prepare(avConfig).then(() => {
920            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
921            console.info('prepare success');
922        }).catch((err) => {
923            console.info('prepare failed and catch error is ' + err.message);
924        });
925        console.info(`avRecorderLoopCreate2ReleaseWithCallback test loop start3 `)
926        await startCallback(avRecorder);
927        await sleep(100)
928        console.info(`avRecorderLoopCreate2ReleaseWithCallback test loop start4 `)
929        await resetCallback(avRecorder);
930        console.info(`avRecorderLoopCreate2ReleaseWithCallback test loop start5 `)
931        console.info(`avRecorderLoopCreate2ReleaseWithCallback loop time is :${loopTimes}`)
932        loopTimes--;
933        avRecorder.release((err) => {
934            if (err == null) {
935                console.info('release AVRecorder success');
936                if(loopTimes == 0){
937                    done();
938                }
939            } else {
940                console.info('release AVRecorder failed and error is ' + err.message);
941            }
942        });
943    }
944}
945
946export async function avRecorderLoopPrepare2StopWithCallback(avConfig, avRecorder, done, eventEmitter, mySteps) {
947    avRecorder = await idle(avRecorder);
948    sleep(200)
949    eventEmitter.emit(mySteps[0], avRecorder, avConfig, 3000, mySteps, done);
950}
951
952
953export async function avRecorderLoopPause2ResumeWithCallback(avConfig, avRecorder, done, eventEmitter, mySteps) {
954    avRecorder = await idle(avRecorder);
955    console.info('case avConfig.url is ' + avConfig.url);
956    await preparePromise(avRecorder, avConfig);
957    sleep(2000)
958    await startPromise(avRecorder);
959    eventEmitter.emit(mySteps[0], avRecorder, avConfig, 3000, mySteps, done);
960}
961
962export async function avRecorderLoopCreate2Release2WithCallback(avConfig, avRecorder, loopTimes, done) {
963    while (loopTimes > 0) {
964        avRecorder = await idle(avRecorder);
965        console.info('case avConfig.url is ' + avConfig.url);
966        releaseCallback(avRecorder);
967        console.info(`avRecorderLoopCreate2Release2WithCallback loop time is :${loopTimes}`)
968        loopTimes--;
969        if(loopTimes == 0){
970            sleep(2000)
971            done();
972        }
973    }
974}
975
976export async function avRecorderReliabilitTest01(avConfig, avRecorder, recorderTime, done) {
977    let result = true;
978    avRecorder = await idle(avRecorder);
979    sleep(2000)
980    await avRecorder.pause((err) => {
981        if (err == null) {
982            console.info('pause avRecorderReliabilitTest01 success');
983        } else {
984            result = false
985            expect(result).assertEqual(false);
986            console.info('pause avRecorderReliabilitTest01 failed and error is ' + err.message);
987            sleep(1000)
988        }
989    });
990    sleep(2000)
991    console.info('pause avRecorderReliabilitTest01 001');
992    await releaseDone(avRecorder, done)
993}
994
995export async function avRecorderReliabilitTest02(avConfig, avRecorder, recorderTime, done) {
996    avRecorder = await idle(avRecorder);
997    await preparePromise(avRecorder, avConfig)
998    await releaseDone(avRecorder, done)
999}
1000
1001export async function avRecorderReliabilitTest03(avConfig, avRecorder, recorderTime, done) {
1002    avRecorder = await idle(avRecorder);
1003    setPrepareOnCallback(avConfig, avRecorder, recorderTime, done)
1004    await avRecorder.prepare(avConfig)
1005}
1006
1007export async function avRecorderReliabilitTest001(avConfig, avRecorder, recorderTime, done) {
1008    idleCallback(avRecorder, avConfig, done)
1009}
1010
1011export async function avRecorderReliabilitTest04(avConfig, avRecorder, recorderTime, done) {
1012    let result = true;
1013    avRecorder = await idle(avRecorder);
1014    await avRecorder.resume().then(() => {
1015        console.info('resume avRecorderReliabilitTest04 success');
1016    }).catch((err) => {
1017        console.info('resume avRecorderReliabilitTest04 failed and catch error is ' + err.message);
1018        result = false
1019    });
1020    expect(result).assertEqual(false);
1021    await preparePromise(avRecorder, avConfig)
1022    await releaseDone(avRecorder, done)
1023}
1024
1025export async function avRecorderReliabilitTest05(avConfig, avRecorder, recorderTime, done) {
1026    avRecorder = await idle(avRecorder);
1027    await prepareCallback(avRecorder, avConfig)
1028    await releaseDone(avRecorder, done)
1029}
1030
1031export async function avRecorderReliabilitTest06(avConfig, avRecorder, recorderTime, done) {
1032    avRecorder = await idle(avRecorder);
1033    await preparePromise(avRecorder, avConfig)
1034    await startPromise(avRecorder)
1035    await pausePromise(avRecorder)
1036    await startPromise(avRecorder)
1037    await releaseDone(avRecorder, done)
1038}
1039
1040export async function avRecorderReliabilitTest07(avConfig, avRecorder, recorderTime, done) {
1041    avRecorder = await idle(avRecorder);
1042    await preparePromise(avRecorder, avConfig)
1043    await startPromise(avRecorder)
1044    await resumePromise(avRecorder)
1045    await startPromise(avRecorder)
1046    await releaseDone(avRecorder, done)
1047}
1048
1049export async function avRecorderReliabilitTest08(avConfig, avRecorder, recorderTime, done) {
1050    let result = true;
1051    avRecorder = await idle(avRecorder);
1052    await avRecorder.pause().then(() => {
1053        console.info('pause avRecorderReliabilitTest08 success');
1054    }).catch((err) => {
1055        console.info('pause avRecorderReliabilitTest08 failed and catch error is ' + err.message);
1056        result = false
1057    });
1058    expect(result).assertEqual(false);
1059    await releaseDone(avRecorder, done)
1060}
1061
1062export async function avRecorderReliabilitTest09(avConfig, avRecorder, recorderTime, done) {
1063    let result = true;
1064    avRecorder = await idle(avRecorder);
1065    await preparePromise(avRecorder, avConfig)
1066    await avRecorder.pause().then(() => {
1067        console.info('pause avRecorderReliabilitTest09 success');
1068    }).catch((err) => {
1069        console.info('pause avRecorderReliabilitTest09 failed and catch error is ' + err.message);
1070        result = false
1071    });
1072    expect(result).assertEqual(false);
1073    await releaseDone(avRecorder, done)
1074}
1075
1076export async function avRecorderReliabilitTest10(avConfig, avRecorder, recorderTime, done) {
1077    avRecorder = await idle(avRecorder);
1078    await preparePromise(avRecorder, avConfig)
1079    await startPromise(avRecorder)
1080    await pausePromise(avRecorder)
1081    await releaseDone(avRecorder, done)
1082}
1083
1084export async function avRecorderReliabilitTest11(avConfig, avRecorder, recorderTime, done) {
1085    avRecorder = await idle(avRecorder);
1086    await preparePromise(avRecorder, avConfig)
1087    await startPromise(avRecorder)
1088    await resumePromise(avRecorder)
1089    await pausePromise(avRecorder)
1090    await releaseDone(avRecorder, done)
1091}
1092
1093export async function avRecorderReliabilitTest12(avConfig, avRecorder, recorderTime, done) {
1094    let result = true;
1095    avRecorder = await idle(avRecorder);
1096    await preparePromise(avRecorder, avConfig)
1097    await startPromise(avRecorder)
1098    await stopPromise(avRecorder)
1099    await avRecorder.pause().then(() => {
1100        console.info('pause avRecorderReliabilitTest12 success');
1101    }).catch((err) => {
1102        console.info('pause avRecorderReliabilitTest12 failed and catch error is ' + err.message);
1103        result = false
1104    });
1105    expect(result).assertEqual(false);
1106    await releaseDone(avRecorder, done)
1107}
1108
1109export async function avRecorderReliabilitTest13(avConfig, avRecorder, recorderTime, done) {
1110    let result = true;
1111    avRecorder = await idle(avRecorder);
1112    await preparePromise(avRecorder, avConfig)
1113    await startPromise(avRecorder)
1114    await stopPromise(avRecorder)
1115    await resetPromise(avRecorder)
1116    await avRecorder.pause().then(() => {
1117        console.info('pause avRecorderReliabilitTest13 success');
1118    }).catch((err) => {
1119        console.info('pause avRecorderReliabilitTest13 failed and catch error is ' + err.message);
1120        result = false
1121    });
1122    expect(result).assertEqual(false);
1123    await releaseDone(avRecorder, done)
1124}
1125
1126export async function avRecorderReliabilitTest14(avConfig, avRecorder, recorderTime, done) {
1127    let result1 = true;
1128    let result2 = true;
1129    let result3 = true;
1130    let result4 = true;
1131    let result5 = true;
1132
1133    avRecorder = await idle(avRecorder);
1134    await avRecorder.pause().then(() => {
1135        console.info('pause avRecorderReliabilitTest14 success');
1136    }).catch((err) => {
1137        console.info('pause avRecorderReliabilitTest14 failed and catch error is ' + err.message);
1138        result1 = false
1139    });
1140    expect(result1).assertEqual(false);
1141
1142    await preparePromise(avRecorder, avConfig)
1143    await avRecorder.pause().then(() => {
1144        console.info('pause avRecorderReliabilitTest14 success');
1145    }).catch((err) => {
1146        console.info('pause avRecorderReliabilitTest14 failed and catch error is ' + err.message);
1147        result2 = false
1148    });
1149    expect(result2).assertEqual(false);
1150
1151    await startPromise(avRecorder)
1152    await avRecorder.pause().then(() => {
1153        console.info('pause avRecorderReliabilitTest14 success');
1154    }).catch((err) => {
1155        console.info('pause avRecorderReliabilitTest14 failed and catch error is ' + err.message);
1156        result3 = false
1157    });
1158    expect(result3).assertEqual(true);
1159
1160    await stopPromise(avRecorder)
1161    await avRecorder.pause().then(() => {
1162        console.info('pause avRecorderReliabilitTest14 success');
1163    }).catch((err) => {
1164        console.info('pause avRecorderReliabilitTest14 failed and catch error is ' + err.message);
1165        result4 = false
1166    });
1167    expect(result4).assertEqual(false);
1168
1169    await resetPromise(avRecorder)
1170    await avRecorder.pause().then(() => {
1171        console.info('pause avRecorderReliabilitTest14 success');
1172    }).catch((err) => {
1173        console.info('pause avRecorderReliabilitTest14 failed and catch error is ' + err.message);
1174        result5 = false
1175    });
1176    expect(result5).assertEqual(false);
1177
1178    await releaseDone(avRecorder, done)
1179}
1180
1181export async function avRecorderReliabilitTest15(avConfig, avRecorder, recorderTime, done) {
1182    let result1 = true;
1183    let result2 = true;
1184    let result3 = true;
1185
1186    avRecorder = await idle(avRecorder);
1187    await preparePromise(avRecorder, avConfig)
1188    await startPromise(avRecorder)
1189    await avRecorder.pause().then(() => {
1190        console.info('pause avRecorderReliabilitTest15 success');
1191    }).catch((err) => {
1192        console.info('pause avRecorderReliabilitTest15 failed and catch error is ' + err.message);
1193        result1 = false
1194    });
1195    expect(result1).assertEqual(true);
1196
1197    await avRecorder.pause().then(() => {
1198        console.info('pause avRecorderReliabilitTest15 success');
1199    }).catch((err) => {
1200        console.info('pause avRecorderReliabilitTest15 failed and catch error is ' + err.message);
1201        result2 = false
1202    });
1203    expect(result2).assertEqual(true);
1204
1205    await avRecorder.pause().then(() => {
1206        console.info('pause avRecorderReliabilitTest15 success');
1207    }).catch((err) => {
1208        console.info('pause avRecorderReliabilitTest15 failed and catch error is ' + err.message);
1209        result3 = false
1210    });
1211    expect(result3).assertEqual(true);
1212
1213    await releaseDone(avRecorder, done)
1214}
1215
1216export async function avRecorderReliabilitTest16(avConfig, avRecorder, recorderTime, done) {
1217    let result = true;
1218    avRecorder = await idle(avRecorder);
1219    await avRecorder.resume().then(() => {
1220        console.info('resume AVRecorder success');
1221    }).catch((err) => {
1222        console.info('resume AVRecorder failed and catch error is ' + err.message);
1223        result = false
1224    });
1225    expect(result).assertEqual(false);
1226    await releaseDone(avRecorder, done)
1227}
1228
1229export async function avRecorderReliabilitTest17(avConfig, avRecorder, recorderTime, done) {
1230    let result = true;
1231    avRecorder = await idle(avRecorder);
1232    await preparePromise(avRecorder, avConfig)
1233    await avRecorder.resume().then(() => {
1234        console.info('resume AVRecorder success');
1235    }).catch((err) => {
1236        console.info('resume AVRecorder failed and catch error is ' + err.message);
1237        result = false
1238    });
1239    expect(result).assertEqual(false);
1240    await releaseDone(avRecorder, done)
1241}
1242
1243export async function avRecorderReliabilitTest18(avConfig, avRecorder, recorderTime, done) {
1244    let result = true;
1245    avRecorder = await idle(avRecorder);
1246    await preparePromise(avRecorder, avConfig)
1247    await startPromise(avRecorder)
1248    await avRecorder.resume().then(() => {
1249        console.info('avRecorderReliabilitTest18 resume AVRecorder success');
1250    }).catch((err) => {
1251        console.info('avRecorderReliabilitTest18 resume AVRecorder failed and catch error is ' + err.message);
1252        result = false
1253    });
1254    expect(result).assertEqual(true);
1255    await releaseDone(avRecorder, done)
1256}
1257
1258export async function avRecorderReliabilitTest19(avConfig, avRecorder, recorderTime, done) {
1259    let result = true;
1260    avRecorder = await idle(avRecorder);
1261    await preparePromise(avRecorder, avConfig)
1262    await startPromise(avRecorder)
1263    await pausePromise(avRecorder)
1264    await avRecorder.resume().then(() => {
1265        console.info('avRecorderReliabilitTest19 resume AVRecorder success');
1266    }).catch((err) => {
1267        console.info('avRecorderReliabilitTest19 resume AVRecorder failed and catch error is ' + err.message);
1268        result = false
1269    });
1270    expect(result).assertEqual(true);
1271    await releaseDone(avRecorder, done)
1272}
1273
1274export async function avRecorderReliabilitTest20(avConfig, avRecorder, recorderTime, done) {
1275    let result = true;
1276    avRecorder = await idle(avRecorder);
1277    await preparePromise(avRecorder, avConfig)
1278    await startPromise(avRecorder)
1279    await stopPromise(avRecorder)
1280    await avRecorder.resume().then(() => {
1281        console.info('avRecorderReliabilitTest20 resume AVRecorder success');
1282    }).catch((err) => {
1283        console.info('avRecorderReliabilitTest20 resume AVRecorder failed and catch error is ' + err.message);
1284        result = false
1285    });
1286    expect(result).assertEqual(false);
1287    await releaseDone(avRecorder, done)
1288}
1289
1290export async function avRecorderReliabilitTest21(avConfig, avRecorder, recorderTime, done) {
1291    let result = true;
1292    avRecorder = await idle(avRecorder);
1293    await preparePromise(avRecorder, avConfig)
1294    await startPromise(avRecorder)
1295    await pausePromise(avRecorder)
1296    await resetPromise(avRecorder)
1297    await avRecorder.resume().then(() => {
1298        console.info('avRecorderReliabilitTest20 resume AVRecorder success');
1299    }).catch((err) => {
1300        console.info('avRecorderReliabilitTest20 resume AVRecorder failed and catch error is ' + err.message);
1301        result = false
1302    });
1303    expect(result).assertEqual(false);
1304    await releaseDone(avRecorder, done)
1305}
1306
1307export async function avRecorderReliabilitTest22(avConfig, avRecorder, recorderTime, done) {
1308    let result1 = true;
1309    let result2 = true;
1310    let result3 = true;
1311    let result4 = true;
1312    let result5 = true;
1313
1314    avRecorder = await idle(avRecorder);
1315    await avRecorder.resume().then(() => {
1316        console.info('avRecorderReliabilitTest22 resume avRecorder success');
1317    }).catch((err) => {
1318        console.info('avRecorderReliabilitTest22 resume avRecorder failed and catch error is ' + err.message);
1319        result1 = false
1320    });
1321    expect(result1).assertEqual(false);
1322
1323    await preparePromise(avRecorder, avConfig)
1324    await avRecorder.resume().then(() => {
1325        console.info('avRecorderReliabilitTest22 resume avRecorder success');
1326    }).catch((err) => {
1327        console.info('avRecorderReliabilitTest22 resume avRecorder failed and catch error is ' + err.message);
1328        result2 = false
1329    });
1330    expect(result2).assertEqual(false);
1331
1332    await startPromise(avRecorder)
1333    await avRecorder.resume().then(() => {
1334        console.info('avRecorderReliabilitTest22 resume avRecorder success');
1335    }).catch((err) => {
1336        console.info('avRecorderReliabilitTest22 resume avRecorder failed and catch error is ' + err.message);
1337        result3 = false
1338    });
1339    expect(result3).assertEqual(true);
1340
1341    await pausePromise(avRecorder)
1342    await avRecorder.resume().then(() => {
1343        console.info('avRecorderReliabilitTest22 resume avRecorder success');
1344    }).catch((err) => {
1345        console.info('avRecorderReliabilitTest22 resume avRecorder failed and catch error is ' + err.message);
1346        result4 = false
1347    });
1348    expect(result4).assertEqual(true);
1349
1350    await resetPromise(avRecorder)
1351    await avRecorder.resume().then(() => {
1352        console.info('avRecorderReliabilitTest22 resume avRecorder success');
1353    }).catch((err) => {
1354        console.info('avRecorderReliabilitTest22 resume avRecorder failed and catch error is ' + err.message);
1355        result5 = false
1356    });
1357    expect(result5).assertEqual(false);
1358
1359    await releaseDone(avRecorder, done)
1360}
1361
1362export async function avRecorderReliabilitTest23(avConfig, avRecorder, recorderTime, done) {
1363    let result1 = true;
1364    let result2 = true;
1365    let result3 = true;
1366
1367    avRecorder = await idle(avRecorder);
1368    await preparePromise(avRecorder, avConfig)
1369    await startPromise(avRecorder)
1370    await pausePromise(avRecorder)
1371    await avRecorder.resume().then(() => {
1372        console.info('avRecorderReliabilitTest23 resume avRecorder success');
1373    }).catch((err) => {
1374        console.info('avRecorderReliabilitTest23 resume avRecorder failed and catch error is ' + err.message);
1375        result1 = false
1376    });
1377    expect(result1).assertEqual(true);
1378
1379    await avRecorder.resume().then(() => {
1380        console.info('avRecorderReliabilitTest23 resume avRecorder success');
1381    }).catch((err) => {
1382        console.info('avRecorderReliabilitTest23 resume avRecorder failed and catch error is ' + err.message);
1383        result2 = false
1384    });
1385    expect(result2).assertEqual(true);
1386
1387    await avRecorder.resume().then(() => {
1388        console.info('avRecorderReliabilitTest23 resume avRecorder success');
1389    }).catch((err) => {
1390        console.info('avRecorderReliabilitTest23 resume avRecorder failed and catch error is ' + err.message);
1391        result3 = false
1392    });
1393    expect(result3).assertEqual(true);
1394
1395    await releaseDone(avRecorder, done)
1396}
1397
1398export async function avRecorderReliabilitTest24(avConfig, avRecorder, recorderTime, done) {
1399    let result = true;
1400    avRecorder = await idle(avRecorder);
1401    await preparePromise(avRecorder, avConfig)
1402    await startPromise(avRecorder, recorderTime)
1403    await pausePromise(avRecorder)
1404    await avRecorder.stop().then(() => {
1405        console.info('avRecorderReliabilitTest24 stop avRecorder success');
1406    }).catch((err) => {
1407        console.info('avRecorderReliabilitTest24 stop avRecorder failed and catch error is ' + err.message);
1408        result = false
1409    });
1410    expect(result).assertEqual(true);
1411    await releaseDone(avRecorder, done)
1412}
1413
1414export async function avRecorderReliabilitTest25(avConfig, avRecorder, recorderTime, done) {
1415    let result = true;
1416    avRecorder = await idle(avRecorder);
1417    await preparePromise(avRecorder, avConfig)
1418    await startPromise(avRecorder, recorderTime)
1419    await pausePromise(avRecorder)
1420    await resumePromise(avRecorder)
1421    await avRecorder.stop().then(() => {
1422        console.info('avRecorderReliabilitTest25 stop avRecorder success');
1423    }).catch((err) => {
1424        console.info('avRecorderReliabilitTest25 stop avRecorder failed and catch error is ' + err.message);
1425        result = false
1426    });
1427    expect(result).assertEqual(true);
1428    await releaseDone(avRecorder, done)
1429}
1430
1431export async function avRecorderReliabilitTest26(avConfig, avRecorder, recorderTime, done) {
1432    let result = true;
1433    avRecorder = await idle(avRecorder);
1434    await preparePromise(avRecorder, avConfig)
1435    await startPromise(avRecorder)
1436    await pausePromise(avRecorder)
1437    await avRecorder.reset().then(() => {
1438        console.info('avRecorderReliabilitTest26 reset avRecorder success');
1439    }).catch((err) => {
1440        console.info('avRecorderReliabilitTest26 reset avRecorder failed and catch error is ' + err.message);
1441        result = false
1442    });
1443    expect(result).assertEqual(true);
1444    await releaseDone(avRecorder, done)
1445}
1446
1447export async function avRecorderReliabilitTest27(avConfig, avRecorder, recorderTime, done) {
1448    let result = true;
1449    avRecorder = await idle(avRecorder);
1450    await preparePromise(avRecorder, avConfig)
1451    await startPromise(avRecorder)
1452    await pausePromise(avRecorder)
1453    await resumePromise(avRecorder)
1454    await avRecorder.reset().then(() => {
1455        console.info('avRecorderReliabilitTest27 reset avRecorder success');
1456    }).catch((err) => {
1457        console.info('avRecorderReliabilitTest27 reset avRecorder failed and catch error is ' + err.message);
1458        result = false
1459    });
1460    expect(result).assertEqual(true);
1461    await releaseDone(avRecorder, done)
1462}
1463
1464export async function avRecorderReliabilitTest28(avConfig, avRecorder, recorderTime, done) {
1465    let result = true;
1466    avRecorder = await idle(avRecorder);
1467    await preparePromise(avRecorder, avConfig)
1468    await startPromise(avRecorder)
1469    await pausePromise(avRecorder)
1470    await avRecorder.release().then(() => {
1471        console.info('avRecorderReliabilitTest28 release avRecorder success');
1472    }).catch((err) => {
1473        console.info('avRecorderReliabilitTest28 release avRecorder failed and catch error is ' + err.message);
1474        result = false
1475    });
1476    expect(result).assertEqual(true);
1477    await releaseDone(avRecorder, done)
1478}
1479
1480export async function avRecorderReliabilitTest29(avConfig, avRecorder, recorderTime, done) {
1481    let result = true;
1482    avRecorder = await idle(avRecorder);
1483    await preparePromise(avRecorder, avConfig)
1484    await startPromise(avRecorder)
1485    await pausePromise(avRecorder)
1486    await resumePromise(avRecorder)
1487    await avRecorder.release().then(() => {
1488        console.info('avRecorderReliabilitTest29 release avRecorder success');
1489    }).catch((err) => {
1490        console.info('avRecorderReliabilitTest29 release avRecorder failed and catch error is ' + err.message);
1491        result = false
1492    });
1493    expect(result).assertEqual(true);
1494    await releaseDone(avRecorder, done)
1495}
1496
1497export async function avRecorderReliabilitTest30(avConfig, avRecorder, recorderTime, done) {
1498    let result1 = true;
1499    let result2 = true;
1500    let result3 = true;
1501
1502    avRecorder = await idle(avRecorder);
1503    await preparePromise(avRecorder, avConfig)
1504    await startPromise(avRecorder)
1505    await pausePromise(avRecorder)
1506    await avRecorder.release().then(() => {
1507        console.info('avRecorderReliabilitTest30 release avRecorder success');
1508    }).catch((err) => {
1509        console.info('avRecorderReliabilitTest30 release avRecorder failed and catch error is ' + err.message);
1510        result1 = false
1511    });
1512    expect(result1).assertEqual(true);
1513
1514    await avRecorder.release().then(() => {
1515        console.info('avRecorderReliabilitTest30 release avRecorder success');
1516    }).catch((err) => {
1517        console.info('avRecorderReliabilitTest30 release avRecorder failed and catch error is ' + err.message);
1518        result2 = false
1519    });
1520    expect(result2).assertEqual(true);
1521
1522    await avRecorder.release().then(() => {
1523        console.info('avRecorderReliabilitTest30 release avRecorder success');
1524    }).catch((err) => {
1525        console.info('avRecorderReliabilitTest30 release avRecorder failed and catch error is ' + err.message);
1526        result3 = false
1527    });
1528    expect(result3).assertEqual(true);
1529    done();
1530}
1531
1532export async function avRecorderReliabilitTest31(avConfig, avRecorder, recorderTime, done) {
1533    let surfaceID = null;
1534    let result = true;
1535    avRecorder = await idle(avRecorder);
1536    await avRecorder.getInputSurface().then((surfaceId) => {
1537        console.info('avRecorderReliabilitTest31 getInputSurface success');
1538        surfaceID = surfaceId;
1539    }).catch((err) => {
1540        console.info('avRecorderReliabilitTest31 getInputSurface failed and catch error is ' + err.message);
1541        result = false
1542    });
1543    expect(result).assertEqual(false);
1544    await releaseDone(avRecorder, done)
1545}
1546
1547
1548export async function getInputSurfaceTest32(avConfig, avRecorder, recorderTime, done) {
1549    console.info(`case getInputSurfaceTest in`);
1550    avRecorder.on('stateChange', async (state, reason) => {
1551        console.info('case state has changed, new state is :' + state);
1552        switch (state) {
1553            case AV_RECORDER_STATE.PREPARED:
1554                console.info(`case getInputSurfaceTest32 state is PREPARED`);
1555                expect(avRecorder.state).assertEqual('prepared');
1556                getInputSurfacePromise(avRecorder)
1557                releasePromise(avRecorder)
1558                break;
1559            case AV_RECORDER_STATE.RELEASED:
1560                console.info(`case getInputSurfaceTest32 state is released`);
1561                expect(avRecorder.state).assertEqual('released');
1562                done();
1563                break;
1564            case AV_RECORDER_STATE.ERROR:
1565                console.info(`case getInputSurfaceTest32 state is ERROR`)
1566                expect(avRecorder.state).assertEqual('error');
1567                break;
1568            default:
1569                console.info('case state is unknown');
1570        }
1571    });
1572    avRecorder.on('error', (err) => {
1573        console.info('case getInputSurfaceTest32 avRecorder.on(error) called, errMessage is ' + err.message);
1574        done();
1575    });
1576}
1577
1578export async function avRecorderReliabilitTest32(avConfig, avRecorder, recorderTime, done) {
1579    avRecorder = await idle(avRecorder);
1580    getInputSurfaceTest32(avConfig, avRecorder, recorderTime, done)
1581    await preparePromise(avRecorder, avConfig)
1582}
1583
1584export async function getInputSurfaceTest33(avConfig, avRecorder, recorderTime, done) {
1585    console.info(`case getInputSurfaceTest33 in`);
1586    avRecorder.on('stateChange', async (state, reason) => {
1587        console.info('case state has changed, new state is :' + state);
1588        switch (state) {
1589            case AV_RECORDER_STATE.PREPARED:
1590                console.info(`case getInputSurfaceTest33 state is PREPARED`);
1591                expect(avRecorder.state).assertEqual('prepared');
1592                getInputSurfacePromise(avRecorder)
1593                startPromise(avRecorder)
1594                break;
1595            case AV_RECORDER_STATE.STARTED:
1596                console.info(`case getInputSurfaceTest33 state is started`)
1597                expect(avRecorder.state).assertEqual('started');
1598                await sleep(recorderTime);
1599                console.info(`case getInputSurfaceTest33 111`)
1600                getInputSurfacePromise(avRecorder)
1601                console.info(`case getInputSurfaceTest33 222`)
1602                releasePromise(avRecorder)
1603                break;
1604            case AV_RECORDER_STATE.RELEASED:
1605                console.info(`case getInputSurfaceTest33 state is released`);
1606                expect(avRecorder.state).assertEqual('released');
1607                done();
1608                break;
1609            case AV_RECORDER_STATE.ERROR:
1610                console.info(`case getInputSurfaceTest33 state is ERROR`)
1611                expect(avRecorder.state).assertEqual('error');
1612                break;
1613            default:
1614                console.info('case state is unknown');
1615        }
1616    });
1617    avRecorder.on('error', (err) => {
1618        console.info('case avRecorder.on(error) called, errMessage is ' + err.message);
1619        done();
1620    });
1621}
1622
1623export async function avRecorderReliabilitTest33(avConfig, avRecorder, recorderTime, done) {
1624    avRecorder = await idle(avRecorder);
1625    getInputSurfaceTest33(avConfig, avRecorder, recorderTime, done)
1626    await preparePromise(avRecorder, avConfig)
1627}
1628
1629export async function getInputSurfaceTest34(avConfig, avRecorder, recorderTime, done) {
1630    console.info(`case getInputSurfaceTest34 in`);
1631    avRecorder.on('stateChange', async (state, reason) => {
1632        console.info('case state has changed, new state is :' + state);
1633        switch (state) {
1634            case AV_RECORDER_STATE.PREPARED:
1635                console.info(`case getInputSurfaceTest34 state is PREPARED`);
1636                expect(avRecorder.state).assertEqual('prepared');
1637                getInputSurfacePromise(avRecorder)
1638                startPromise(avRecorder)
1639                break;
1640            case AV_RECORDER_STATE.STARTED:
1641                console.info(`case getInputSurfaceTest34 state is started`)
1642                expect(avRecorder.state).assertEqual('started');
1643                await sleep(recorderTime);
1644                pausePromise(avRecorder)
1645                break;
1646            case AV_RECORDER_STATE.PAUSED:
1647                console.info(`case getInputSurfaceTest34 state is paused`)
1648                expect(avRecorder.state).assertEqual('paused');
1649                getInputSurfacePromise(avRecorder)
1650                releasePromise(avRecorder)
1651                break;
1652            case AV_RECORDER_STATE.RELEASED:
1653                console.info(`case getInputSurfaceTest34 state is released`);
1654                expect(avRecorder.state).assertEqual('released');
1655                done();
1656                break;
1657            case AV_RECORDER_STATE.ERROR:
1658                console.info(`case getInputSurfaceTest34 state is ERROR`)
1659                expect(avRecorder.state).assertEqual('error');
1660                break;
1661            default:
1662                console.info('case state is unknown');
1663        }
1664    });
1665    avRecorder.on('error', (err) => {
1666        console.info('case avRecorder.on(error) called, errMessage is ' + err.message);
1667        done();
1668    });
1669}
1670
1671export async function avRecorderReliabilitTest34(avConfig, avRecorder, recorderTime, done) {
1672    avRecorder = await idle(avRecorder);
1673    getInputSurfaceTest34(avConfig, avRecorder, recorderTime, done)
1674    await preparePromise(avRecorder, avConfig)
1675}
1676
1677export async function getInputSurfaceTest35(avConfig, avRecorder, recorderTime, done) {
1678    console.info(`case getInputSurfaceTest35 in`);
1679    avRecorder.on('stateChange', async (state, reason) => {
1680        console.info('case state has changed, new state is :' + state);
1681        switch (state) {
1682            case AV_RECORDER_STATE.PREPARED:
1683                console.info(`case getInputSurfaceTest35 state is PREPARED`);
1684                expect(avRecorder.state).assertEqual('prepared');
1685                getInputSurfacePromise(avRecorder)
1686                startPromise(avRecorder)
1687                break;
1688            case AV_RECORDER_STATE.STARTED:
1689                console.info(`case getInputSurfaceTest35 state is started`)
1690                expect(avRecorder.state).assertEqual('started');
1691                await sleep(recorderTime);
1692                pausePromise(avRecorder)
1693                break;
1694            case AV_RECORDER_STATE.PAUSED:
1695                console.info(`case getInputSurfaceTest35 state is paused`)
1696                expect(avRecorder.state).assertEqual('paused');
1697                resumePromise(avRecorder)
1698                getInputSurfacePromise(avRecorder)
1699                releasePromise(avRecorder)
1700                break;
1701            case AV_RECORDER_STATE.RELEASED:
1702                console.info(`case getInputSurfaceTest35 state is released`);
1703                expect(avRecorder.state).assertEqual('released');
1704                done();
1705                break;
1706            case AV_RECORDER_STATE.ERROR:
1707                console.info(`case getInputSurfaceTest35 state is ERROR`)
1708                expect(avRecorder.state).assertEqual('error');
1709                break;
1710            default:
1711                console.info('case state is unknown');
1712        }
1713    });
1714    avRecorder.on('error', (err) => {
1715        console.info('case avRecorder.on(error) called, errMessage is ' + err.message);
1716        done();
1717    });
1718}
1719
1720export async function avRecorderReliabilitTest35(avConfig, avRecorder, recorderTime, done) {
1721    avRecorder = await idle(avRecorder);
1722    getInputSurfaceTest35(avConfig, avRecorder, recorderTime, done)
1723    await preparePromise(avRecorder, avConfig)
1724}
1725
1726export async function getInputSurfaceTest36(avConfig, avRecorder, recorderTime, done) {
1727    console.info(`case getInputSurfaceTest36 in`);
1728    avRecorder.on('stateChange', async (state, reason) => {
1729        console.info('case state has changed, new state is :' + state);
1730        switch (state) {
1731            case AV_RECORDER_STATE.PREPARED:
1732                console.info(`case getInputSurfaceTest36 state is PREPARED`);
1733                expect(avRecorder.state).assertEqual('prepared');
1734                getInputSurfacePromise(avRecorder)
1735                startPromise(avRecorder)
1736                break;
1737            case AV_RECORDER_STATE.STARTED:
1738                console.info(`case getInputSurfaceTest36 state is started`)
1739                expect(avRecorder.state).assertEqual('started');
1740                await sleep(recorderTime);
1741                stopPromise(avRecorder)
1742                break;
1743            case AV_RECORDER_STATE.STOPPED:
1744                console.info(`case getInputSurfaceTest36 state is stopped`)
1745                expect(avRecorder.state).assertEqual('stopped');
1746                getInputSurfacePromise(avRecorder)
1747                releasePromise(avRecorder)
1748                break;
1749            case AV_RECORDER_STATE.RELEASED:
1750                console.info(`case getInputSurfaceTest36 state is released`);
1751                expect(avRecorder.state).assertEqual('released');
1752                done();
1753                break;
1754            case AV_RECORDER_STATE.ERROR:
1755                console.info(`case getInputSurfaceTest36 state is ERROR`)
1756                expect(avRecorder.state).assertEqual('error');
1757                break;
1758            default:
1759                console.info('case state is unknown');
1760        }
1761    });
1762    avRecorder.on('error', (err) => {
1763        console.info('case avRecorder.on(error) called, errMessage is ' + err.message);
1764        done();
1765    });
1766}
1767
1768export async function avRecorderReliabilitTest36(avConfig, avRecorder, recorderTime, done) {
1769    avRecorder = await idle(avRecorder);
1770    getInputSurfaceTest36(avConfig, avRecorder, recorderTime, done)
1771    await preparePromise(avRecorder, avConfig)
1772}
1773
1774export async function getInputSurfaceTest37(avConfig, avRecorder, recorderTime, done) {
1775    console.info(`case getInputSurfaceTest37 in`);
1776    avRecorder.on('stateChange', async (state, reason) => {
1777        console.info('case state has changed, new state is :' + state);
1778        switch (state) {
1779            case AV_RECORDER_STATE.IDLE:
1780                console.info(`case getInputSurfaceTest37 state is idle`);
1781                expect(avRecorder.state).assertEqual("idle");
1782                getInputSurfacePromise(avRecorder)
1783                releasePromise(avRecorder)
1784                break;
1785            case AV_RECORDER_STATE.PREPARED:
1786                console.info(`case getInputSurfaceTest37 state isPREPARED`);
1787                expect(avRecorder.state).assertEqual('prepared');
1788                getInputSurfacePromise(avRecorder)
1789                startPromise(avRecorder)
1790                break;
1791            case AV_RECORDER_STATE.STARTED:
1792                console.info(`case getInputSurfaceTest37 state isstarted`)
1793                expect(avRecorder.state).assertEqual('started');
1794                await sleep(recorderTime);
1795                resetPromise(avRecorder)
1796                break;
1797            case AV_RECORDER_STATE.RELEASED:
1798                console.info(`case getInputSurfaceTest37 state is released`);
1799                expect(avRecorder.state).assertEqual('released');
1800                done();
1801                break;
1802            case AV_RECORDER_STATE.ERROR:
1803                console.info(`case getInputSurfaceTest37 state is ERROR`)
1804                expect(avRecorder.state).assertEqual('error');
1805                break;
1806            default:
1807                console.info('case state is unknown');
1808        }
1809    });
1810    avRecorder.on('error', (err) => {
1811        console.info('case avRecorder.on(error) called, errMessage is ' + err.message);
1812        done();
1813    });
1814}
1815
1816export async function avRecorderReliabilitTest37(avConfig, avRecorder, recorderTime, done) {
1817    avRecorder = await idle(avRecorder);
1818    getInputSurfaceTest37(avConfig, avRecorder, recorderTime, done)
1819    await preparePromise(avRecorder, avConfig)
1820}
1821
1822async function  getInputSurfaceCatachError(avRecorder, result, surfaceID){
1823    await avRecorder.getInputSurface().then((surfaceId) => {
1824        console.info('getInputSurfaceTest38 getInputSurface success');
1825        surfaceID = surfaceId;
1826    }).catch((err) => {
1827        console.info('getInputSurfaceTest38 getInputSurface failed and catch error is ' + err.message);
1828        result = false
1829        console.info('getInputSurfaceTest38 getInputSurface result is ' + result);
1830        expect(result).assertEqual(false);
1831    });
1832}
1833
1834export async function getInputSurfaceTest38(avConfig, avRecorder, recorderTime, done) {
1835    let result1 = true;
1836    let result2 = true;
1837    let result3 = true;
1838    let surfaceID = null;
1839    console.info(`case getInputSurfaceTest38 in`);
1840    avRecorder.on('stateChange', async (state, reason) => {
1841        console.info('case state has changed, new state is :' + state);
1842        switch (state) {
1843            case AV_RECORDER_STATE.PREPARED:
1844                console.info(`case getInputSurfaceTest38 state is PREPARED`);
1845                expect(avRecorder.state).assertEqual('prepared');
1846                getInputSurfaceCatachError(avRecorder, result1, surfaceID)
1847                getInputSurfaceCatachError(avRecorder, result2, surfaceID)
1848                getInputSurfaceCatachError(avRecorder, result3, surfaceID)
1849                releasePromise(avRecorder)
1850                break;
1851            case AV_RECORDER_STATE.RELEASED:
1852                console.info(`case getInputSurfaceTest38 state is released`);
1853                expect(avRecorder.state).assertEqual('released');
1854                done();
1855                break;
1856            case AV_RECORDER_STATE.ERROR:
1857                console.info(`case getInputSurfaceTest38 state is ERROR`)
1858                expect(avRecorder.state).assertEqual('error');
1859                break;
1860            default:
1861                console.info('case state is unknown');
1862        }
1863    });
1864    avRecorder.on('error', (err) => {
1865        console.info('case avRecorder.on(error) called, errMessage is ' + err.message);
1866        done();
1867    });
1868}
1869
1870export async function avRecorderReliabilitTest38(avConfig, avRecorder, recorderTime, done) {
1871    avRecorder = await idle(avRecorder);
1872    getInputSurfaceTest38(avConfig, avRecorder, recorderTime, done)
1873    await preparePromise(avRecorder, avConfig)
1874}
1875
1876export async function createTimeTestCallback(avConfig, avRecorder, recorderTime, done) {
1877    let totalTime = 0;
1878    for(var i = 0;i < 10;i++){
1879        let start = Date.now();
1880        console.info(`createTimeTestCallback start time is : ${start}`)
1881        avRecorder = await idle(avRecorder);
1882        let end = Date.now()
1883        let execution = parseInt(end - start)
1884        console.info("createTimeTestCallback execution time  is :" + execution)
1885        totalTime = totalTime + execution;
1886        await avRecorder.release().then(() => {
1887            console.info('createTimeTestCallback avPlayer is release')
1888            console.info(`createTimeTestCallback avRecorder.state is : ${avRecorder.state}`)
1889            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
1890            if(i == 9){
1891                let avg = totalTime/10;
1892                console.info("createTimeTest avg time  is :" + avg)
1893                done();
1894            }
1895        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
1896    }
1897}
1898
1899export async function prepareTimeCallback(avConfig, avRecorder, recorderTime, done) {
1900    let totalTime = 0;
1901    for(var i = 0;i < 10;i++){
1902        avRecorder = await idle(avRecorder);
1903        await sleep(20)
1904        let start = Date.now();
1905        console.info(`prepareTimeWithoutCallback start time is : ${start}`)
1906        let end;
1907        await avRecorder.prepare(avConfig, (err) => {
1908            if (err == null) {
1909                expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
1910                console.info('prepareTimeWithoutCallback avPlayer state is prepared')
1911                end = Date.now()
1912                console.info(`prepareTimeWithoutCallback end time is : ${end}`)
1913            } else {
1914                console.info('prepare failed and error is ' + err.message);
1915            }
1916        })
1917        let execution = parseInt(end - start)
1918        console.info("prepareTimeWithoutCallback execution time  is :" + execution)
1919        totalTime = totalTime + execution;
1920        await avRecorder.release().then(() => {
1921            console.info('prepareTimeWithoutCallback avPlayer is release')
1922            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
1923        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
1924    }
1925    let avg = totalTime/10;
1926    console.info("prepareTimeWithoutCallback avg time  is :" + avg)
1927    done();
1928}
1929
1930export async function getInputSurfaceTimeTestCallback(avConfig, avRecorder, recorderTime, done) {
1931    let totalTime = 0;
1932    let surfaceID = null;
1933    for(var i = 0;i < 10;i++){
1934        avRecorder = await idle(avRecorder);
1935        await sleep(20)
1936        let end;
1937        await avRecorder.prepare(avConfig).then(() => {
1938            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
1939            console.info('getInputSurfaceTimeTestCallback avPlayer state is prepared')
1940        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
1941
1942        let start = Date.now();
1943        console.info(`getInputSurfaceTimeTestCallback start time is : ${start}`)
1944        await avRecorder.getInputSurface((err, surfaceId) => {
1945            if (err == null) {
1946                console.info('getInputSurfaceTimeTestCallback success');
1947                surfaceID = surfaceId;
1948                end = Date.now()
1949                console.info(`getInputSurfaceTimeTestCallback end time is : ${end}`)
1950                let execution = parseInt(end - start)
1951                console.info("getInputSurfaceTimeTestCallback execution time  is :" + execution)
1952                totalTime = totalTime + execution;
1953            } else {
1954                console.info('getInputSurfaceTimeTestCallback failed and error is ' + err.message);
1955            }
1956        });
1957        await avRecorder.release().then(() => {
1958            console.info('getInputSurfaceTimeTestCallback avPlayer is release')
1959            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
1960        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
1961    }
1962    let avg = totalTime/10;
1963    console.info("getInputSurfaceTimeTestCallback avg time  is :" + avg)
1964    done();
1965}
1966
1967export async function startTimeTestCallback(avConfig, avRecorder, recorderTime, done) {
1968    let totalTime = 0;
1969    for(var i = 0;i < 10;i++){
1970        avRecorder = await idle(avRecorder);
1971        await sleep(20)
1972        let end;
1973        await avRecorder.prepare(avConfig).then(() => {
1974            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
1975            console.info('startTimeTestCallback avPlayer state is prepared')
1976        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
1977        let start = Date.now();
1978        console.info(`startTimeTestCallback start time is : ${start}`)
1979        await avRecorder.start((err) => {
1980            if (err == null) {
1981                end = Date.now()
1982                console.info(`startTimeTestCallback end time is : ${end}`)
1983                console.info('startTimeTestCallback avRecorder success');
1984                let execution = parseInt(end - start)
1985                console.info("startTimeTestCallback execution time  is :" + execution)
1986                totalTime = totalTime + execution;
1987            } else {
1988                console.info('startTimeTestCallback failed and error is ' + err.message);
1989            }
1990        });
1991        await avRecorder.release().then(() => {
1992            console.info('startTimeTestCallback avPlayer is release')
1993            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
1994        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
1995    }
1996    let avg = totalTime/10;
1997    console.info("startTimeTestCallback avg time  is :" + avg)
1998    done();
1999}
2000
2001export async function pauseTimeTestCallback(avConfig, avRecorder, recorderTime, done) {
2002    let totalTime = 0;
2003    for(var i = 0;i < 10;i++){
2004        avRecorder = await idle(avRecorder);
2005        await sleep(20)
2006        await avRecorder.prepare(avConfig).then(() => {
2007            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2008            console.info('pauseTimeTestCallback avPlayer state is prepared')
2009        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
2010
2011        await avRecorder.start().then(() => {
2012            console.info('start avRecorder success');
2013        }).catch((err) => {
2014            console.info('pauseTimeTestCallback start avRecorder failed and catch error is ' + err.message);
2015        });
2016        let start = Date.now();
2017        console.info(`pauseTimeTestCallback start time is : ${start}`)
2018        let end;
2019        await avRecorder.pause((err) => {
2020            if (err == null) {
2021                end = Date.now()
2022                console.info(`pauseTimeTestCallback end time is : ${end}`)
2023                console.info('pause pauseTimeTestCallback success');
2024                let execution = parseInt(end - start)
2025                console.info("pauseTimeTestCallback execution time  is :" + execution)
2026                totalTime = totalTime + execution;
2027            } else {
2028                console.info('pause pauseTimeTestCallback failed and error is ' + err.message);
2029            }
2030        });
2031        await avRecorder.release().then(() => {
2032            console.info('pauseTimeTestCallback avPlayer is release')
2033            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2034        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
2035    }
2036    let avg = totalTime/10;
2037    console.info("pauseTimeTestCallback avg time  is :" + avg)
2038    done();
2039}
2040
2041export async function resumeTimeTestCallback(avConfig, avRecorder, recorderTime, done) {
2042    let totalTime = 0;
2043    for(var i = 0;i < 10;i++){
2044        avRecorder = await idle(avRecorder);
2045        await sleep(20)
2046        await avRecorder.prepare(avConfig).then(() => {
2047            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2048            console.info('resumeTimeTestCallback avPlayer state is prepared')
2049        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
2050
2051        await avRecorder.start().then(() => {
2052            console.info('start resumeTimeTestCallback success');
2053        }).catch((err) => {
2054            console.info('resumeTimeTestCallback start avRecorder failed and catch error is ' + err.message);
2055        });
2056        let end;
2057        await avRecorder.pause((err) => {
2058            if (err == null) {
2059                console.info('pause resumeTimeTestCallback success');
2060            } else {
2061                console.info('pause resumeTimeTestCallback failed and error is ' + err.message);
2062            }
2063        });
2064        let start = Date.now();
2065        console.info(`resumeTimeTestCallback start time is : ${start}`)
2066        await avRecorder.resume((err) => {
2067            if (err == null) {
2068                console.info('resume resumeTimeTestCallback success');
2069                end = Date.now()
2070                console.info(`resumeTimeTestCallback end time is : ${end}`)
2071                let execution = parseInt(end - start)
2072                console.info("resumeTimeTestCallback execution time  is :" + execution)
2073                totalTime = totalTime + execution;
2074            } else {
2075                console.info('resume resumeTimeTestCallback failed and error is ' + err.message);
2076            }
2077        });
2078        await avRecorder.release().then(() => {
2079            console.info('resumeTimeTestCallback avPlayer is release')
2080            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2081        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
2082    }
2083    let avg = totalTime/10;
2084    console.info("resumeTimeTestCallback avg time  is :" + avg)
2085    done();
2086}
2087
2088export async function stopTimeTestCallback(avConfig, avRecorder, recorderTime, done) {
2089    let totalTime = 0;
2090    for(var i = 0;i < 10;i++){
2091        avRecorder = await idle(avRecorder);
2092        await sleep(20)
2093        await avRecorder.prepare(avConfig).then(() => {
2094            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2095            console.info('stopTimeTestCallback avPlayer state is prepared')
2096        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
2097
2098        await avRecorder.start().then(() => {
2099            console.info('start stopTimeTestCallback success');
2100        }).catch((err) => {
2101            console.info('stopTimeTestCallback start avRecorder failed and catch error is ' + err.message);
2102        });
2103        let end;
2104        let start = Date.now();
2105        console.info(`stopTimeTestCallback start time is : ${start}`)
2106        await avRecorder.stop((err) => {
2107            if (err == null) {
2108                console.info('resume stopTimeTestCallback success');
2109                end = Date.now()
2110                console.info(`stopTimeTestCallback end time is : ${end}`)
2111                let execution = parseInt(end - start)
2112                console.info("stopTimeTestCallback execution time  is :" + execution)
2113                totalTime = totalTime + execution;
2114            } else {
2115                console.info('resume stopTimeTestCallback failed and error is ' + err.message);
2116            }
2117        });
2118        await avRecorder.release().then(() => {
2119            console.info('stopTimeTestCallback avPlayer is release')
2120            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2121        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
2122    }
2123    let avg = totalTime/10;
2124    console.info("stopTimeTestCallback avg time  is :" + avg)
2125    done();
2126}
2127
2128export async function resetTimeTestCallback(avConfig, avRecorder, recorderTime, done) {
2129    let totalTime = 0;
2130    for(var i = 0;i < 10;i++){
2131        avRecorder = await idle(avRecorder);
2132        await sleep(20)
2133        await avRecorder.prepare(avConfig).then(() => {
2134            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2135            console.info('resetTimeTestCallback avPlayer state is prepared')
2136        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
2137
2138        await avRecorder.start().then(() => {
2139            console.info('start resetTimeTestCallback success');
2140        }).catch((err) => {
2141            console.info('resetTimeTestCallback start avRecorder failed and catch error is ' + err.message);
2142        });
2143        let end;
2144        let start = Date.now();
2145        console.info(`resetTimeTestCallback start time is : ${start}`)
2146        await avRecorder.reset((err) => {
2147            if (err == null) {
2148                console.info('resume resetTimeTestCallback success');
2149                end = Date.now()
2150                console.info(`resetTimeTestCallback end time is : ${end}`)
2151                let execution = parseInt(end - start)
2152                console.info("resetTimeTestCallback execution time  is :" + execution)
2153                totalTime = totalTime + execution;
2154            } else {
2155                console.info('resume resetTimeTestCallback failed and error is ' + err.message);
2156            }
2157        });
2158        await avRecorder.release().then(() => {
2159            console.info('resetTimeTestCallback avPlayer is release')
2160            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2161        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
2162    }
2163    let avg = totalTime/10;
2164    console.info("resetTimeTestCallback avg time  is :" + avg)
2165    done();
2166}
2167
2168export async function releaseTimeTestCallback(avConfig, avRecorder, recorderTime, done) {
2169    let totalTime = 0;
2170    for(var i = 0;i < 10;i++){
2171        avRecorder = await idle(avRecorder);
2172        await sleep(20)
2173        await avRecorder.prepare(avConfig).then(() => {
2174            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2175            console.info('releaseTimeTestCallback avPlayer state is prepared')
2176        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
2177
2178        await avRecorder.start().then(() => {
2179            console.info('start releaseTimeTestCallback success');
2180        }).catch((err) => {
2181            console.info('releaseTimeTestCallback start avRecorder failed and catch error is ' + err.message);
2182        });
2183        let end;
2184        let start = Date.now();
2185        console.info(`releaseTimeTestCallback start time is : ${start}`)
2186        await avRecorder.release((err) => {
2187            if (err == null) {
2188                console.info(`releaseTimeTestCallback current state is : ${avRecorder.state}`)
2189                console.info('release releaseTimeTestCallback success');
2190                end = Date.now()
2191                console.info(`releaseTimeTestCallback end time is : ${end}`)
2192                let execution = parseInt(end - start)
2193                console.info("releaseTimeTestCallback execution time  is :" + execution)
2194                totalTime = totalTime + execution;
2195                if(i == 9){
2196                    let avg = totalTime/10;
2197                    console.info("releaseTimeTestCallback avg time  is :" + avg)
2198                    done();
2199                }
2200            } else {
2201                console.info('resume releaseTimeTestCallback failed and error is ' + err.message);
2202            }
2203        });
2204    }
2205}
2206
2207export async function createTimeTestPromise(avConfig, avRecorder, recorderTime, done) {
2208    let totalTime = 0;
2209    for(var i = 0;i < 10;i++){
2210        let start = Date.now();
2211        console.info(`createTimeTestPromise start time is : ${start}`)
2212        avRecorder = await idle(avRecorder);
2213        let end = Date.now()
2214        let execution = parseInt(end - start)
2215        console.info("createTimeTestPromise execution time  is :" + execution)
2216        totalTime = totalTime + execution;
2217        await avRecorder.release().then(() => {
2218            console.info('createTimeTestPromise avPlayer is release')
2219            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2220        }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
2221    }
2222    let avg = totalTime/10;
2223    console.info("createTimeTestPromise avg time  is :" + avg)
2224    done();
2225}
2226
2227export async function prepareTimePromise(avConfig, avRecorder, recorderTime, done) {
2228    let totalTime = 0;
2229    for(var i = 0;i < 10;i++){
2230        avRecorder = await idle(avRecorder);
2231        await sleep(20)
2232        let start = Date.now();
2233        console.info(`prepareTimeWithoutPromise start time is : ${start}`)
2234        let end;
2235        await avRecorder.prepare(avConfig).then(() => {
2236            console.info('prepare success');
2237            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2238            console.info('prepareTimeWithoutPromise avPlayer state is prepared')
2239            end = Date.now()
2240            console.info(`prepareTimeWithoutPromise end time is : ${end}`)
2241        }).catch((err) => {
2242            console.info('prepare failed and catch error is ' + err.message);
2243        });
2244        let execution = parseInt(end - start)
2245        console.info("prepareTimeWithoutPromise execution time  is :" + execution)
2246        totalTime = totalTime + execution;
2247        await avRecorder.release().then(() => {
2248            console.info('prepareTimeWithoutPromise avPlayer is release')
2249            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2250        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2251    }
2252    let avg = totalTime/10;
2253    console.info("prepareTimeWithoutPromise avg time  is :" + avg)
2254    done();
2255}
2256
2257export async function getInputSurfaceTimeTestPromise(avConfig, avRecorder, recorderTime, done) {
2258    let totalTime = 0;
2259    let surfaceID = null;
2260    for(var i = 0;i < 10;i++){
2261        avRecorder = await idle(avRecorder);
2262        await sleep(20)
2263        let end;
2264        await avRecorder.prepare(avConfig).then(() => {
2265            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2266            console.info('getInputSurfaceTimeTestPromise avPlayer state is prepared')
2267        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2268        let start = Date.now();
2269        console.info(`getInputSurfaceTimeTestPromise start time is : ${start}`)
2270        await avRecorder.getInputSurface().then((surfaceId) => {
2271            console.info('getInputSurfaceTimeTestPromise success');
2272            surfaceID = surfaceId;
2273            end = Date.now()
2274            console.info(`getInputSurfaceTimeTestPromise end time is : ${end}`)
2275            let execution = parseInt(end - start)
2276            console.info("getInputSurfaceTimeTestPromise execution time  is :" + execution)
2277            totalTime = totalTime + execution;
2278        }).catch((err) => {
2279            console.info('getInputSurface failed and catch error is ' + err.message);
2280        });
2281        await avRecorder.release().then(() => {
2282            console.info('getInputSurfaceTimeTestPromise avPlayer is release')
2283            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2284        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2285    }
2286    let avg = totalTime/10;
2287    console.info("getInputSurfaceTimeTestPromise avg time  is :" + avg)
2288    done();
2289}
2290
2291export async function startTimeTestPromise(avConfig, avRecorder, recorderTime, done) {
2292    let totalTime = 0;
2293    for(var i = 0;i < 10;i++){
2294        avRecorder = await idle(avRecorder);
2295        await sleep(20)
2296        let end;
2297        await avRecorder.prepare(avConfig).then(() => {
2298            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2299            console.info('startTimeTestPromise avPlayer state is prepared')
2300        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2301        let start = Date.now();
2302        console.info(`startTimeTestPromise start time is : ${start}`)
2303        await avRecorder.start().then(() => {
2304            console.info('start AVRecorder success');
2305            end = Date.now()
2306            console.info(`startTimeTestPromise end time is : ${end}`)
2307            let execution = parseInt(end - start)
2308            console.info("startTimeTestPromise execution time  is :" + execution)
2309            totalTime = totalTime + execution;
2310            console.info('startTimeTestPromise avRecorder success');
2311        }).catch((err) => {
2312            console.info('start AVRecorder failed and catch error is ' + err.message);
2313        });
2314        await avRecorder.release().then(() => {
2315            console.info('startTimeTestPromise avPlayer is release')
2316            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2317        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2318    }
2319    let avg = totalTime/10;
2320    console.info("startTimeTestPromise avg time  is :" + avg)
2321    done();
2322}
2323
2324export async function pauseTimeTestPromise(avConfig, avRecorder, recorderTime, done) {
2325    let totalTime = 0;
2326    for(var i = 0;i < 10;i++){
2327        avRecorder = await idle(avRecorder);
2328        await sleep(20)
2329        await avRecorder.prepare(avConfig).then(() => {
2330            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2331            console.info('pauseTimeTestPromise avPlayer state is prepared')
2332        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2333        await avRecorder.start().then(() => {
2334            console.info('start avRecorder success');
2335        }).catch((err) => {
2336            console.info('pauseTimeTestPromise start avRecorder failed and catch error is ' + err.message);
2337        });
2338        let start = Date.now();
2339        console.info(`pauseTimeTestPromise start time is : ${start}`)
2340        let end;
2341        await avRecorder.pause().then(() => {
2342            console.info('pause AVRecorder success');
2343            end = Date.now()
2344            console.info(`pauseTimeTestPromise end time is : ${end}`)
2345            let execution = parseInt(end - start)
2346            console.info("pauseTimeTestPromise execution time  is :" + execution)
2347            totalTime = totalTime + execution;
2348            console.info('pause pauseTimeTestPromise success');
2349        }).catch((err) => {
2350            console.info('pause AVRecorder failed and catch error is ' + err.message);
2351        });
2352        await avRecorder.release().then(() => {
2353            console.info('pauseTimeTestPromise avPlayer is release')
2354            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2355        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2356    }
2357    let avg = totalTime/10;
2358    console.info("pauseTimeTestPromise avg time  is :" + avg)
2359    done();
2360}
2361
2362export async function resumeTimeTestPromise(avConfig, avRecorder, recorderTime, done) {
2363    let totalTime = 0;
2364    for(var i = 0;i < 10;i++){
2365        avRecorder = await idle(avRecorder);
2366        await sleep(20)
2367        await avRecorder.prepare(avConfig).then(() => {
2368            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2369            console.info('resumeTimeTestPromise avPlayer state is prepared')
2370        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2371
2372        await avRecorder.start().then(() => {
2373            console.info('start resumeTimeTestPromise success');
2374        }).catch((err) => {
2375            console.info('resumeTimeTestPromise start avRecorder failed and catch error is ' + err.message);
2376        });
2377        let end;
2378        await avRecorder.pause((err) => {
2379            if (err == null) {
2380                console.info('pause resumeTimeTestPromise success');
2381            } else {
2382                console.info('pause resumeTimeTestPromise failed and error is ' + err.message);
2383            }
2384        });
2385        let start = Date.now();
2386        console.info(`resumeTimeTestPromise start time is : ${start}`)
2387        await avRecorder.resume().then(() => {
2388            console.info('resume AVRecorder success');
2389            console.info('resume resumeTimeTestPromise success');
2390            end = Date.now()
2391            console.info(`resumeTimeTestPromise end time is : ${end}`)
2392            let execution = parseInt(end - start)
2393            console.info("resumeTimeTestPromise execution time  is :" + execution)
2394            totalTime = totalTime + execution;
2395        }).catch((err) => {
2396            console.info('resume AVRecorder failed and catch error is ' + err.message);
2397        });
2398        await avRecorder.release().then(() => {
2399            console.info('resumeTimeTestPromise avPlayer is release')
2400            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2401        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2402    }
2403    let avg = totalTime/10;
2404    console.info("resumeTimeTestPromise avg time  is :" + avg)
2405    done();
2406}
2407
2408export async function stopTimeTestPromise(avConfig, avRecorder, recorderTime, done) {
2409    let totalTime = 0;
2410    for(var i = 0;i < 10;i++){
2411        avRecorder = await idle(avRecorder);
2412        await sleep(20)
2413        await avRecorder.prepare(avConfig).then(() => {
2414            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2415            console.info('stopTimeTestPromise avPlayer state is prepared')
2416        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2417
2418        await avRecorder.start().then(() => {
2419            console.info('start stopTimeTestPromise success');
2420        }).catch((err) => {
2421            console.info('stopTimeTestPromise start avRecorder failed and catch error is ' + err.message);
2422        });
2423        let end;
2424        let start = Date.now();
2425        console.info(`stopTimeTestPromise start time is : ${start}`)
2426        await avRecorder.stop().then(() => {
2427            console.info('stop AVRecorder success');
2428            console.info('resume stopTimeTestPromise success');
2429            end = Date.now()
2430            console.info(`stopTimeTestPromise end time is : ${end}`)
2431            let execution = parseInt(end - start)
2432            console.info("stopTimeTestPromise execution time  is :" + execution)
2433            totalTime = totalTime + execution;
2434        }).catch((err) => {
2435            console.info('stop AVRecorder failed and catch error is ' + err.message);
2436        });
2437        await avRecorder.release().then(() => {
2438            console.info('stopTimeTestPromise avPlayer is release')
2439            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2440        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2441    }
2442    let avg = totalTime/10;
2443    console.info("stopTimeTestPromise avg time  is :" + avg)
2444    done();
2445}
2446
2447export async function resetTimeTestPromise(avConfig, avRecorder, recorderTime, done) {
2448    let totalTime = 0;
2449    for(var i = 0;i < 10;i++){
2450        avRecorder = await idle(avRecorder);
2451        await sleep(20)
2452        await avRecorder.prepare(avConfig).then(() => {
2453            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2454            console.info('resetTimeTestPromise avPlayer state is prepared')
2455        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2456
2457        await avRecorder.start().then(() => {
2458            console.info('start resetTimeTestPromise success');
2459        }).catch((err) => {
2460            console.info('resetTimeTestPromise start avRecorder failed and catch error is ' + err.message);
2461        });
2462        let end;
2463        let start = Date.now();
2464        console.info(`resetTimeTestPromise start time is : ${start}`)
2465        await avRecorder.reset().then(() => {
2466            console.info('reset AVRecorder success');
2467            console.info('resume resetTimeTestPromise success');
2468            end = Date.now()
2469            console.info(`resetTimeTestPromise end time is : ${end}`)
2470            let execution = parseInt(end - start)
2471            console.info("resetTimeTestPromise execution time  is :" + execution)
2472            totalTime = totalTime + execution;
2473        }).catch((err) => {
2474            console.info('resume resetTimeTestPromise failed and error is ' + err.message);
2475        });
2476        await avRecorder.release().then(() => {
2477            console.info('resetTimeTestPromise avPlayer is release')
2478            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2479        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2480    }
2481    let avg = totalTime/10;
2482    console.info("resetTimeTestPromise avg time  is :" + avg)
2483    done();
2484}
2485
2486export async function releaseTimeTestPromise(avConfig, avRecorder, recorderTime, done) {
2487    let totalTime = 0;
2488    for(var i = 0;i < 10;i++){
2489        avRecorder = await idle(avRecorder);
2490        await sleep(20)
2491        await avRecorder.prepare(avConfig).then(() => {
2492            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.PREPARED);
2493            console.info('releaseTimeTestPromise avPlayer state is prepared')
2494        }, mediaTestBase.failurePromise).catch(mediaTestBase.catchPromise);
2495
2496        await avRecorder.start().then(() => {
2497            console.info('start releaseTimeTestPromise success');
2498        }).catch((err) => {
2499            console.info('releaseTimeTestPromise start avRecorder failed and catch error is ' + err.message);
2500        });
2501        let end;
2502        let start = Date.now();
2503        console.info(`releaseTimeTestPromise start time is : ${start}`)
2504        await avRecorder.release().then(() => {
2505            expect(avRecorder.state).assertEqual(AV_RECORDER_STATE.RELEASED);
2506            console.info('release AVRecorder success');
2507            console.info('resume releaseTimeTestPromise success');
2508            end = Date.now()
2509            let execution = parseInt(end - start)
2510            console.info("releaseTimeTestPromise execution time  is :" + execution)
2511            totalTime = totalTime + execution;
2512            console.info(`releaseTimeTestPromise end time is : ${end}`)
2513        }).catch((err) => {
2514            console.info('resume releaseTimeTestPromise failed and error is ' + err.message);
2515        });
2516    }
2517    let avg = totalTime/10;
2518    console.info("releaseTimeTestPromise avg time  is :" + avg)
2519    done();
2520}
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536