diff --git a/multimedia/BUILD.gn b/multimedia/BUILD.gn
index 0b32552383ac6ace1b7763678cf8a6b90780aaa1..8866f544dd2313c80494b163d94f70bf739abbb1 100644
--- a/multimedia/BUILD.gn
+++ b/multimedia/BUILD.gn
@@ -22,6 +22,8 @@ group("multimedia") {
"audio/audio_js_standard/AudioEventManagement:audio_eventmanagement_js_hap",
"audio/audio_js_standard/AudioRendererChangeInfo:audio_rendererchangeInfo_js_hap",
"audio/audio_js_standard/AudioTonePlayer:audio_tone_player_js_hap",
+ "audio/audio_js_standard/audioInterrupt:audio_interrupt_js_hap",
+ "audio/audio_js_standard/audioInterruptRender:audioRenderInterrupt",
"audio/audio_js_standard/audioManager:audio_manager_js_hap",
"audio/audio_js_standard/audioRenderer:audio_renderer_js_hap",
"audio/audio_js_standard/audioVoip:audio_voip_js_hap",
diff --git a/multimedia/audio/audio_js_standard/AudioCapturer/src/main/js/test/AudioCapturer.test.js b/multimedia/audio/audio_js_standard/AudioCapturer/src/main/js/test/AudioCapturer.test.js
index 2ce1b1b10133d84500a219359b18ad01ec4ce9f6..46c9374c036f54a96b6c8b57a8c1339b470f44cd 100644
--- a/multimedia/audio/audio_js_standard/AudioCapturer/src/main/js/test/AudioCapturer.test.js
+++ b/multimedia/audio/audio_js_standard/AudioCapturer/src/main/js/test/AudioCapturer.test.js
@@ -357,15 +357,26 @@ describe('audioCapturer', function () {
steps.shift();
let markReachParam = steps[0];
steps.shift();
- audioCap.on('markReach', markReachParam, (position) => {
- console.log(`${Tag} position: ${JSON.stringify(position)}`);
- console.log(`${Tag} markReachParam: ${JSON.stringify(markReachParam)}`);
- if (position == markReachParam) {
- markReachState = 'success'
- console.info(`${Tag} AudioRenderLog: mark reached: ${JSON.stringify(position)}`);
+ try {
+ audioCap.on('markReach', markReachParam, (position) => {
+ console.log(`${Tag} position: ${JSON.stringify(position)}`);
+ console.log(`${Tag} markReachParam: ${JSON.stringify(markReachParam)}`);
+ if (position == markReachParam) {
+ markReachState = 'success'
+ console.info(`${Tag} AudioRenderLog: mark reached: ${JSON.stringify(position)}`);
+ }
+ });
+ toNextStep(audioCap, steps, done);
+ }
+ catch (error) {
+ if (error.code == 401){
+ markReachState = 'invalid_failure';
+ toNextStep(audioCap, steps, done);
+ }else{
+ console.info("err" + error.code);
+ toNextStep(audioCap, steps, done);
}
- });
- toNextStep(audioCap, steps, done);
+ }
});
eventEmitter.on(OFF_MARK_REACH_EVENT, (audioCap, steps, done) => {
@@ -380,15 +391,27 @@ describe('audioCapturer', function () {
steps.shift();
let periodReachParam = steps[0];
steps.shift();
- audioCap.on('periodReach', periodReachParam, (position) => {
- console.log(`${Tag} position: ${JSON.stringify(position)}`);
- console.log(`${Tag} periodReachParam: ${JSON.stringify(periodReachParam)}`);
- if (position == periodReachParam) {
- periodReachState = 'success'
- console.info(`${Tag} AudioRenderLog: mark reached: ${JSON.stringify(position)}`);
+ try {
+ audioCap.on('periodReach', periodReachParam, (position) => {
+ console.log(`${Tag} position: ${JSON.stringify(position)}`);
+ console.log(`${Tag} periodReachParam: ${JSON.stringify(periodReachParam)}`);
+ if (position == periodReachParam) {
+ periodReachState = 'success'
+ console.info(`${Tag} AudioRenderLog: mark reached: ${JSON.stringify(position)}`);
+ }
+ });
+ toNextStep(audioCap, steps, done);
+ }
+ catch (error) {
+ if (error.code == 401){
+ markReachState = 'invalid_failure';
+ toNextStep(audioCap, steps, done);
+ }else{
+ console.info("err" + error.code);
+ toNextStep(audioCap, steps, done);
}
- });
- toNextStep(audioCap, steps, done);
+ }
+
});
eventEmitter.on(OFF_PERIODR_REACH_EVENT, (audioCap, steps, done) => {
console.log(`${Tag} emit: ${JSON.stringify(OFF_PERIODR_REACH_EVENT)}`);
@@ -420,8 +443,7 @@ describe('audioCapturer', function () {
beforeAll(async function () {
console.info(`${Tag} AudioFrameworkTest: beforeAll: Prerequisites at the test suite level`);
let permissionName1 = 'ohos.permission.MICROPHONE';
- let permissionName2 = 'ohos.permission.MANAGE_AUDIO_CONFIG';
- let permissionNameList = [permissionName1,permissionName2];
+ let permissionNameList = [permissionName1];
let appName = 'ohos.acts.multimedia.audio.audiocapturer';
await audioTestBase.applyPermission(appName, permissionNameList);
await sleep(100);
@@ -441,9 +463,6 @@ describe('audioCapturer', function () {
console.info(`${Tag} AudioFrameworkTest: afterAll: Test suite-level cleanup condition`);
})
-
-
-
async function recPromise(AudioCapturerOptions, done) {
let audioCap;
try {
@@ -2101,12 +2120,20 @@ describe('audioCapturer', function () {
return done();
}
+ try {
+ await audioCapPromise.start();
+ console.log(`${Tag} start ok`);
+ } catch (err) {
+ console.log(`${Tag} start err: ${JSON.stringify(err)}`);
+ expect(false).assertTrue();
+ }
try {
await audioCapPromise.stop();
console.log(`${Tag} stop ok`);
+ expect(true).assertTrue();
} catch (err) {
console.log(`${Tag} stop err: ${JSON.stringify(err)}`);
- expect(false).assertTrue();
+ expect(true).assertTrue();
}
done();
})
@@ -2440,13 +2467,8 @@ describe('audioCapturer', function () {
capturerInfo: audioCapturerInfo44100,
}
await audio.createAudioCapturer(AudioCapturerOptionsInvalid).then(function (data) {
- if (data == undefined) {
- console.info(`${Tag} AudioFrameworkRecLog: AudioCapturer Created : Unsuccess : ${JSON.stringify(data)}`);
- expect(true).assertTrue();
- } else {
- console.info(`${Tag} AudioFrameworkRecLog: AudioCapturer Created : Success: ${JSON.stringify(data)}`);
- expect(false).assertTrue();
- }
+ console.info(`${Tag} AudioFrameworkRecLog: AudioCapturer Created : Success: ${JSON.stringify(data)}`);
+ expect(false).assertTrue();
}).catch((err) => {
console.info(`${Tag} AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${JSON.stringify(err.message)}`);
expect(true).assertTrue();
@@ -2797,7 +2819,7 @@ describe('audioCapturer', function () {
let audioCap = null;
let markReachParam = 0;
- markReachState = 'invalid_failure';
+ markReachState = 'fail';
let mySteps = [CREATE_EVENT, AudioCapturerOptions, MARK_REACH_EVENT, markReachParam, START_EVENT, GET_BUFFERSIZE_EVENT, READ_EVENT, OFF_MARK_REACH_EVENT, RELEASE_EVENT, END_EVENT];
eventEmitter.emit(mySteps[0], audioCap, mySteps, done);
})
@@ -2861,7 +2883,7 @@ describe('audioCapturer', function () {
let audioCap = null;
let markReachParam = -2;
- markReachState = 'invalid_failure';
+ markReachState = 'fail';
let mySteps = [CREATE_EVENT, AudioCapturerOptions, MARK_REACH_EVENT, markReachParam, START_EVENT, GET_BUFFERSIZE_EVENT, READ_EVENT, OFF_MARK_REACH_EVENT, RELEASE_EVENT, END_EVENT];
eventEmitter.emit(mySteps[0], audioCap, mySteps, done);
})
@@ -2957,7 +2979,7 @@ describe('audioCapturer', function () {
let audioCap = null;
let periodReachParam = -2;
- periodReachState = 'invalid_failure';
+ periodReachState = 'fail';
let mySteps = [CREATE_EVENT, AudioCapturerOptions, PERIODR_REACH_EVENT, periodReachParam, START_EVENT, GET_BUFFERSIZE_EVENT, READ_EVENT, OFF_PERIODR_REACH_EVENT, RELEASE_EVENT, END_EVENT];
eventEmitter.emit(mySteps[0], audioCap, mySteps, done);
})
@@ -2993,4 +3015,89 @@ describe('audioCapturer', function () {
let mySteps = [CREATE_EVENT, AudioCapturerOptions, PERIODR_REACH_EVENT, periodReachParam, START_EVENT, GET_BUFFERSIZE_EVENT, READ_EVENT, OFF_PERIODR_REACH_EVENT, RELEASE_EVENT, END_EVENT];
eventEmitter.emit(mySteps[0], audioCap, mySteps, done);
})
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_CAPTURER_GET_AUDIO_STREAM_ID_0100
+ *@tc.name : AudioCapturer - getAudioStreamId
+ *@tc.desc : AudioCapturer - getAudioStreamId
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 0
+ */
+ it('SUB_MULTIMEDIA_AUDIO_CAPTURER_GET_AUDIO_STREAM_ID_0100', 0, async function (done) {
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_2,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let AudioCapturerInfo = {
+ source: audio.SourceType.SOURCE_TYPE_MIC,
+ capturerFlags: 0
+ }
+ let AudioCapturerOptions = {
+ streamInfo: AudioStreamInfo,
+ capturerInfo: AudioCapturerInfo
+ }
+ let audioCapPromise;
+ try {
+ audioCapPromise = await audio.createAudioCapturer(AudioCapturerOptions);
+ await audioCapPromise.getAudioStreamId((err, data) => {
+ if (err) {
+ console.info(`${Tag}: getAudioStreamId : ERROR : code: ${err.code}, mesage: ${err.message}`);
+ expect(false).assertTrue();
+ } else {
+ expect(true).assertTrue();
+ console.info(`${Tag}: getAudioStreamId : Converted: ${data}`);
+ }
+ });
+ await audioCapPromise.release();
+ } catch (err) {
+ console.log(`${Tag} err: ${JSON.stringify(err)}`);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_CAPTURER_GET_AUDIO_STREAM_ID_0200
+ *@tc.name : AudioCapturer - getAudioStreamId
+ *@tc.desc : AudioCapturer - getAudioStreamId
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 0
+ */
+ it('SUB_MULTIMEDIA_AUDIO_CAPTURER_GET_AUDIO_STREAM_ID_0200', 0, async function (done) {
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let AudioCapturerInfo = {
+ source: audio.SourceType.SOURCE_TYPE_MIC,
+ capturerFlags: 0
+ }
+ let AudioCapturerOptions = {
+ streamInfo: AudioStreamInfo,
+ capturerInfo: AudioCapturerInfo
+ }
+ try {
+ let audioCapPromise = await audio.createAudioCapturer(AudioCapturerOptions);
+ await audioCapPromise.getAudioStreamId().then((data)=>{
+ expect(true).assertTrue();
+ console.info(`${Tag}: getAudioStreamId : Converted: ${data}`);
+ }).catch((err) => {
+ expect(true).assertTrue();
+ console.error(`${Tag}: getAudioStreamId : ERROR : ${err}`);
+ });
+
+ await audioCapPromise.release();
+ } catch (err) {
+ console.log(`${Tag} error code: ${err.code} ,message:${err.message}`);
+ expect(false).assertTrue();
+ }
+ done();
+ })
})
diff --git a/multimedia/audio/audio_js_standard/AudioCapturerChangeInfo/src/main/js/test/AudioCapturerChangeInfo.test.js b/multimedia/audio/audio_js_standard/AudioCapturerChangeInfo/src/main/js/test/AudioCapturerChangeInfo.test.js
index 9322d233b19feaf36ceebaeba48b1fb502737fbd..50b1aaa6d29807fd7955b8e87cb4249cdadf6ef6 100644
--- a/multimedia/audio/audio_js_standard/AudioCapturerChangeInfo/src/main/js/test/AudioCapturerChangeInfo.test.js
+++ b/multimedia/audio/audio_js_standard/AudioCapturerChangeInfo/src/main/js/test/AudioCapturerChangeInfo.test.js
@@ -28,29 +28,14 @@ describe('audioCapturerChange', function () {
beforeAll(async function () {
console.info(`AudioFrameworkTest: beforeAll: Prerequisites at the test suite level`);
let permissionName1 = 'ohos.permission.MICROPHONE';
- let permissionName2 = 'ohos.permission.MANAGE_AUDIO_CONFIG';
- let permissionNameList = [permissionName1,permissionName2];
+ let permissionNameList = [permissionName1];
let appName = 'ohos.acts.multimedia.audio.audiocapturerchangeInfo';
await audioTestBase.applyPermission(appName, permissionNameList);
await sleep(100);
console.info(`AudioFrameworkTest: beforeAll: END`);
await sleep(100);
- await audioManager.getStreamManager().then((data) => {
- audioStreamManager = data;
- console.info(`${Tag}: Get AudioStream Manager : Success `);
- }).catch((err) => {
- console.info(`${Tag}: Get AudioStream Manager : ERROR :${err.message}`);
- });
-
- audioManager.getStreamManager((err, data) => {
- if (err) {
- console.error(`${Tag}: Get AudioStream Manager : ERROR :${err.message}`);
- }
- else {
- audioStreamManagerCB = data;
- console.info(`${Tag}: Get AudioStream Manager : Success `);
- }
- });
+ audioStreamManager = audioManager.getStreamManager();
+ audioStreamManagerCB = audioManager.getStreamManager();
await sleep(1000);
console.info(`${Tag}: beforeAll: END`);
})
diff --git a/multimedia/audio/audio_js_standard/AudioRendererChangeInfo/src/main/js/test/AudioRendererChangeInfo.test.js b/multimedia/audio/audio_js_standard/AudioRendererChangeInfo/src/main/js/test/AudioRendererChangeInfo.test.js
index d22fb88410fba189a77c62b7961499a731c990c7..60b3bf071aeb08dcdd7bab80a8a579f9be714844 100644
--- a/multimedia/audio/audio_js_standard/AudioRendererChangeInfo/src/main/js/test/AudioRendererChangeInfo.test.js
+++ b/multimedia/audio/audio_js_standard/AudioRendererChangeInfo/src/main/js/test/AudioRendererChangeInfo.test.js
@@ -25,24 +25,9 @@ describe('audioRendererChange', function () {
console.info(`${Tag} : Create AudioManger Object JS Framework`);
beforeAll(async function () {
- await AUDIOMANAGER.getStreamManager().then(function (data) {
- audioStreamManager = data;
- console.info(`${Tag} : Get AudioStream Manager : Success `);
- }).catch((err) => {
- console.info(`${Tag} : Get AudioStream Manager : ERROR : ${err.message}`);
- });
-
- AUDIOMANAGER.getStreamManager((err, data) => {
- if (err) {
- console.error(`${Tag} : Get AudioStream Manager : ERROR : ${err.message}`);
- }
- else {
- audioStreamManagerCB = data;
- console.info(`${Tag} : Get AudioStream Manager : Success `);
- }
- });
+ audioStreamManager = AUDIOMANAGER.getStreamManager();
+ audioStreamManagerCB = AUDIOMANAGER.getStreamManager();
await sleep(1000);
-
console.info(`${Tag} : beforeAll: Prerequisites at the test suite level`);
})
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/BUILD.gn b/multimedia/audio/audio_js_standard/audioInterrupt/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..4d095f2214338f74bda00fddc2debbe4b90a81dd
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/BUILD.gn
@@ -0,0 +1,33 @@
+# Copyright (C) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+ohos_js_hap_suite("audio_interrupt_js_hap") {
+ hap_profile = "./src/main/config.json"
+ deps = [
+ ":audio_interrupt_js_assets",
+ ":audio_interrupt_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+ hap_name = "ActsAudioInterruptJsTest"
+ subsystem_name = "multimedia"
+ part_name = "multimedia_audio_framework"
+}
+ohos_js_assets("audio_interrupt_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("audio_interrupt_resources") {
+ sources = [ "./src/main/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/Test.json b/multimedia/audio/audio_js_standard/audioInterrupt/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..4f21673ae74ed6238b0e9ccb4f978238163bb469
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/Test.json
@@ -0,0 +1,40 @@
+{
+ "description": "Configuration for audio manager Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "5500000",
+ "package": "ohos.acts.multimedia.audio.audiointerrupt",
+ "shell-timeout": "60000"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "ActsAudioInterruptJsTest.hap",
+ "audioRenderInterrupt.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ },
+ {
+ "type": "ShellKit",
+ "run-command": [
+ "mkdir -p /data/app/el2/100/base/ohos.acts.multimedia.audio.audiointerrupt/haps/entry/files/",
+ "mkdir -p /data/app/el2/100/base/com.example.audiorenderinterrupt/haps/entry/files/",
+ "chmod 777 -R /data/app/el2/100/base/ohos.acts.multimedia.audio.audiointerrupt/haps/entry",
+ "chmod 777 -R /data/app/el2/100/base/com.example.audiorenderinterrupt/haps/entry"
+
+
+ ],
+ "cleanup-apps": true
+ },
+ {
+ "type": "PushKit",
+ "pre-push": [],
+ "push": [
+ "./resource/audio/audioManager/StarWars10s-2C-48000-4SW.wav ->/data/app/el2/100/base/ohos.acts.multimedia.audio.audiointerrupt/haps/entry/files/",
+ "./resource/audio/audioManager/StarWars10s-2C-48000-4SW.wav ->/data/app/el2/100/base/com.example.audiorenderinterrupt/haps/entry/files/"
+
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/signature/openharmony_sx.p7b b/multimedia/audio/audio_js_standard/audioInterrupt/signature/openharmony_sx.p7b
new file mode 100644
index 0000000000000000000000000000000000000000..0e9c4376f4c0ea2f256882a2170cd4e81ac135d7
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/signature/openharmony_sx.p7b differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/config.json b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..402e35bb494fd3cb26fc010a1dadb989097da5da
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/config.json
@@ -0,0 +1,120 @@
+{
+ "app": {
+ "apiVersion": {
+ "compatible": 6,
+ "releaseType": "Beta1",
+ "target": 7
+ },
+ "vendor": "acts",
+ "bundleName": "ohos.acts.multimedia.audio.audiointerrupt",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {
+ "default": {
+ "debug": true
+ }
+ },
+ "module": {
+ "abilities": [
+ {
+ "iconId": 16777218,
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "descriptionId": 16777217,
+ "visible": true,
+ "labelId": 16777216,
+ "icon": "$media:icon",
+ "name": "ohos.acts.multimedia.audio.audiointerrupt.MainAbility",
+ "description": "$string:mainability_description",
+ "label": "$string:entry_MainAbility",
+ "type": "page",
+ "homeAbility": true,
+ "launchType": "standard"
+ }
+ ],
+ "deviceType": [
+ "phone",
+ "tablet",
+ "tv",
+ "wearable"
+ ],
+ "mainAbility": "ohos.acts.multimedia.audio.audiointerrupt.MainAbility",
+ "distro": {
+ "moduleType": "entry",
+ "installationFree": false,
+ "deliveryWithInstall": true,
+ "moduleName": "entry"
+ },
+ "package": "ohos.acts.multimedia.audio.audiointerrupt",
+ "name": ".MyApplication",
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": true
+ }
+ }
+ ],
+ "reqPermissions": [
+ {
+ "name": "ohos.permission.GET_BUNDLE_INFO",
+ "reason": "use ohos.permission.GET_BUNDLE_INFO"
+ },
+ {
+ "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "reason": "use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
+ },
+ {
+ "name": "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",
+ "reason": "use ohos.permission.GRANT_SENSITIVE_PERMISSIONS"
+ },
+ {
+ "name": "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS",
+ "reason": "use ohos.permission.REVOKE_SENSITIVE_PERMISSIONS"
+ },
+ {
+ "name": "ohos.permission.MEDIA_LOCATION",
+ "reason": "use ohos.permission.MEDIA_LOCATION"
+ },
+ {
+ "name": "ohos.permission.READ_MEDIA",
+ "reason": "use ohos.permission.READ_MEDIA"
+ },
+ {
+ "name": "ohos.permission.WRITE_MEDIA",
+ "reason": "use ohos.permission.WRITE_MEDIA"
+ },
+ {
+ "name": "ohos.permission.MICROPHONE",
+ "reason": "use ohos.permission.MICROPHONE"
+ },
+ {
+ "name": "ohos.permission.ACCESS_NOTIFICATION_POLICY",
+ "reason": "use ohos.permission.ACCESS_NOTIFICATION_POLICY"
+ },
+ {
+ "name": "ohos.permission.MODIFY_AUDIO_SETTINGS",
+ "reason": "use ohos.permission.MODIFY_AUDIO_SETTINGS"
+ },
+ {
+ "name": "ohos.permission.MANAGE_AUDIO_CONFIG",
+ "reason": "use ohos.permission.MANAGE_AUDIO_CONFIG"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/app.js b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..8aee529fd9045e9b48ff34b67313ab178f4919a1
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/app.js
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import {Core, ExpectExtend} from 'deccjsunit/index'
+
+export default {
+ onCreate() {
+ console.info('AceApplication onCreate');
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ core.addService('expect', expectExtend)
+ core.init()
+ const configService = core.getDefaultService('config')
+ this.timeout = 60000
+ configService.setConfig(this)
+ require('../test/List.test')
+ core.execute()
+ },
+ onDestroy() {
+ console.info('AceApplication onDestroy');
+ }
+};
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/i18n/en-US.json b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/i18n/en-US.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ }
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/i18n/zh-CN.json b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/pages/index/index.css b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..5bd7567028568bd522193b2519d545ca6dcf397d
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/pages/index/index.css
@@ -0,0 +1,46 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+}
+
+.title {
+ font-size: 40px;
+ color: #000000;
+ opacity: 0.9;
+}
+
+@media screen and (device-type: tablet) and (orientation: landscape) {
+ .title {
+ font-size: 100px;
+ }
+}
+
+@media screen and (device-type: wearable) {
+ .title {
+ font-size: 28px;
+ color: #FFFFFF;
+ }
+}
+
+@media screen and (device-type: tv) {
+ .container {
+ background-image: url("/common/images/Wallpaper.png");
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ }
+
+ .title {
+ font-size: 100px;
+ color: #FFFFFF;
+ }
+}
+
+@media screen and (device-type: phone) and (orientation: landscape) {
+ .title {
+ font-size: 60px;
+ }
+}
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/pages/index/index.hml b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/pages/index/index.js b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..efaaf5d402fd72b0b6e82138b27b6ce5ef0116df
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/default/pages/index/index.js
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {Core, ExpectExtend} from 'deccjsunit/index'
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('onShow finish')
+ // const core = Core.getInstance()
+ // const expectExtend = new ExpectExtend({
+ // 'id': 'extend'
+ // })
+ // core.addService('expect', expectExtend)
+ // core.init()
+ // const configService = core.getDefaultService('config')
+ // this.timeout = 60000
+ // configService.setConfig(this)
+ // require('../../../test/List.test')
+ // core.execute()
+ },
+ onReady() {
+ },
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/test/AudioInterrupt.test.js b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/test/AudioInterrupt.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..880ec9d599a82c55101c18c024e099705f3517fb
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/test/AudioInterrupt.test.js
@@ -0,0 +1,216 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http:// www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+import audio from '@ohos.multimedia.audio';
+import ability from '@ohos.ability.featureAbility'
+import fileio from '@ohos.fileio';
+import featureAbility from '@ohos.ability.featureAbility'
+import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index';
+import avSession from '@ohos.multimedia.avsession';
+describe('audioInterrupt', function () {
+ console.info('audioRenderInterrupt: Create AudioManger Object JS Framework');
+ let fdRead;
+ let readPath;
+ console.info('AudioFrameworkRenderLog: Create AudioManger Object JS Framework');
+ let fdPath;
+ let filePath;
+
+ function sleep(ms) {
+ return new Promise(resolve => setTimeout(resolve, ms));
+ }
+ async function getcreateAVSession() {
+ let tag = "createNewSession";
+ let type = "audio";
+ let context1 = featureAbility.getContext();
+ let av = await avSession.createAVSession(context1, tag, type);
+ console.info('av is ' + JSON.stringify(av));
+ }
+ async function getFdRead(pathName, done) {
+ let context = await featureAbility.getContext();
+ console.info("case0 context is " + context);
+ await context.getFilesDir().then((data) => {
+ console.info("case1 getFilesDir is path " + data);
+ filePath = data + '/' + pathName;
+ console.info('case4 filePath is ' + filePath);
+
+ })
+ fdPath = 'fd://';
+ await fileio.open(filePath).then((fdNumber) => {
+ fdPath = fdPath + '' + fdNumber;
+ fdRead = fdNumber;
+ console.info('[fileIO]case open fd success,fdPath is ' + fdPath);
+ console.info('[fileIO]case open fd success,fdRead is ' + fdRead);
+
+ }, (err) => {
+ console.info('[fileIO]case open fd failed');
+ }).catch((err) => {
+ console.info('[fileIO]case catch open fd failed');
+ });
+ }
+
+
+ beforeAll(function () {
+ console.info('audioRenderInterrupt: beforeAll: Prerequisites at the test suite level');
+ getcreateAVSession();
+ })
+
+ beforeEach(async function () {
+ console.info('audioRenderInterrupt: beforeEach: Prerequisites at the test case level');
+ await sleep(100);
+ })
+
+ afterEach(async function () {
+ console.info('audioRenderInterrupt: afterEach: Test case-level clearance conditions');
+ await sleep(100);
+ })
+
+ afterAll(function () {
+ console.info('audioRenderInterrupt: afterAll: Test suite-level cleanup condition');
+ })
+
+
+
+ it('SUB_AUDIO_INTERRUPT_001', 0, async function (done) {
+ var AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+ channels: audio.AudioChannel.CHANNEL_2,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+
+ var AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+ }
+
+ var AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ readPath = 'StarWars10s-2C-48000-4SW.wav';
+ await getFdRead(readPath, done);
+
+ var audioRen;
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+
+ });
+
+
+ console.info('AudioFrameworkRenderLog: AudioRenderer : STATE : ' + audioRen.state);
+ let activated = false;
+ let InterruptHint = 0;
+ await sleep(7000);
+ let audioManager = audio.getAudioManager();
+ let interAudioInterrupt = {
+ streamUsage: 1,
+ contentType: 0,
+ pauseWhenDucked: true
+ };
+ audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) => {
+ console.info('come in MasterHap interrupt');
+ if (InterruptAction.actionType != undefined && InterruptAction.actionType != null) {
+ console.info('An event to gain the audio focus starts.');
+ console.info(`Focus gain event: ${InterruptAction} `);
+ activated = InterruptAction.activated;
+ InterruptHint = InterruptAction.hint
+ console.info('activated is :' + activated);
+ console.info('InterruptHint is :' + InterruptHint);
+ console.info('InterruptAction.actionType is :' + InterruptAction.actionType);
+ }
+ });
+ await audioRen.start().then(() => {
+ console.info('AudioFrameworkRenderLog: renderInstant started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant start :ERROR : ' + err.message);
+ });
+
+ console.info('AudioFrameworkRenderLog: AudioRenderer : STATE : ' + audioRen.state);
+ var bufferSize;
+ await audioRen.getBufferSize().then(async function (data) {
+ console.info('AudioFrameworkRenderLog: getBufferSize :SUCCESS ' + data);
+ bufferSize = data;
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: getBufferSize :ERROR : ' + err.message);
+ });
+
+ let ss = fileio.fdopenStreamSync(fdRead, 'r');
+ console.info('AudioFrameworkRenderLog:case 2:AudioFrameworkRenderLog: File Path: ' + ss);
+ let discardHeader = new ArrayBuffer(44);
+ console.info('AudioFrameworkRenderLog:case 2-1:AudioFrameworkRenderLog: File Path: ');
+ ss.readSync(discardHeader);
+ console.info('AudioFrameworkRenderLog:case 2-2:AudioFrameworkRenderLog: File Path: ');
+ let totalSize = fileio.fstatSync(fdRead).size;
+ console.info('AudioFrameworkRenderLog:case 3 : AudioFrameworkRenderLog: File totalSize size: ' + totalSize);
+ totalSize = totalSize - 44;
+ console.info('AudioFrameworkRenderLog: File size : Removing header: ' + totalSize);
+ let rlen = 0;
+ let count = 0;
+ while (rlen < totalSize) {
+ if (activated == false && InterruptHint == 3) {
+ console.info('audio was interrupt')
+
+ break;
+ }
+ let buf = new ArrayBuffer(bufferSize);
+ rlen += ss.readSync(buf);
+ console.info('MasterHap:BufferAudioFramework: bytes read from =================== file: ' + rlen);
+
+ if (rlen >= totalSize / 3 && count == 0) {
+ count++;
+ await ability.startAbilityForResult(
+ {
+ want:
+ {
+ bundleName: "com.example.audiorenderinterrupt",
+ abilityName: "com.example.entry.MainAbility",
+ },
+ }
+ ).then((data) => {
+ console.info("==========================>startAbility Success=======================>" + JSON.stringify(data));
+
+ })
+ .catch((err) => {
+ console.info("==========================>startAbility Fail=======================>" + JSON.stringify(err));
+ });
+ }
+ await audioRen.write(buf);
+ }
+
+ console.info('AudioFrameworkRenderLog: Renderer after read');
+
+
+ await audioRen.drain().then(async function () {
+ console.info('AudioFrameworkRenderLog: Renderer drained : SUCCESS');
+ }).catch((err) => {
+ console.error('AudioFrameworkRenderLog: Renderer drain: ERROR : ' + err.message);
+ });
+ await audioRen.release().then(async function () {
+ console.info('AudioFrameworkRenderLog: Renderer release : SUCCESS');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: Renderer release :ERROR : ' + err.message);
+ });
+ expect(activated == false && InterruptHint == 3).assertTrue();
+ done();
+
+ })
+
+})
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/test/List.test.js b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..d9382e702cc40bc0c237aa7277849447748f3b89
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/js/test/List.test.js
@@ -0,0 +1,17 @@
+/**
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+require('./AudioInterrupt.test.js')
+
+
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/base/element/string.json b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..0bae6bd40f7360d5d818998221b199d3ec0f69c0
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "entry_MainAbility",
+ "value": "entry_MainAbility"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Empty Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/base/media/icon.png b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/base/media/icon.png differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-16000-2SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-16000-2SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..5dcdb4004a5c40c02ad178018d3e375133f380e9
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-16000-2SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-32000-1SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-32000-1SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..61d9393b79f2c32f836203522c29174943c5d3fa
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-32000-1SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-44100-2SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-44100-2SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..25fb78622a6440fe2d8175b496ba0021b02b28dc
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-44100-2SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-64000-3SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-64000-3SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..9bec09e5d63ea27d2a944e9cebf6a239f8239745
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-64000-3SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-8000-2SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-8000-2SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..708a6b49099ecbde34cbd04f4089c7bc8b9938d2
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-8000-2SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-96000-4SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-96000-4SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..5c483b7b7474d8d8190b2e146f9457fba273d850
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-1C-96000-4SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-11025-1SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-11025-1SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..523db76990b8fe912800a0133acd6852b74acb3c
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-11025-1SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-12000-2SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-12000-2SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..ea2234f5436d22ef4ca2f0dca2d7e675eea40524
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-12000-2SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-16000-3SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-16000-3SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..1c37c84b41e622e250020e08eb2be3b0ab04ffb6
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-16000-3SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-22050-2SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-22050-2SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..fe07a3ba102bb6b2ab582a91d2a19f52ba881601
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-22050-2SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-24000-3SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-24000-3SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..062f5346c7c1e63d7b8e46cfc6b521ba98ed9b25
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-24000-3SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-48000-4SW.wav b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-48000-4SW.wav
new file mode 100644
index 0000000000000000000000000000000000000000..2cb88e7a083279328e06067a033c951dabd531d3
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterrupt/src/main/resources/rawfile/StarWars10s-2C-48000-4SW.wav differ
diff --git a/multimedia/audio/audio_js_standard/audioInterruptRender/BUILD.gn b/multimedia/audio/audio_js_standard/audioInterruptRender/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..42ef3a43e0cd81b955c6b0878d3f552268649c7c
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterruptRender/BUILD.gn
@@ -0,0 +1,21 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+group("audioRenderInterrupt") {
+ testonly = true
+ if (is_standard_system) {
+ deps = [ "entry:audioRenderInterrupt" ]
+ }
+}
diff --git a/multimedia/audio/audio_js_standard/audioInterruptRender/entry/BUILD.gn b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..df96deacaa5df49e50cccd893cbf005ad38e4b83
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/BUILD.gn
@@ -0,0 +1,38 @@
+# Copyright (c) 2022 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+ohos_hap_assist_suite("audioRenderInterrupt") {
+ hap_name = "audioRenderInterrupt"
+ hap_profile = "./src/main/config.json"
+ testonly = true
+ deps = [
+ ":audioRenderInterrupt_resources",
+ ":audioRenderInterrupt_ts_assets",
+ ]
+ ets2abc = true
+ certificate_profile = "../signature/openharmony_sx.p7b"
+ hap_name = "audioRenderInterrupt"
+ subsystem_name = "multimedia"
+ part_name = "multimedia_audio_framework"
+}
+
+ohos_js_assets("audioRenderInterrupt_ts_assets") {
+ source_dir = "./src/main/ets/MainAbility"
+}
+
+ohos_resources("audioRenderInterrupt_resources") {
+ sources = [ "./src/main/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/config.json b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..f1ba832bd3d001ae53604ac43ee8efd2b363fb67
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/config.json
@@ -0,0 +1,70 @@
+{
+ "app": {
+ "bundleName": "com.example.audiorenderinterrupt",
+ "vendor": "huawei",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ },
+ "apiVersion": {
+ "compatible": 9,
+ "target": 9
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.example.entry",
+ "name": ".entry",
+ "mainAbility": ".MainAbility",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry",
+ "installationFree": false
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "orientation": "unspecified",
+ "formsEnabled": false,
+ "name": ".MainAbility",
+ "srcLanguage": "ets",
+ "srcPath": "MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:MainAbility_desc",
+ "label": "$string:MainAbility_label",
+ "type": "page",
+ "visible": true,
+ "launchType": "standard"
+ }
+ ],
+ "js": [
+ {
+ "mode": {
+ "syntax": "ets",
+ "type": "pageAbility"
+ },
+ "pages": [
+ "pages/index"
+ ],
+ "name": ".MainAbility",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/ets/MainAbility/app.ets b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/ets/MainAbility/app.ets
new file mode 100644
index 0000000000000000000000000000000000000000..366bfaa552f2a98724a817fdc1df88dad9924bbb
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/ets/MainAbility/app.ets
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2022 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import audio from '@ohos.multimedia.audio';
+import fileio from '@ohos.fileio';
+import featureAbility from '@ohos.ability.featureAbility'
+let fdRead;
+let readPath;
+let fdPath;
+let filePath;
+let TAG = 'InterruptHap:';
+var TAG1 = "Fa:SupportFunctionThree:MainAbility:";
+var listPush1 = "Fa_SupportFunctionThree_MainAbility_";
+var lifeList = [];
+export default {
+ async onCreate() {
+ console.log(TAG1 + '=============================================================================> onCreate');
+ function sleep(ms) {
+ return new Promise(resolve => setTimeout(resolve, ms));
+ }
+ async function getFdRead(pathName) {
+ let context = await featureAbility.getContext();
+ console.info(TAG + "case0 context is " + context);
+ await context.getFilesDir().then((data) => {
+ console.info(TAG + "case1 getFilesDir is path " + data);
+ filePath = data + '/' + pathName;
+ console.info(TAG + 'case4 filePath is ' + filePath);
+
+ })
+ fdPath = 'fd://';
+ await fileio.open(filePath).then((fdNumber) => {
+ fdPath = fdPath + '' + fdNumber;
+ fdRead = fdNumber;
+ console.info(TAG + '[fileIO]case open fd success,fdPath is ' + fdPath);
+ console.info(TAG + '[fileIO]case open fd success,fdRead is ' + fdRead);
+
+ }, (err) => {
+ console.info(TAG + '[fileIO]case open fd failed');
+ }).catch((err) => {
+ console.info(TAG + '[fileIO]case catch open fd failed');
+ });
+ }
+ var AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+ channels: audio.AudioChannel.CHANNEL_2,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+
+ var AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_RINGTONE,
+ usage: audio.StreamUsage.STREAM_USAGE_NOTIFICATION_RINGTONE,
+ rendererFlags: 0
+ }
+
+ var AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ readPath = 'StarWars10s-2C-48000-4SW.wav';
+ getFdRead(readPath);
+
+ var audioRen;
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info(TAG + 'AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS' + audioRen);
+ }).catch((err) => {
+ console.info(TAG + 'AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ console.info(TAG + 'AudioFrameworkRenderLog: AudioRenderer : STATE : ' + audioRen.state);
+
+ await audioRen.start().then(async function () {
+ console.info(TAG + 'AudioFrameworkRenderLog: renderInstant started :SUCCESS ');
+ }).catch((err) => {
+ console.info(TAG + 'AudioFrameworkRenderLog: renderInstant start :ERROR : ' + err.message);
+ });
+
+ console.info(TAG + 'AudioFrameworkRenderLog: AudioRenderer : STATE : ' + audioRen.state);
+ var bufferSize;
+ await audioRen.getBufferSize().then(async function (data) {
+ console.info(TAG + 'AudioFrameworkRenderLog: getBufferSize :SUCCESS ' + data);
+ bufferSize = data;
+ }).catch((err) => {
+ console.info(TAG + 'AudioFrameworkRenderLog: getBufferSize :ERROR : ' + err.message);
+ });
+
+ let ss = fileio.fdopenStreamSync(fdRead, 'r');
+ console.info(TAG + 'AudioFrameworkRenderLog:case 2:AudioFrameworkRenderLog: File Path: ' + ss);
+ let discardHeader = new ArrayBuffer(44);
+ console.info(TAG + 'AudioFrameworkRenderLog:case 2-1:AudioFrameworkRenderLog: File Path: ');
+ ss.readSync(discardHeader);
+ console.info(TAG + 'AudioFrameworkRenderLog:case 2-2:AudioFrameworkRenderLog: File Path: ');
+ let totalSize = fileio.fstatSync(fdRead).size;
+ console.info(TAG + 'AudioFrameworkRenderLog:case 3 : AudioFrameworkRenderLog: File totalSize size: ' + totalSize);
+ totalSize = totalSize - 44;
+ console.info(TAG + 'AudioFrameworkRenderLog: File size : Removing header: ' + totalSize);
+ let rlen = 0;
+ while (rlen < totalSize / 4) {
+ let buf = new ArrayBuffer(bufferSize);
+ rlen += ss.readSync(buf);
+ console.info(TAG + 'InterruptHap:BufferAudioFramework: bytes read from file: ' + rlen);
+ await audioRen.write(buf);
+ }
+ let activated = false;
+ let InterruptHint = 0;
+ let audioManager = audio.getAudioManager();
+ let interAudioInterrupt = {
+ streamUsage: 1,
+ contentType: 0,
+ pauseWhenDucked: true
+ };
+ audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) => {
+ console.info(TAG + 'come in FuZhuHap interrupt');
+ if (InterruptAction.actionType != undefined && InterruptAction.actionType != null) {
+ console.info(TAG + 'InterruptHap An event to gain the audio focus ========================= starts.');
+ console.info(TAG + `Focus gain event: ${InterruptAction} `);
+ activated = InterruptAction.activated;
+ InterruptHint = InterruptAction.hint
+ console.info(TAG + 'activated ============ is :' + activated);
+ console.info(TAG + 'InterruptHint ================ is :' + InterruptHint);
+ console.info(TAG + 'InterruptAction.actionType ============ is :' + InterruptAction.actionType);
+ }
+
+ });
+ console.info(TAG + 'AudioFrameworkRenderLog: Renderer after read');
+ await sleep(3000);
+ await audioRen.drain().then(async function () {
+ console.info(TAG + 'AudioFrameworkRenderLog: Renderer drained : SUCCESS');
+ let wantInfo = {
+ want:
+ {
+ bundleName: "com.example.audiorenderinterrupt",
+ abilityName: "com.example.entry.MainAbility"
+ },
+ resultCode: 1111
+ }
+ featureAbility.terminateSelfWithResult(wantInfo).then(() => {
+ console.info(TAG + 'terminateSelf ================================== success')
+ })
+ .catch(() => {
+ console.info(TAG + 'terminateSelf ==================================== fail')
+ })
+
+ }).catch((err) => {
+ console.error(TAG + 'AudioFrameworkRenderLog: Renderer drain: ERROR : ' + err.message);
+ });
+ },
+ onDestroy() {
+ console.log(TAG1 + 'onDestroy');
+ },
+ async onActive() {
+ console.log(TAG1 + 'onActive');
+ },
+ onInactive() {
+ console.log(TAG1 + 'onInactive');
+ },
+ onShow() {
+ console.log(TAG1 + 'onShow');
+ },
+ onHide() {
+ console.log(TAG1 + 'onHide');
+ }
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/ets/MainAbility/pages/index.ets b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/ets/MainAbility/pages/index.ets
new file mode 100644
index 0000000000000000000000000000000000000000..ea08c842a144ec1916c114a26c4ed6a6a1719702
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/ets/MainAbility/pages/index.ets
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2022 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+@Entry
+@Component
+struct Index {
+ @State message: string = '播放音乐'
+
+ build() {
+ Row() {
+ Column() {
+ Text(this.message)
+ .fontSize(50)
+ .fontWeight(FontWeight.Bold)
+ Row() {
+ // Button() {
+ // Text('播放')
+ // .fontSize(20)
+ // .fontWeight(FontWeight.Bold)
+ // }.type(ButtonType.Capsule)
+ // .margin({
+ // top: 20
+ // })
+ // .backgroundColor('#0D9FFB')
+ // .width('30%')
+ // .height('5%')
+ // .onClick(()=>{})
+ }
+ }
+ .width('100%')
+ }
+ .height('100%')
+ }
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/resources/base/element/color.json b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/resources/base/element/color.json
new file mode 100644
index 0000000000000000000000000000000000000000..1bbc9aa9617e97c45440e1d3d66afc1154837012
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/resources/base/element/color.json
@@ -0,0 +1,8 @@
+{
+ "color": [
+ {
+ "name": "white",
+ "value": "#FFFFFF"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/resources/base/element/string.json b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..aad8b536276fc711029037db2194192757042833
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/resources/base/element/string.json
@@ -0,0 +1,16 @@
+{
+ "string": [
+ {
+ "name": "entry_desc",
+ "value": "description"
+ },
+ {
+ "name": "MainAbility_desc",
+ "value": "description"
+ },
+ {
+ "name": "MainAbility_label",
+ "value": "audioRender"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/resources/base/media/icon.png b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterruptRender/entry/src/main/resources/base/media/icon.png differ
diff --git a/multimedia/audio/audio_js_standard/audioInterruptRender/signature/openharmony_sx.p7b b/multimedia/audio/audio_js_standard/audioInterruptRender/signature/openharmony_sx.p7b
new file mode 100644
index 0000000000000000000000000000000000000000..66b4457a8a81fb8d3356cf46d67226c850944858
Binary files /dev/null and b/multimedia/audio/audio_js_standard/audioInterruptRender/signature/openharmony_sx.p7b differ
diff --git a/multimedia/audio/audio_js_standard/audioManager/src/main/js/test/AudioFramework.test.js b/multimedia/audio/audio_js_standard/audioManager/src/main/js/test/AudioFramework.test.js
index 7b39f0127cbcde794dc38545f41e26b5b7aaf154..b4366b702d9bc2cb52d74536091c4ddc48d2e4f2 100755
--- a/multimedia/audio/audio_js_standard/audioManager/src/main/js/test/AudioFramework.test.js
+++ b/multimedia/audio/audio_js_standard/audioManager/src/main/js/test/AudioFramework.test.js
@@ -46,6 +46,7 @@ describe('audioFramework', function () {
console.info(`${TagFrmwk}: getAudioManger : FAIL`);
}
}
+
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
@@ -4903,7 +4904,7 @@ describe('audioFramework', function () {
*@tc.level : Level 2
*/
it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_GETDEVICES_0100', 2,async function (done) {
- let AudioRoutingManager = await audioManager.getRoutingManager();
+ let AudioRoutingManager = audioManager.getRoutingManager();
AudioRoutingManager.getDevices(1, (err, value) => {
// Getting all Output devices Enumb 1 = OUTPUT_DEVICES_FLAG
console.info(`${TagFrmwk}: Callback: getDevices OUTPUT_DEVICES_FLAG`);
@@ -4937,7 +4938,7 @@ describe('audioFramework', function () {
*@tc.level : Level 2
*/
it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_GETDEVICES_0200', 2,async function (done) {
- let AudioRoutingManager = await audioManager.getRoutingManager();
+ let AudioRoutingManager = audioManager.getRoutingManager();
AudioRoutingManager.getDevices(2, (err, value) => {
// Getting all Input Devices ENUM 2 = INPUT_DEVICES_FLAG
console.info(`${TagFrmwk}: Callback: getDevices INPUT_DEVICES_FLAG`);
@@ -4970,7 +4971,7 @@ describe('audioFramework', function () {
*@tc.level : Level 2
*/
it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_GETDEVICES_0300', 2, async function (done) {
- let AudioRoutingManager = await audioManager.getRoutingManager();
+ let AudioRoutingManager = audioManager.getRoutingManager();
AudioRoutingManager.getDevices(3, (err, value) => {
// Getting all devies connected 3 = ALL_DEVICES_FLAG
console.info(`${TagFrmwk}: Callback: getDevices ALL_DEVICES_FLAG`);
@@ -5003,7 +5004,7 @@ describe('audioFramework', function () {
*@tc.level : Level 2
*/
it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_GETDEVICES_0400', 2, async function (done) {
- let AudioRoutingManager = await audioManager.getRoutingManager();
+ let AudioRoutingManager = audioManager.getRoutingManager();
AudioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
console.info(`${TagFrmwk}: Callback: getDevices OUTPUT_DEVICES_FLAG`);
if (err) {
@@ -5035,7 +5036,7 @@ describe('audioFramework', function () {
*@tc.level : Level 2
*/
it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_GETDEVICES_0500', 2, async function (done) {
- let AudioRoutingManager = await audioManager.getRoutingManager();
+ let AudioRoutingManager = audioManager.getRoutingManager();
AudioRoutingManager.getDevices(audio.DeviceFlag.INPUT_DEVICES_FLAG, (err, value) => {
console.info(`${TagFrmwk}: Callback: getDevices INPUT_DEVICES_FLAG`);
if (err) {
@@ -5066,7 +5067,7 @@ describe('audioFramework', function () {
*@tc.level : Level 2
*/
it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_GETDEVICES_0600', 2, async function (done) {
- let AudioRoutingManager = await audioManager.getRoutingManager();
+ let AudioRoutingManager = audioManager.getRoutingManager();
AudioRoutingManager.getDevices(audio.DeviceFlag.ALL_DEVICES_FLAG, (err, value) => {
console.info(`${TagFrmwk}: Callback: getDevices ALL_DEVICES_FLAG`);
if (err) {
@@ -5097,7 +5098,7 @@ describe('audioFramework', function () {
*@tc.level : Level 2
*/
it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_GETDEVICES_0700', 2, async function (done) {
- let AudioRoutingManager = await audioManager.getRoutingManager();
+ let AudioRoutingManager = audioManager.getRoutingManager();
let value = await AudioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG);
console.info(`${TagFrmwk}: Promise: getDevices OUTPUT_DEVICES_FLAG`);
value.forEach(displayDeviceProp);
@@ -5112,229 +5113,6 @@ describe('audioFramework', function () {
done();
})
- /**
- *@tc.number : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_GETDEVICES_0800
- *@tc.name : getDevices - INPUT device - Promise - ENAME
- *@tc.desc : getDevices - INPUT device
- *@tc.size : MEDIUM
- *@tc.type : Function
- *@tc.level : Level 2
- */
- it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_GETDEVICES_0800', 2, function (done) {
- audioManager.getRoutingManager(async (err, AudioRoutingManager) => {
- if (err) {
- console.error(`${TagFrmwk}: Callback: failed to get RoutingManager ${err.message}`);
- expect().assertFail();
- } else {
- let value = await AudioRoutingManager.getDevices(audio.DeviceFlag.INPUT_DEVICES_FLAG)
- console.info(`${TagFrmwk}: Promise: getDevices INPUT_DEVICES_FLAG`);
- value.forEach(displayDeviceProp);
-
- if (dTValue != null && dRValue != null && devId > 0 && sRate != null && cCount != null &&
- cMask != null) {
- console.info(`${TagFrmwk}: Promise: getDevices : INPUT_DEVICES_FLAG : PASS`);
- expect(true).assertTrue();
- } else {
- console.info(`${TagFrmwk}: Promise: getDevices : INPUT_DEVICES_FLAG : FAIL`);
- expect(false).assertTrue();
- }
- }
- done();
- });
- })
-
- /**
- *@tc.number : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_GETDEVICES_0900
- *@tc.name : getDevices - ALL device - Promise - ENAME
- *@tc.desc : getDevices - ALL device
- *@tc.size : MEDIUM
- *@tc.type : Function
- *@tc.level : Level 2
- */
- it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_GETDEVICES_0900', 2, function (done) {
- audioManager.getRoutingManager(async (err, AudioRoutingManager) => {
- if (err) {
- console.error(`${TagFrmwk}:Callback:failed to get RoutingManager ${err.message}`);
- expect().assertFail();
- } else {
- let value = await AudioRoutingManager.getDevices(audio.DeviceFlag.ALL_DEVICES_FLAG)
- console.info(`${TagFrmwk}: Promise: getDevices ALL_DEVICES_FLAG`);
- value.forEach(displayDeviceProp);
-
- if (dTValue != null && dRValue != null && devId > 0 && sRate != null && cCount != null &&
- cMask != null) {
- console.info(`${TagFrmwk}: Promise: getDevices : ALL_DEVICES_FLAG : PASS`);
- expect(true).assertTrue();
- }
- else {
- console.info(`${TagFrmwk}: Promise: getDevices : ALL_DEVICES_FLAG : FAIL`);
- expect(false).assertTrue();
- }
- }
- done();
- });
- })
-
- /**
- *@tc.number : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0100
- *@tc.name : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0100
- *@tc.desc : micStateChange
- *@tc.size : MEDIUM
- *@tc.type : Function
- *@tc.level : Level 2
- */
- it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0100', 2, async function (done) {
- try{
- var routingManager = await audioManager.getRoutingManager();
- }catch (err) {
- console.error(`${TagFrmwk}:Callback:failed to get RoutingManager ${err.message}`);
- expect(false).assertTrue();
- }
- let count = 0;
- console.info('getRoutingManager Callback START.');
- routingManager.on('micStateChange',async (micStateChange)=>{
- count++;
- })
-
- try{
- let data = await audioManager.isMicrophoneMute();
- console.info('Promise isMicrophoneMute PASS:' + data);
- await audioManager.setMicrophoneMute(data);
- console.info('Promise setMicrophoneMute PASS.');
- let data1 = await audioManager.isMicrophoneMute();
- console.info('Promise isMicrophoneMute PASS.' + data1);
- }catch (err) {
- console.log('ERROR:'+JSON.stringify(err))
- expect(false).assertTrue();
- done();
- }
- await sleep(2000);
- expect(count).assertEqual(0);
- done();
- })
-
- /**
- *@tc.number : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0200
- *@tc.name : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0200
- *@tc.desc : micStateChange
- *@tc.size : MEDIUM
- *@tc.type : Function
- *@tc.level : Level 2
- */
- it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0200', 2, async function (done) {
- try{
- var routingManager = await audioManager.getRoutingManager();
- }catch (err) {
- console.error(`${TagFrmwk}:Callback:failed to get RoutingManager ${err.message}`);
- expect(false).assertTrue();
- }
- console.info('getRoutingManager Callback START.');
- let count = 0;
- routingManager.on('micStateChange',async (micStateChange)=>{
- console.info("Updated micState:" + JSON.stringify(micStateChange));
- count++;
- })
-
- try{
- let data = await audioManager.isMicrophoneMute();
- console.info('Promise isMicrophoneMute PASS:' + data);
- let micStatus = !data;
- await audioManager.setMicrophoneMute(micStatus);
- console.info('Promise setMicrophoneMute PASS:' + micStatus);
- }catch (err) {
- console.log('ERROR:'+JSON.stringify(err))
- expect(false).assertTrue();
- done();
- }
- await sleep(2000);
- expect(count).assertEqual(1);
- done();
- })
-
- /**
- *@tc.number : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0300
- *@tc.name : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0300
- *@tc.desc : micStateChange
- *@tc.size : MEDIUM
- *@tc.type : Function
- *@tc.level : Level 2
- */
- it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0300', 2, async function (done) {
- try{
- var routingManager = await audioManager.getRoutingManager();
- }catch (err) {
- console.error(`${TagFrmwk}:Callback:failed to get RoutingManager ${err.message}`);
- expect(false).assertTrue();
- }
- console.info('getRoutingManager Callback START.');
- let count = 0;
- routingManager.on('micStateChange',async (micStateChange)=>{
- console.info("Updated micState:" + JSON.stringify(micStateChange));
- count++;
- })
-
- try{
- let data = await audioManager.isMicrophoneMute();
- console.info('Promise isMicrophoneMute PASS:' + data);
- let micStatus = !data;
- await audioManager.setMicrophoneMute(micStatus);
- console.info('Promise setMicrophoneMute PASS:' + micStatus);
- await audioManager.setMicrophoneMute(!micStatus);
- console.info('Promise setMicrophoneMute PASS:' + (!micStatus));
- }catch (err) {
- console.log('ERROR:'+JSON.stringify(err))
- expect(false).assertTrue();
- done();
- }
- await sleep(2000);
- expect(count).assertEqual(2);
- done();
- })
-
- /**
- *@tc.number : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0400
- *@tc.name : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0400
- *@tc.desc : micStateChange
- *@tc.size : MEDIUM
- *@tc.type : Function
- *@tc.level : Level 2
- */
- it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0400', 2, async function (done) {
- try{
- var routingManager = await audioManager.getRoutingManager();
- }catch (err) {
- console.error(`${TagFrmwk}:Callback:failed to get RoutingManager ${err.message}`);
- expect(false).assertTrue();
- }
- let count = 0;
- try {
- console.info("enter SUB_AUDIO_MANAGER_micStateChange_004");
- routingManager.on('micStateChange',async (micStateChange1)=>{
- console.info("Updated micState--001:" + JSON.stringify(micStateChange1));
- routingManager.on('micStateChange',async (micStateChange)=>{
- console.info("Updated micState--002:" + JSON.stringify(micStateChange));
- count++
- })
- let data = await audioManager.isMicrophoneMute();
- console.info('Second Promise isMicrophoneMute PASS:' + data);
- await audioManager.setMicrophoneMute(!data);
- console.info('Second:Promise setMicrophoneMute PASS:' + (!data));
- })
- let data = await audioManager.isMicrophoneMute();
- console.info('First Promise isMicrophoneMute PASS:' + data);
- await audioManager.setMicrophoneMute(!data);
- console.info('First:Promise setMicrophoneMute PASS:' + (!data));
- } catch (err) {
- console.log('ERROR:'+JSON.stringify(err))
- expect(false).assertTrue();
- done();
- }
-
- await sleep(2000);
- expect(count).assertEqual(1);
- done();
- })
-
/**
*@tc.number : SUB_MULTIMEDIA_AUDIO_DEVICEFALG_0100
*@tc.name : NONE_DEVICES_FLAG
diff --git a/multimedia/audio/audio_js_standard/audioManager/src/main/js/test/AudioManagerApi9.test.js b/multimedia/audio/audio_js_standard/audioManager/src/main/js/test/AudioManagerApi9.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..ead136bee87a792a81934c38de0bb79b544b91b2
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioManager/src/main/js/test/AudioManagerApi9.test.js
@@ -0,0 +1,1200 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http:// www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import audio from '@ohos.multimedia.audio';
+import * as audioTestBase from '../../../../../AudioTestBase'
+import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index';
+
+describe('audioManagerApi9', function () {
+ let TagFrmwk = "audioManagerApi9Test";
+ console.info(`${TagFrmwk}: Create AudioManger Object JS Framework`);
+ let audioManager = null;
+ let streamManager = null;
+ let audioMedia = 3;
+ let audioRingtone = 2;
+ let minVol = 0;
+ let maxVol = 15;
+ let lowVol = 5;
+ let highVol = 14;
+ let outOfRangeVol = 28;
+ let longValue = '28374837458743875804735081439085918459801437584738967509184509813904850914375904790589104801843';
+ let volNetworkId = null;
+ let volGroupId = null;
+ let volMappingId = null;
+ let volGroupName = null;
+ let volConnectType = null;
+ function displayVolumeGroupProp(value, index, array) {
+ console.info('audioManagerApi9Test: volume group networkId:' + value.networkId);
+ volNetworkId = value.networkId;
+ console.info('audioManagerApi9Test: volume group id:' + value.groupId);
+ volGroupId = value.groupId;
+ console.info('audioManagerApi9Test: volume group mappingId:' + value.mappingId);
+ volMappingId = value.mappingId;
+ console.info('audioManagerApi9Test: volume group name:' + value.groupName);
+ volGroupName = value.groupName;
+ console.info('audioManagerApi9Test: volume group connect type:' + value.ConnectType);
+ volConnectType = value.ConnectType;
+ }
+ function getAudioManager() {
+ audioManager = audio.getAudioManager();
+ if (audioManager != null) {
+ console.info(`${TagFrmwk}: getAudioManger : PASS`);
+ }
+ else {
+ console.info(`${TagFrmwk}: getAudioManger : FAIL`);
+ }
+ }
+ function getStreamManager() {
+ streamManager = audioManager.getStreamManager();
+ if (streamManager != null) {
+ console.info(`${TagFrmwk}: getStreamManager : PASS`);
+ }
+ else {
+ console.info(`${TagFrmwk}: getStreamManager : FAIL`);
+ }
+ }
+ function sleep(ms) {
+ return new Promise(resolve => setTimeout(resolve, ms));
+ }
+
+ beforeAll(async function () {
+ console.info(`${TagFrmwk}: beforeAll: Prerequisites at the test suite level`);
+ let permissionName1 = 'ohos.permission.MICROPHONE';
+ let permissionName2 = 'ohos.permission.ACCESS_NOTIFICATION_POLICY';
+ let permissionName3 = 'ohos.permission.MODIFY_AUDIO_SETTINGS';
+ let permissionName4 = 'ohos.permission.MANAGE_AUDIO_CONFIG';
+ let permissionNameList = [permissionName1, permissionName2, permissionName3, permissionName4];
+ let appName = 'ohos.acts.multimedia.audio.audiomanager';
+ await audioTestBase.applyPermission(appName, permissionNameList);
+ await sleep(100);
+ await getAudioManager();
+ getStreamManager();
+ console.info(`${TagFrmwk}: beforeAll: END`);
+ })
+
+ beforeEach(async function () {
+ console.info(`${TagFrmwk}: beforeEach: Prerequisites at the test case level`);
+ await sleep(100);
+ })
+
+ afterEach(async function () {
+ console.info(`${TagFrmwk}: afterEach: Test case-level clearance conditions`);
+ await sleep(100);
+ })
+
+ afterAll(function () {
+ console.info(`${TagFrmwk}: afterAll: Test suite-level cleanup condition`);
+ })
+
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_ERRORS_0100'
+ *@tc.name : AUDIO_ERRORS
+ *@tc.desc : AUDIO_ERRORS
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_ERRORS_0100', 2, async function (done) {
+ expect(audio.AudioErrors.ERROR_INVALID_PARAM).assertEqual(6800101);
+ expect(audio.AudioErrors.ERROR_NO_MEMORY).assertEqual(6800102);
+ expect(audio.AudioErrors.ERROR_ILLEGAL_STATE).assertEqual(6800103);
+ expect(audio.AudioErrors.ERROR_UNSUPPORTED).assertEqual(6800104);
+ expect(audio.AudioErrors.ERROR_TIMEOUT).assertEqual(6800105);
+ expect(audio.AudioErrors.ERROR_STREAM_LIMIT).assertEqual(6800201);
+ expect(audio.AudioErrors.ERROR_SYSTEM).assertEqual(6800301);
+ await sleep(50);
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_DEFAULT_VOLUME_GROUP_ID_0100'
+ *@tc.name : DEFAULT_VOLUME_GROUP_ID
+ *@tc.desc : DEFAULT_VOLUME_GROUP_ID
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_DEFAULT_VOLUME_GROUP_ID_0100', 2, async function (done) {
+ expect(audio.DEFAULT_VOLUME_GROUP_ID).assertEqual(1);
+ await sleep(50);
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_DEFAULT_INTERRUPT_GROUP_ID_0100'
+ *@tc.name : DEFAULT_INTERRUPT_GROUP_ID
+ *@tc.desc : DEFAULT_INTERRUPT_GROUP_ID
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_DEFAULT_INTERRUPT_GROUP_ID_0100', 2, async function (done) {
+ expect(audio.DEFAULT_INTERRUPT_GROUP_ID).assertEqual(1);
+ await sleep(50);
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_COMUNICATIONDEVICETYPE_0100'
+ *@tc.name : COMUNICATIONDEVICETYPE
+ *@tc.desc : COMUNICATIONDEVICETYPE
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_COMUNICATIONDEVICETYPE_0100', 2, async function (done) {
+ expect(audio.CommunicationDeviceType.SPEAKER).assertEqual(2);
+ await sleep(50);
+ done();
+ })
+
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_DEFAULT_INTERRUPT_GROUP_ID_0100'
+ *@tc.name : INTERRUPTREQUESTTYPE
+ *@tc.desc : INTERRUPTREQUESTTYPE
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_INTERRUPTREQUESTTYPE_0100', 2, async function (done) {
+ expect(audio.InterruptRequestType.INTERRUPT_REQUEST_TYPE_DEFAULT).assertEqual(0);
+ await sleep(50);
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_DEFAULT_INTERRUPT_GROUP_ID_0100'
+ *@tc.name : INTERRUPTREQUESTRESULTTYPE
+ *@tc.desc : INTERRUPTREQUESTRESULTTYPE
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_INTERRUPTREQUESTRESULTTYPE_0100', 2, async function (done) {
+ expect(audio.InterruptRequestResultType.INTERRUPT_REQUEST_GRANT).assertEqual(0);
+ expect(audio.InterruptRequestResultType.INTERRUPT_REQUEST_REJECT).assertEqual(1);
+ await sleep(50);
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_MANAGER_GETVOLUMEGROUPSINFOS_0100
+ *@tc.name : getVolumeGroupInfos - LOCAL_NETWORK_ID - Promise
+ *@tc.desc : getVolumeGroupInfos - LOCAL_NETWORK_ID
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_MANAGER_GETVOLUMEGROUPSINFOS_0100', 2, async function (done) {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let value = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ // Getting Local VolumeGroupInfos
+ console.info(`${TagFrmwk}: Callback: getVolumeGroupInfos LOCAL_NETWORK_ID`);
+ value.forEach(displayVolumeGroupProp);
+ if (volNetworkId != null && volGroupId != null && volMappingId != null && volGroupName != null &&
+ volConnectType != null) {
+ console.info('audioManagerApi9Test: Callback: getVolumeGroups : PASS');
+ expect(true).assertTrue();
+ }
+ else {
+ console.info('audioManagerApi9Test: Callback: getVolumeGroups : FAIL');
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_MANAGER_GETVOLUMEGROUPSINFOS_0200
+ *@tc.name : getVolumeGroupInfos - LOCAL_NETWORK_ID - Callback
+ *@tc.desc : getVolumeGroupInfos - LOCAL_NETWORK_ID
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_MANAGER_GETVOLUMEGROUPSINFOS_0200', 2, async function (done) {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID, (err, value) => {
+ // Getting Local VolumeGroupInfos
+ console.info(`${TagFrmwk}: Callback: getVolumeGroupInfos LOCAL_NETWORK_ID`);
+ if (err) {
+ console.error(`${TagFrmwk}:Callback: OUTPUT_DEVICES_FLAG: failed to get devices ${err.message}`);
+ expect().assertFail();
+ }
+ else {
+ console.info(`${TagFrmwk}: Callback: getDevices OUTPUT_DEVICES_FLAG`);
+ value.forEach(displayVolumeGroupProp);
+ if (volNetworkId != null && volGroupId != null && volMappingId != null && volGroupName != null &&
+ volConnectType != null) {
+ console.info('audioManagerApi9Test: Callback: getVolumeGroups : PASS');
+ expect(true).assertTrue();
+ }
+ else {
+ console.info('audioManagerApi9Test: Callback: getVolumeGroups : FAIL');
+ expect(false).assertTrue();
+ }
+ }
+ done();
+ });
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_0100
+ * @tc.name : getVolumeGroupManager - callback
+ * @tc.desc : getVolumeGroupManager
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_0100', 3, async function (done) {
+ let audioVolumeManager;
+ let groupId_;
+ try {
+ audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ groupId_ = volumeGroupInfos[0].groupId
+ } catch (err) {
+ console.info('audioManagerApi9Test: getGroupManager: parameter err:' + err.message);
+ expect(false).assertTrue();
+ done();
+ }
+ audioVolumeManager.getVolumeGroupManager(groupId_, (err, groupManager) => {
+ if (err) {
+ console.error(`audioManagerApi9Test: failed to getGroupManager: Callback: ${err.message}`);
+ expect(false).assertTrue();
+ } else {
+ if ((typeof groupManager) == 'object') {
+ console.info('audioManagerApi9Test: Promise: getGroupManager : PASS');
+ expect(true).assertTrue();
+ }
+ else {
+ console.info('audioManagerApi9Test: Promise: getGroupManager : FAIL');
+ expect(false).assertTrue();
+ }
+ }
+ done();
+ })
+ })
+
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_0200
+ * @tc.name : getVolumeGroupManager - prmiose
+ * @tc.desc : getVolumeGroupManager
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_0200', 3, async function (done) {
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ if ((typeof groupManager) == 'object') {
+ console.info('audioManagerApi9Test: Promise: getGroupManager : PASS');
+ expect(true).assertTrue();
+ }
+ else {
+ console.info('audioManagerApi9Test: Promise: getGroupManager : FAIL');
+ expect(false).assertTrue();
+ }
+ } catch (err) {
+ console.info('audioManagerApi9Test: getGroupManager: parameter err:' + err.message);
+ expect(false).assertTrue();
+ done();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_SETVOLUME_0100
+ * @tc.name : group manager setVolume - MEDIA - Callback
+ * @tc.desc : group manager Setvolo to 14
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_SETVOLUME_0100', 3, async function (done) {
+ let groupManager;
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId
+ groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ } catch (err) {
+ console.info('audioManagerApi9Test: getVolumeGroupManager : err:' + err.message);
+ expect(false).assertTrue();
+ done();
+ }
+ groupManager.setVolume(audio.AudioVolumeType.MEDIA, highVol, (err, data) => {
+ if (err) {
+ console.error(`audioManagerApi9Test: failed to set volume: Callback: ${err.message}`);
+ expect(false).assertTrue();
+ }
+ else {
+ console.info(`audioManagerApi9Test: callback : Meida setVolume successful `);
+ groupManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
+ if (err) {
+ console.error(`audioManagerApi9Test: callback : Meida: failed to get volume ${err.message}`);
+ expect(false).assertTrue();
+ }
+ else if (value == highVol) {
+ console.info('audioManagerApi9Test: callback : Meida getVolume: PASS :' + value);
+ expect(true).assertTrue();
+ }
+ else {
+ console.info('audioManagerApi9Test: callback : Meida getVolume: FAIL :' + value);
+ expect(false).assertTrue();
+ }
+ done();
+ });
+ }
+ });
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_SETVOLUME_0200
+ * @tc.name : group manager setVolume - MEDIA - Promise
+ * @tc.desc : group manager Setvolume to 14
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_SETVOLUME_0200', 3, async function (done) {
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ await groupManager.setVolume(audio.AudioVolumeType.MEDIA, highVol);
+ let value = await groupManager.getVolume(audio.AudioVolumeType.MEDIA);
+ if (value == highVol) {
+ console.info('audioManagerApi9Test: callback : Meida getVolume: PASS :' + value);
+ expect(true).assertTrue();
+ }
+ else {
+ console.info('audioManagerApi9Test: callback : Meida getVolume: FAIL :' + value);
+ expect(false).assertTrue();
+ }
+ done();
+ } catch (err) {
+ console.info('audioManagerApi9Test: getVolumeGroupManager : err:' + err.message);
+ expect(false).assertTrue();
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_GETMAXVOLUME_0100
+ * @tc.name : getMaxVolume - RINGTONE - Callback
+ * @tc.desc : getMaxVolume
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_GETMAXVOLUME_0100', 3, async function (done) {
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ groupManager.getMaxVolume(audio.AudioVolumeType.RINGTONE, (err, data) => {
+ if (err) {
+ console.error(`audioManagerApi9Test: failed to getMaxVolume: Callback: ${err.message}`);
+ expect(false).assertTrue();
+ }
+ else {
+ if (data == maxVol) {
+ console.info('audioManagerApi9Test: callback : Ringtone getMaxVolume: PASS :' + data);
+ expect(true).assertTrue();
+ }
+ else {
+ console.info('audioManagerApi9Test: callback : Ringtone getMaxVolume: FAIL :' + data);
+ expect(false).assertTrue();
+ }
+ }
+ done();
+ });
+ } catch (err) {
+ console.info('audioManagerApi9Test: getVolumeGroupManager : err:' + err.message);
+ expect(false).assertTrue();
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_GETMAXVOLUME_0200
+ * @tc.name : getMaxVolume - RINGTONE - Promise
+ * @tc.desc : getMaxVolume
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_GETMAXVOLUME_0200', 3, async function (done) {
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ let maxVolume = await groupManager.getMaxVolume(audio.AudioVolumeType.RINGTONE);
+ if (maxVolume == maxVol) {
+ console.info('audioManagerApi9Test: promise : Ringtone getMaxVolume: PASS :' + maxVolume);
+ expect(true).assertTrue();
+ }
+ else {
+ console.info('audioManagerApi9Test: promise : Ringtone getMaxVolume: FAIL :' + maxVolume);
+ expect(false).assertTrue();
+ }
+ } catch (err) {
+ console.info('audioManagerApi9Test: getVolumeGroupManager : err:' + err.message);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_GETMINVOLUME_0100
+ * @tc.name : getMinVolume - RINGTONE - Callback
+ * @tc.desc : getMinVolume
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_GETMINVOLUME_0100', 2, async function (done) {
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ groupManager.getMinVolume(audio.AudioVolumeType.RINGTONE, (err, data) => {
+ if (err) {
+ console.error(`audioManagerApi9Test: failed to getMinVolume : Callback: ${err.message}`);
+ expect(false).assertTrue();
+ }
+ else {
+ if (data == minVol) {
+ console.info('audioManagerApi9Test: callback : Ringtone getMinVolume: PASS :' + data);
+ expect(true).assertTrue();
+ }
+ else {
+ console.info('audioManagerApi9Test: callback : Ringtone getMinVolume: FAIL :' + data);
+ expect(false).assertTrue();
+ }
+ }
+ done();
+ });
+ } catch (err) {
+ console.info('audioManagerApi9Test: getVolumeGroupManager : err:' + err.message);
+ expect(false).assertTrue();
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_GETMINVOLUME_0200
+ * @tc.name : getMaxVolume - RINGTONE - Promise
+ * @tc.desc : getMaxVolume
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_GETMINVOLUME_0200', 3, async function (done) {
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ let minVolume = await groupManager.getMinVolume(audio.AudioVolumeType.RINGTONE);
+ if (minVolume == minVol) {
+ console.info('audioManagerApi9Test: promise : Ringtone getMinVolume: PASS :' + minVolume);
+ expect(true).assertTrue();
+ }
+ else {
+ console.info('audioManagerApi9Test: promise : Ringtone getMinVolume: FAIL :' + minVolume);
+ expect(false).assertTrue();
+ }
+ } catch (err) {
+ console.info('audioManagerApi9Test: getVolumeGroupManager : err:' + err.message);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_MUTE_0100
+ * @tc.name : group manager mute - RINGTONE - Callback
+ * @tc.desc : mute - RINGTONE - Callback
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_MUTE_0100', 3, async function (done) {
+ let groupManager;
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ } catch (err) {
+ console.info('audioManagerApi9Test: getGroupManager mute : parameter err:' + err.message);
+ expect(false).assertTrue();
+ done();
+ }
+ groupManager.mute(audio.AudioVolumeType.RINGTONE, false, (err, data) => {
+ if (err) {
+ console.error(`audioManagerApi9Test: failed to mute : Callback: ${err.message}`);
+ expect(false).assertTrue();
+ }
+ else {
+ groupManager.isMute(audio.AudioVolumeType.RINGTONE, (err, data) => {
+ if (err) {
+ console.error(`audioManagerApi9Test: failed to isMute : Callback: ${err.message}`);
+ expect(false).assertTrue();
+ }
+ else {
+ if (data == false) {
+ console.log(`audioManagerApi9Test: Promise:
+ Is Stream GroupManager Mute RINGTONE: FALSE: PASS:`+ data);
+ expect(true).assertTrue();
+ }
+ else {
+ console.log(`audioManagerApi9Test: Promise:
+ Is Stream GroupManager Mute RINGTONE: FALSE: FAIL: `+ data);
+ expect(false).assertTrue();
+ }
+ }
+ done();
+ })
+ }
+ })
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_MUTE_0200
+ * @tc.name : group manager mute - RINGTONE - Promise
+ * @tc.desc : mute - RINGTONE - Promise
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_MUTE_0200', 3, async function (done) {
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ await groupManager.mute(audio.AudioVolumeType.RINGTONE, false).then(async function () {
+ console.log('audioManagerApi9Test: Set Stream GroupManager Mute: RINGTONE: Promise: FALSE');
+ await groupManager.isMute(audio.AudioVolumeType.RINGTONE).then(function (data) {
+ if (data == false) {
+ console.log(`audioManagerApi9Test: Promise:
+ Is Stream GroupManager Mute RINGTONE: FALSE: PASS:`+ data);
+ expect(true).assertTrue();
+ }
+ else {
+ console.log(`audioManagerApi9Test: Promise:
+ Is Stream GroupManager Mute RINGTONE: FALSE: FAIL: `+ data);
+ expect(false).assertTrue();
+ }
+ done();
+ });
+ }).catch((err) => {
+ console.info(`audioManagerApi9Test: Promise:
+ Is Stream GroupManager Mute RINGTONE: FALSE: ERROR:` + err.message);
+ expect(false).assertTrue();
+ done();
+ });
+ } catch (err) {
+ console.info('audioManagerApi9Test: getGroupManager mute : parameter err:' + err.message);
+ expect(false).assertTrue();
+ done();
+ }
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_ON_VOLUMECHANGE_0100
+ *@tc.name : OnVolumeChange - setVolume - MEDIA
+ *@tc.desc : OnVolumeChange - setVolume - MEDIA
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_ON_VOLUMECHANGE_0100', 3, async function (done) {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ audioVolumeManager.on('volumeChange', (VolumeEvent) => {
+ console.log(`${TagFrmwk}: Volume Change Event is called`);
+ switch (VolumeEvent.volumeType) {
+ case audio.AudioVolumeType.MEDIA:
+ console.info(`${TagFrmwk}: Audio VolumeEvent is : ${VolumeEvent}`);
+ if (VolumeEvent.volume == lowVol) {
+ console.info(`${TagFrmwk}: MEDIA CallBack : PASS : ${VolumeEvent.volume}`);
+ expect(true).assertTrue();
+ }
+ break;
+ default:
+ console.info(`${TagFrmwk}: Audio VolumeEvent is : ${VolumeEvent}`);
+ expect(false).assertTrue();
+ break;
+ }
+ done();
+ });
+ try {
+ await groupManager.setVolume(audioMedia, lowVol);
+ console.info('setVolume success')
+ } catch (err) {
+ console.log('err :' + err.message)
+ expect(false).assertTrue();
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_SETRINGERMODE_0100
+ * @tc.name : group manager mute - RINGTONE - Callback
+ * @tc.desc : mute - RINGTONE - Callback
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_SETRINGERMODE_0100', 3, async function (done) {
+ let groupManager;
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ } catch (err) {
+ console.info('audioManagerApi9Test: getGroupManager mute : parameter err:' + err.message);
+ expect(false).assertTrue();
+ done();
+ }
+ groupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err, data) => {
+ if (err) {
+ console.error(`audioManagerApi9Test: failed to setRingerMode : Callback: ${err.message}`);
+ expect(false).assertTrue();
+ }
+ else {
+ groupManager.getRingerMode((err, data) => {
+ if (err) {
+ console.error(`audioManagerApi9Test: failed to getRingerMode : Callback: ${err.message}`);
+ expect(false).assertTrue();
+ }
+ else {
+ if (data == audio.AudioRingMode.RINGER_MODE_NORMAL) {
+ console.log(`audioManagerApi9Test: Promise:
+ getRingerMode : PASS:`+ data);
+ expect(true).assertTrue();
+ }
+ else {
+ console.log(`audioManagerApi9Test: Promise:
+ getRingerMode : FAIL: `+ data);
+ expect(false).assertTrue();
+ }
+ }
+ done();
+ })
+ }
+ })
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_SETRINGERMODE_0200
+ *@tc.name : setRingerMode - Normal Mode - Promise - ENAME
+ *@tc.desc : setRingerMode - Set Ring more to Normal Mode
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_SETRINGERMODE_0200', 3, async function (done) {
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ await groupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL);
+ let value = await groupManager.getRingerMode();
+ if (value == audio.AudioRingMode.RINGER_MODE_NORMAL) {
+ console.info(`${TagFrmwk}: Promise: setRingerMode RINGER_MODE_NORMAL: PASS :${value}`);
+ expect(true).assertTrue();
+ } else {
+ console.info(`${TagFrmwk}: Promise: setRingerMode RINGER_MODE_NORMAL: FAIL :${value}`);
+ expect(false).assertTrue();
+ }
+ } catch (err) {
+ console.log('err :' + err.message);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_ONRINGMODECHANGE_0100
+ *@tc.name : OnRingMode - RINGER_MODE_NORMAL
+ *@tc.desc : OnRingMode - RINGER_MODE_NORMAL
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_ONRINGMODECHANGE_0100', 3, async function (done) {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ groupManager.on('ringerModeChange', (AudioRingMode) => {
+ console.log(`${TagFrmwk}: ringerMode Change Event is called`);
+ switch (AudioRingMode) {
+ case audio.AudioRingMode.RINGER_MODE_NORMAL:
+ console.info(`${TagFrmwk}: Audio ringerMode is : ${AudioRingMode}`);
+ console.info(`${TagFrmwk}: MEDIA CallBack : PASS : ${AudioRingMode}`);
+ expect(true).assertTrue();
+ break;
+ default:
+ console.info(`${TagFrmwk}: Audio VolumeEvent is : ${AudioRingMode}`);
+ expect(false).assertTrue();
+ break;
+ }
+ done();
+ });
+ try {
+ await groupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL);
+ console.info('setRingerMode success')
+ } catch (err) {
+ console.log('err :' + err.message)
+ expect(false).assertTrue();
+ done();
+ }
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_GSETMICROPHONEMUTE_0100
+ *@tc.name : setMicrophoneMute - true - Callback
+ *@tc.desc : Enable mic mute
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_SETMICROPHONEMUTE_0100', 3, async function (done) {
+ let groupManager;
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ } catch (err) {
+ console.log('err :' + err.message);
+ expect(false).assertTrue();
+ }
+ groupManager.setMicrophoneMute(true, (err, data) => {
+ if (err) {
+ console.error(`audioManagerApi9Test: failed to setMicrophoneMute : Callback: ${err.message}`);
+ expect(false).assertTrue();
+ }
+ else {
+ groupManager.isMicrophoneMute((err, data) => {
+ if (err) {
+ console.error(`audioManagerApi9Test: failed to isMicrophoneMute : Callback: ${err.message}`);
+ expect(false).assertTrue();
+ }
+ else {
+ if (data == true) {
+ console.log(`${TagFrmwk}: Callback: isMicrophoneMute: TRUE: PASS:${data}`);
+ expect(true).assertTrue();
+ } else {
+ console.log(`${TagFrmwk}: Callback: isMicrophoneMute: TRUE: FAIL: ${data}`);
+ expect(false).assertTrue();
+ }
+ }
+ done();
+ })
+ }
+ });
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_GSETMICROPHONEMUTE_0200
+ *@tc.name : setMicrophoneMute - true - Promise
+ *@tc.desc : Enable mic mute
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_SETMICROPHONEMUTE_0200', 3, async function (done) {
+ try {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ await groupManager.setMicrophoneMute(true);
+ let data = await groupManager.isMicrophoneMute();
+ if (data == true) {
+ console.log(`${TagFrmwk}: Promise: isMicrophoneMute: TRUE: PASS:${data}`);
+ expect(true).assertTrue();
+ } else {
+ console.log(`${TagFrmwk}: Promise: isMicrophoneMute: TRUE: FAIL: ${data}`);
+ expect(false).assertTrue();
+ }
+ } catch (err) {
+ console.log('err :' + err.message);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_ONMICSTATECHANGE_0100
+ *@tc.name : OnMicStateChange
+ *@tc.desc : OnMicStateChange
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 3
+ */
+ it('SUB_MULTIMEDIA_AUDIO_VOLUME_GROUP_MANAGER_ONMICSTATECHANGE_0100', 2, async function (done) {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId;
+ let groupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ try {
+ await groupManager.setMicrophoneMute(false);
+ console.info('setMicrophoneMute success')
+ } catch (err) {
+ console.log('err :' + err.message)
+ expect(false).assertTrue();
+ done();
+ }
+ groupManager.on('micStateChange', (MicStateChangeEvent) => {
+ console.log(`${TagFrmwk}: Mic State Change Event is called`);
+
+ if (MicStateChangeEvent.mute == true) {
+ console.info(`${TagFrmwk}: MEDIA CallBack : PASS : ${MicStateChangeEvent.mute}`);
+ expect(true).assertTrue();
+ } else {
+ console.info(`${TagFrmwk}: Audio MicStateChangeEvent is : ${MicStateChangeEvent}`);
+ expect(false).assertTrue();
+ }
+ done();
+ });
+ try {
+ await groupManager.setMicrophoneMute(true);
+ console.info('setMicrophoneMute success')
+ } catch (err) {
+ console.log('err :' + err.message)
+ expect(false).assertTrue();
+ done();
+ }
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_STREAM_MANAGER_ISACTIVE_0100
+ *@tc.name : isActive - Media - Promise
+ *@tc.desc : isActive - Media - Promise - When stream is NOT playing
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 1
+ */
+ it('SUB_MULTIMEDIA_AUDIO_STREAM_MANAGER_ISACTIVE_0100', 1, async function (done) {
+ console.log(`${TagFrmwk}: Promise : isActive Media: NOTE: audio NOT PLAYING as MEDIA for the test case to PASS`);
+ const PROMISE = streamManager.isActive(audioMedia);
+ PROMISE.then(function (data) {
+ if (data == false) {
+ console.log(`${TagFrmwk}: Promise: isActive: Media: TRUE: PASS:${data}`);
+ expect(true).assertTrue();
+ } else {
+ console.log(`${TagFrmwk}: Promise: isActive: Media: TRUE: FAIL: ${data}`);
+ expect(false).assertTrue();
+ }
+ }).catch(err => {
+ console.log('err :' + JSON.stringify(err));
+ expect().assertFail();
+ });
+ await PROMISE;
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_STREAM_MANAGER_ISACTIVE_0100
+ *@tc.name : isActive - Media - Callback
+ *@tc.desc : isActive - Media - Callback - When stream is NOT playing
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 1
+ */
+ it('SUB_MULTIMEDIA_AUDIO_STREAM_MANAGER_ISACTIVE_0100', 1, function (done) {
+ console.log(`${TagFrmwk}: Callback : isActive Media: NOTE: audio NOT PLAYING as MEDIA for the test case to PASS`);
+ streamManager.isActive(audioMedia, (err, data) => {
+ if (err) {
+ console.error(`${TagFrmwk}: Callback : Media : isActive: failed ${err.message}`);
+ expect().assertFail();
+ } else if (data == false) {
+ console.log(`${TagFrmwk}: Callback: isActive: Media: TRUE: PASS:${data}`);
+ expect(true).assertTrue();
+ } else {
+ console.log(`${TagFrmwk}: Callback: isActive: Media: TRUE: FAIL: ${data}`);
+ expect(false).assertTrue();
+ }
+ done();
+ });
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_MANAGER_SETCOMMUNICATIONDEVICE_0100
+ *@tc.name : setCommunicationDevice - SPEAKER - deactivate - Promise
+ *@tc.desc : setCommunicationDevice speaker - Promise
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 1
+ */
+ it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_SETCOMMUNICATIONDEVICE_0100', 1, async function (done) {
+ try {
+ let flag = true;
+ let AudioRoutingManager = audioManager.getRoutingManager();
+ let outputDeviceDescription = await AudioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG);
+ console.info(`SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_SETCOMMUNICATIONDEVICE_0100
+ outputDeviceDescription is ${JSON.stringify(outputDeviceDescription)}`);
+ if (outputDeviceDescription.length == 1 &&
+ outputDeviceDescription[0].deviceType == audio.DeviceType.SPEAKER) {
+ flag = false;
+ }
+ await AudioRoutingManager.setCommunicationDevice(2, false).then(() => {
+ console.info(`SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_SETCOMMUNICATIONDEVICE_0100
+ Promise returned to indicate that the device is set to the active status.`);
+ });
+ await AudioRoutingManager.isCommunicationDeviceActive(audio.ActiveDeviceType.SPEAKER).then(function (value) {
+ if (flag == true && value == false) {
+ console.info(`SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_SETCOMMUNICATIONDEVICE_0100
+ isCommunicationDeviceActive : SPEAKER: Deactivate : PASS :${value} flag is ${flag}`);
+ expect(true).assertTrue();
+ }
+ else if (flag == false && value == true) {
+ console.info(`SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_SETCOMMUNICATIONDEVICE_0100
+ isCommunicationDeviceActive : SPEAKER: Deactivate : PASS :${value} flag is ${flag}`);
+ expect(true).assertTrue();
+ }
+ else {
+ console.info(`SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_SETCOMMUNICATIONDEVICE_0100
+ isCommunicationDeviceActive : SPEAKER: Deactivate : fail :${value} flag is ${flag}`);
+ expect(false).assertTrue();
+ }
+ }).catch((err) => {
+ console.log('err :' + JSON.stringify(err));
+ expect(false).assertTrue();
+ });
+ } catch (err) {
+ console.log('err :' + JSON.stringify(err));
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_SETCOMMUNICATIONDEVICE_0200
+ *@tc.name : setCommunicationDevice - SPEAKER - deactivate - Callback
+ *@tc.desc : setCommunicationDevice speaker - Callback
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_SETCOMMUNICATIONDEVICE_0200', 2, async function (done) {
+ let flag = true
+ let AudioRoutingManager = audioManager.getRoutingManager();
+ let outputDeviceDescription = await AudioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG);
+ console.info(`SUB_MULTIMEDIA_AUDIO_MANAGER_SETCOMMUNICATIONDEVICE_0200
+ outputDeviceDescription is ${JSON.stringify(outputDeviceDescription)}`);
+ if (outputDeviceDescription.length == 1 && outputDeviceDescription[0].deviceType == audio.DeviceType.SPEAKER) {
+ flag = false;
+ }
+ AudioRoutingManager.setCommunicationDevice(audio.ActiveDeviceType.SPEAKER, false, (err) => {
+ if (err) {
+ console.error(`${TagFrmwk}: Device Test: Callback : setCommunicationDevice : SPEAKER: Deactivate: Error: ${err.message}`);
+ expect(false).assertTrue();
+ done();
+ } else {
+ console.info(`${TagFrmwk}: Device Test: Callback : setCommunicationDevice : SPEAKER: Active`);
+ AudioRoutingManager.isCommunicationDeviceActive(2, (err, value) => {
+ if (err) {
+ console.error(`${TagFrmwk}: Device Test: Callback : isCommunicationDeviceActive : SPEAKER: Deactivate: Error: ${err.message}`);
+ expect(false).assertTrue();
+ } else if (value == false && flag == true) {
+ console.info(`${TagFrmwk}: Device Test: Callback : isCommunicationDeviceActive : SPEAKER: Deactivate : PASS :${value} flag is ${flag}`);
+ expect(true).assertTrue();
+ } else if (value == true && flag == false) {
+ console.info(`${TagFrmwk}: Device Test: Callback : isCommunicationDeviceActive : SPEAKER: Deactivate : PASS :${value} flag is ${flag}`);
+ expect(true).assertTrue();
+ }
+ else {
+ console.info(`SUB_MULTIMEDIA_AUDIO_MANAGER_SETCOMMUNICATIONDEVICE_0200 ${TagFrmwk}: Device Test: Callback : isCommunicationDeviceActive : SPEAKER: Deactivate : FAIL :${value} flag is ${flag}`);
+ expect(false).assertTrue();
+ }
+ done();
+ });
+ }
+ });
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0100
+ *@tc.name : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0100
+ *@tc.desc : micStateChange
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0100', 2, async function (done) {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId
+ let VolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ let count = 0;
+ console.info('getVolumeGroupManager Callback START.');
+ VolumeGroupManager.on('micStateChange', async (micStateChange) => {
+
+ console.info('micStateChange is ' + micStateChange.mute);
+ count++;
+ })
+ try {
+ let data = await audioManager.isMicrophoneMute();
+ console.info('Promise isMicrophoneMute PASS:' + data);
+ await audioManager.setMicrophoneMute(data);
+ console.info('Promise setMicrophoneMute PASS.');
+ let data1 = await audioManager.isMicrophoneMute();
+ console.info('Promise isMicrophoneMute PASS.' + data1);
+ } catch (err) {
+ console.log('ERROR:' + JSON.stringify(err))
+ expect(false).assertTrue();
+ done();
+ }
+ await sleep(2000);
+ expect(count).assertEqual(0);
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0200
+ *@tc.name : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0200
+ *@tc.desc : micStateChange
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0200', 2, async function (done) {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId
+ let VolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ console.info('getVolumeGroupManager Callback START.');
+ let count = 0;
+ VolumeGroupManager.on('micStateChange', async (micStateChange) => {
+ console.info("Updated micState:" + JSON.stringify(micStateChange));
+ count++;
+ })
+ try {
+ let data = await audioManager.isMicrophoneMute();
+ console.info('Promise isMicrophoneMute PASS:' + data);
+ let micStatus = !data;
+ await audioManager.setMicrophoneMute(micStatus);
+ console.info('Promise setMicrophoneMute PASS:' + micStatus);
+ } catch (err) {
+ console.log('ERROR:' + JSON.stringify(err))
+ expect(false).assertTrue();
+ done();
+ }
+ await sleep(2000);
+ expect(count).assertEqual(1);
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0300
+ *@tc.name : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0300
+ *@tc.desc : micStateChange
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0300', 2, async function (done) {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId
+ let VolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ console.info('getVolumeGroupManager Callback START.');
+ let count = 0;
+ VolumeGroupManager.on('micStateChange', async (micStateChange) => {
+ console.info("Updated micState:" + JSON.stringify(micStateChange));
+ count++;
+ })
+ try {
+ let data = await audioManager.isMicrophoneMute();
+ console.info('Promise isMicrophoneMute PASS:' + data);
+ let micStatus = !data;
+ await audioManager.setMicrophoneMute(micStatus);
+ console.info('Promise setMicrophoneMute PASS:' + micStatus);
+ await audioManager.setMicrophoneMute(!micStatus);
+ console.info('Promise setMicrophoneMute PASS:' + (!micStatus));
+ } catch (err) {
+ console.log('ERROR:' + JSON.stringify(err))
+ expect(false).assertTrue();
+ done();
+ }
+ await sleep(2000);
+ expect(count).assertEqual(2);
+ done();
+ })
+
+ /**
+ *@tc.number : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0400
+ *@tc.name : SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0400
+ *@tc.desc : micStateChange
+ *@tc.size : MEDIUM
+ *@tc.type : Function
+ *@tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0400', 2, async function (done) {
+ let audioVolumeManager = audioManager.getVolumeManager();
+ let volumeGroupInfos = await audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ let groupId_ = volumeGroupInfos[0].groupId
+ let VolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupId_);
+ let count = 0;
+ try {
+ console.info("enter SUB_MULTIMEDIA_AUDIO_ROUTING_MANAGER_MICSTATECHANGE_0400");
+ VolumeGroupManager.on('micStateChange', async (micStateChange1) => {
+ console.info("Updated micState--001:" + JSON.stringify(micStateChange1));
+ VolumeGroupManager.on('micStateChange', async (micStateChange) => {
+ console.info("Updated micState--002:" + JSON.stringify(micStateChange));
+ count++
+ })
+ let data = await audioManager.isMicrophoneMute();
+ console.info('Second Promise isMicrophoneMute PASS:' + data);
+ await audioManager.setMicrophoneMute(!data);
+ console.info('Second:Promise setMicrophoneMute PASS:' + (!data));
+ })
+ let data = await audioManager.isMicrophoneMute();
+ console.info('First Promise isMicrophoneMute PASS:' + data);
+ await audioManager.setMicrophoneMute(!data);
+ console.info('First:Promise setMicrophoneMute PASS:' + (!data));
+ } catch (err) {
+ console.log('ERROR:' + JSON.stringify(err))
+ expect(false).assertTrue();
+ done();
+ }
+ await sleep(2000);
+ expect(count).assertEqual(1);
+ done();
+ })
+
+})
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioManager/src/main/js/test/List.test.js b/multimedia/audio/audio_js_standard/audioManager/src/main/js/test/List.test.js
index c9fb777cb497c7690ffaa8fa3edc9e4522259b98..634ee62d06d694ba1f67907852b92e7ff74bdc8b 100644
--- a/multimedia/audio/audio_js_standard/audioManager/src/main/js/test/List.test.js
+++ b/multimedia/audio/audio_js_standard/audioManager/src/main/js/test/List.test.js
@@ -14,4 +14,6 @@
*/
require('./AudioFramework.test.js')
+require('./AudioManagerApi9.test.js')
+
diff --git a/multimedia/audio/audio_js_standard/audioRenderer/src/main/js/test/AudioRenderer.test.js b/multimedia/audio/audio_js_standard/audioRenderer/src/main/js/test/AudioRenderer.test.js
index 820da90b27ea5b77d70da14255aa8a34e7e57959..7c05ff590c1be4d31604158bc48fe7d94b9147db 100644
--- a/multimedia/audio/audio_js_standard/audioRenderer/src/main/js/test/AudioRenderer.test.js
+++ b/multimedia/audio/audio_js_standard/audioRenderer/src/main/js/test/AudioRenderer.test.js
@@ -1477,6 +1477,1187 @@ describe('audioRenderer', function () {
}
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0100
+ * @tc.name : STREAM_VOICE_CALL AUDIO_INTERRUPT STREAM_VOICE_ASSISTANT
+ * @tc.desc : STREAM_VOICE_CALL AUDIO_INTERRUPT STREAM_VOICE_ASSISTANT
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0100', 2, async function (done) {
+ let interrput_flag = false;
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ // STREAM_VOICE_ASSISTANT
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen;
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ audioRen.on('audioInterrupt',async (interruptEvent)=>{
+ console.info("AudioFrameworkRenderLog: InterruptType : " + interruptEvent.eventType);
+ console.info("AudioFrameworkRenderLog: InterruptForceType : " + interruptEvent.forceType);
+ console.info("AudioFrameworkRenderLog: InterruptHint : " + interruptEvent.hintType);
+ if (interruptEvent.hintType >= 0) {
+ console.info("AudioFrameworkRenderLog: on'audioInterrupt' SUCCESS ");
+ interrput_flag = true;
+ }
+ expect(interrput_flag).assertTrue();
+ });
+
+ let a = await audioRen.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant start :ERROR : ' + err.message);
+ });
+ await sleep(1000);
+ // STREAM_VOICE_CALL
+ let AudioRendererInfo_interrupt = {
+ content: audio.ContentType.CONTENT_TYPE_SPEECH,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions_interrupt = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo_interrupt
+ }
+
+ let audioRen_interrupt;
+ await audio.createAudioRenderer(AudioRendererOptions_interrupt).then(async function (data) {
+ audioRen_interrupt = data;
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : ERROR : ' + err.message);
+ });
+
+ let b = await audioRen_interrupt.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen_interrupt setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen_interrupt.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant2 started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
+ });
+ await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
+ }
+ catch (error) {
+ console.log("SUB_MULTIMEDIA_AUDIO_RENDERER_INTERUPT_AUDIO_0100 : error = " + error);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0200
+ * @tc.name : STREAM_RING INTERRUPT STREAM_VOICE_ASSISTANT
+ * @tc.desc : STREAM_RING INTERRUPT STREAM_VOICE_ASSISTANT
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0200', 2, async function (done) {
+ let interrput_flag = false;
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ // STREAM_VOICE_ASSISTANT
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen;
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ audioRen.on('audioInterrupt',async (interruptEvent)=>{
+ console.info("AudioFrameworkRenderLog: InterruptType : " + interruptEvent.eventType);
+ console.info("AudioFrameworkRenderLog: InterruptForceType : " + interruptEvent.forceType);
+ console.info("AudioFrameworkRenderLog: InterruptHint : " + interruptEvent.hintType);
+ if (interruptEvent.hintType >= 0) {
+ console.info("AudioFrameworkRenderLog: on'audioInterrupt' SUCCESS ");
+ interrput_flag = true;
+ }
+ expect(interrput_flag).assertTrue();
+ });
+
+ let a = await audioRen.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant start :ERROR : ' + err.message);
+ });
+ await sleep(1000);
+ // STREAM_RING
+ let AudioRendererInfo_interrupt = {
+ content: audio.ContentType.CONTENT_TYPE_RINGTONE,
+ usage: audio.StreamUsage.STREAM_USAGE_NOTIFICATION_RINGTONE,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions_interrupt = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo_interrupt
+ }
+
+ let audioRen_interrupt;
+ await audio.createAudioRenderer(AudioRendererOptions_interrupt).then(async function (data) {
+ audioRen_interrupt = data;
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : ERROR : ' + err.message);
+ });
+
+ let b = await audioRen_interrupt.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen_interrupt setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen_interrupt.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant2 started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
+ });
+ await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
+ }
+ catch (error) {
+ console.log("SUB_MULTIMEDIA_AUDIO_RENDERER_INTERUPT_AUDIO_0200 : error = " + error);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0300
+ * @tc.name : STREAM_MUSIC INTERRUPT STREAM_VOICE_ASSISTANT
+ * @tc.desc : STREAM_MUSIC INTERRUPT STREAM_VOICE_ASSISTANT
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0300', 2, async function (done) {
+ let interrput_flag = false;
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ // STREAM_VOICE_ASSISTANT
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen;
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ audioRen.on('audioInterrupt',async (interruptEvent)=>{
+ console.info("AudioFrameworkRenderLog: InterruptType : " + interruptEvent.eventType);
+ console.info("AudioFrameworkRenderLog: InterruptForceType : " + interruptEvent.forceType);
+ console.info("AudioFrameworkRenderLog: InterruptHint : " + interruptEvent.hintType);
+ if (interruptEvent.hintType >= 0) {
+ console.info("AudioFrameworkRenderLog: on'audioInterrupt' SUCCESS ");
+ interrput_flag = true;
+ }
+ expect(interrput_flag).assertTrue();
+ });
+
+ let a = await audioRen.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant start :ERROR : ' + err.message);
+ });
+ await sleep(1000);
+ // STREAM_MUSIC
+ let AudioRendererInfo_interrupt = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions_interrupt = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo_interrupt
+ }
+
+ let audioRen_interrupt;
+ await audio.createAudioRenderer(AudioRendererOptions_interrupt).then(async function (data) {
+ audioRen_interrupt = data;
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : ERROR : ' + err.message);
+ });
+
+ let b = await audioRen_interrupt.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen_interrupt setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen_interrupt.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant2 started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
+ });
+ await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
+ }
+ catch (error) {
+ console.log("SUB_MULTIMEDIA_AUDIO_RENDERER_INTERUPT_AUDIO_0300 : error = " + error);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0400
+ * @tc.name : STREAM_VOICE_ASSISTANT INTERRUPT STREAM_VOICE_ASSISTANT
+ * @tc.desc : STREAM_VOICE_ASSISTANT INTERRUPT STREAM_VOICE_ASSISTANT
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0400', 2, async function (done) {
+ let interrput_flag = false;
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ // STREAM_VOICE_ASSISTANT
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen;
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ audioRen.on('audioInterrupt',async (interruptEvent)=>{
+ console.info("AudioFrameworkRenderLog: InterruptType : " + interruptEvent.eventType);
+ console.info("AudioFrameworkRenderLog: InterruptForceType : " + interruptEvent.forceType);
+ console.info("AudioFrameworkRenderLog: InterruptHint : " + interruptEvent.hintType);
+ if (interruptEvent.hintType >= 0) {
+ console.info("AudioFrameworkRenderLog: on'audioInterrupt' SUCCESS ");
+ interrput_flag = true;
+ }
+ expect(interrput_flag).assertTrue();
+ });
+
+ let a = await audioRen.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant start :ERROR : ' + err.message);
+ });
+ await sleep(1000);
+ // STREAM_VOICE_ASSISTANT
+ let AudioRendererInfo_interrupt = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions_interrupt = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo_interrupt
+ }
+
+ let audioRen_interrupt;
+ await audio.createAudioRenderer(AudioRendererOptions_interrupt).then(async function (data) {
+ audioRen_interrupt = data;
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : ERROR : ' + err.message);
+ });
+
+ let b = await audioRen_interrupt.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen_interrupt setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen_interrupt.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant2 started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
+ });
+ await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
+ }
+ catch (error) {
+ console.log("SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0400 : error = " + error);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_RENDERER_INTERUPT_AUDIO_0500
+ * @tc.name : STREAM_VOICE_ASSISTANT INTERRUPT STREAM_VOICE_CALL
+ * @tc.desc : STREAM_VOICE_ASSISTANT INTERRUPT STREAM_VOICE_CALL
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0500', 2, async function (done) {
+ let interrput_flag = false;
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ // STREAM_VOICE_CALL
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_SPEECH,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen;
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ audioRen.on('audioInterrupt',async (interruptEvent)=>{
+ console.info("AudioFrameworkRenderLog: InterruptType : " + interruptEvent.eventType);
+ console.info("AudioFrameworkRenderLog: InterruptForceType : " + interruptEvent.forceType);
+ console.info("AudioFrameworkRenderLog: InterruptHint : " + interruptEvent.hintType);
+ if (interruptEvent.hintType >= 0) {
+ console.info("AudioFrameworkRenderLog: on'audioInterrupt' SUCCESS ");
+ interrput_flag = true;
+ }
+ expect(interrput_flag).assertTrue();
+ });
+
+ let a = await audioRen.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant start :ERROR : ' + err.message);
+ });
+ await sleep(1000);
+ // STREAM_VOICE_ASSISTANT
+ let AudioRendererInfo_interrupt = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions_interrupt = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo_interrupt
+ }
+
+ let audioRen_interrupt;
+ await audio.createAudioRenderer(AudioRendererOptions_interrupt).then(async function (data) {
+ audioRen_interrupt = data;
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : ERROR : ' + err.message);
+ });
+
+ let b = await audioRen_interrupt.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen_interrupt setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen_interrupt.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant2 started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
+ });
+ await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
+ }
+ catch (error) {
+ console.log("SUB_MULTIMEDIA_AUDIO_RENDERER_INTERUPT_AUDIO_0500 : error = " + error);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0600
+ * @tc.name : STREAM_VOICE_ASSISTANT INTERRUPT STREAM_RING
+ * @tc.desc : STREAM_VOICE_ASSISTANT INTERRUPT STREAM_RING
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0600', 2, async function (done) {
+ let interrput_flag = false;
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ // STREAM_RING
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_RINGTONE,
+ usage: audio.StreamUsage.STREAM_USAGE_NOTIFICATION_RINGTONE,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen;
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ audioRen.on('audioInterrupt',async (interruptEvent)=>{
+ console.info("AudioFrameworkRenderLog: InterruptType : " + interruptEvent.eventType);
+ console.info("AudioFrameworkRenderLog: InterruptForceType : " + interruptEvent.forceType);
+ console.info("AudioFrameworkRenderLog: InterruptHint : " + interruptEvent.hintType);
+ if (interruptEvent.hintType >= 0) {
+ console.info("AudioFrameworkRenderLog: on'audioInterrupt' SUCCESS ");
+ interrput_flag = true;
+ }
+ expect(interrput_flag).assertTrue();
+ });
+
+ let a = await audioRen.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant start :ERROR : ' + err.message);
+ });
+ await sleep(1000);
+ // STREAM_VOICE_ASSISTANT
+ let AudioRendererInfo_interrupt = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions_interrupt = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo_interrupt
+ }
+
+ let audioRen_interrupt;
+ await audio.createAudioRenderer(AudioRendererOptions_interrupt).then(async function (data) {
+ audioRen_interrupt = data;
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : ERROR : ' + err.message);
+ });
+
+ let b = await audioRen_interrupt.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen_interrupt setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen_interrupt.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant2 started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
+ });
+ await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
+ }
+ catch (error) {
+ console.log("SUB_MULTIMEDIA_AUDIO_RENDERER_INTERUPT_AUDIO_0600 : error = " + error);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0700
+ * @tc.name : STREAM_VOICE_ASSISTANT INTERRUPT STREAM_MUSIC
+ * @tc.desc : STREAM_VOICE_ASSISTANT INTERRUPT STREAM_MUSIC
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_RENDERER_AUDIO_INTERUPT_AUDIO_0700', 2, async function (done) {
+ let interrput_flag = false;
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ // STREAM_MUSIC
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen;
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ audioRen.on('audioInterrupt',async (interruptEvent)=>{
+ console.info("AudioFrameworkRenderLog: InterruptType : " + interruptEvent.eventType);
+ console.info("AudioFrameworkRenderLog: InterruptForceType : " + interruptEvent.forceType);
+ console.info("AudioFrameworkRenderLog: InterruptHint : " + interruptEvent.hintType);
+ if (interruptEvent.hintType >= 0) {
+ console.info("AudioFrameworkRenderLog: on'audioInterrupt' SUCCESS ");
+ interrput_flag = true;
+ }
+ expect(interrput_flag).assertTrue();
+ });
+
+ let a = await audioRen.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant start :ERROR : ' + err.message);
+ });
+ await sleep(1000);
+ // STREAM_VOICE_ASSISTANT
+ let AudioRendererInfo_interrupt = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions_interrupt = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo_interrupt
+ }
+
+ let audioRen_interrupt;
+ await audio.createAudioRenderer(AudioRendererOptions_interrupt).then(async function (data) {
+ audioRen_interrupt = data;
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender2 Created : ERROR : ' + err.message);
+ });
+
+ let b = await audioRen_interrupt.setInterruptMode(audio.InterruptMode.INDEPENDENT_MODE);
+ console.info("AudioFrameworkRenderLog audioRen_interrupt setInterruptMode(INDEPENDENT_MODE) success");
+
+ await audioRen_interrupt.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant2 started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
+ });
+ await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
+ }
+ catch (error) {
+ console.log("SUB_MULTIMEDIA_AUDIO_RENDERER_INTERUPT_AUDIO_0700 : error = " + error);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0100
+ * @tc.name : SetInterruptMode mode 0 callback,is public share mode
+ * @tc.desc : SetInterruptMode mode 0 callback,is public share mode
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0100", 2, async function (done) {
+ let audioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let audioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+ }
+ let audioRendererOptions = {
+ streamInfo: audioStreamInfo,
+ rendererInfo: audioRendererInfo
+ }
+ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
+ let mode = audio.InterruptMode.SHARE_MODE;
+ audioRenderer.setInterruptMode(mode, async (err, data) => {
+ if (err) {
+ console.info(`${TagFrmwkRender}: SetInterruptMode SHARE_MODE CALLBACK: error: ${err.message}`);
+ expect(false).assertTrue();
+ await audioRenderer.release();
+ done();
+ return;
+ }
+ console.info(`${TagFrmwkRender}: SetInterruptMode SHARE_MODE CALLBACK: SUCCESS`);
+ expect(true).assertTrue();
+ await audioRenderer.release();
+ done();
+ })
+ })
+
+ /*
+ * @tc.name:SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0200
+ * @tc.desc:SetInterruptMode mode 1 callback,is independent mode
+ * @tc.type: FUNC
+ * @tc.require: Issue Number
+ */
+ it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0200", 2, async function (done) {
+ let audioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let audioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+ }
+ let audioRendererOptions = {
+ streamInfo: audioStreamInfo,
+ rendererInfo: audioRendererInfo
+ }
+ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
+ let mode = audio.InterruptMode.INDEPENDENT_MODE;
+ audioRenderer.setInterruptMode(mode, async (err, data) => {
+ if (err) {
+ console.info(`${TagFrmwkRender}: SetInterruptMode INDEPENDENT_MODE CALLBACK: error: ${err.message}`);
+ expect(false).assertTrue();
+ await audioRenderer.release();
+ done();
+ return;
+ }
+ console.info(`${TagFrmwkRender}: SetInterruptMode INDEPENDENT_MODE CALLBACK: SUCCESS`);
+ expect(true).assertTrue();
+ await audioRenderer.release();
+ done();
+ })
+ })
+
+ /*
+ * @tc.name:SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0300
+ * @tc.desc:SetInterruptMode mode 0 promise,is public share mode
+ * @tc.type: FUNC
+ * @tc.require: Issue Number
+ */
+ it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0300", 2, async function (done) {
+ let audioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let audioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+ }
+ let audioRendererOptions = {
+ streamInfo: audioStreamInfo,
+ rendererInfo: audioRendererInfo
+ }
+ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
+ let mode = audio.InterruptMode.SHARE_MODE;
+ await audioRenderer.setInterruptMode(mode).then(data => {
+ console.info(`${TagFrmwkRender}: SetInterruptMode SHARE_MODE PROMISE: SUCCESS`);
+ expect(true).assertTrue();
+ }).catch(err => {
+ console.info(`${TagFrmwkRender}: SetInterruptMode SHARE_MODE PROMISE: error: ${err.message}`);
+ expect(false).assertTrue();
+ })
+ await audioRenderer.release();
+ done();
+ })
+
+ /*
+ * @tc.name:SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0400
+ * @tc.desc:SetInterruptMode mode 1 promise,is independent mode
+ * @tc.type: FUNC
+ * @tc.require: Issue Number
+ */
+ it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0400", 2, async function (done) {
+ let audioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let audioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+ }
+ let audioRendererOptions = {
+ streamInfo: audioStreamInfo,
+ rendererInfo: audioRendererInfo
+ }
+ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
+ let mode = audio.InterruptMode.INDEPENDENT_MODE;
+ await audioRenderer.setInterruptMode(mode).then(data => {
+ console.info(`${TagFrmwkRender}: SetInterruptMode INDEPENDENT_MODE PROMISE: SUCCESS`);
+ expect(true).assertTrue();
+ }).catch(err => {
+ console.info(`${TagFrmwkRender}: SetInterruptMode INDEPENDENT_MODE PROMISE: error: ${err.message}`);
+ expect(false).assertTrue();
+ })
+ await audioRenderer.release();
+ done();
+ })
+
+ /*
+ * @tc.name:SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0500
+ * @tc.desc:SetInterruptMode mode '1',will catch error with type error
+ * @tc.type: FUNC
+ * @tc.require: Issue Number
+ */
+ it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0500", 2, async function (done) {
+ let audioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let audioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+ }
+ let audioRendererOptions = {
+ streamInfo: audioStreamInfo,
+ rendererInfo: audioRendererInfo
+ }
+ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
+ let mode = '1';
+ try {
+ let data = await audioRenderer.setInterruptMode(mode);
+ console.info(`${TagFrmwkRender}: SetInterruptMode STRING PROMISE: SUCCESS`);
+ expect(false).assertTrue();
+ done();
+ } catch (err) {
+ console.info(`${TagFrmwkRender}: SetInterruptMode STRING PROMISE: error: ${err.message}`);
+ expect(true).assertTrue();
+ done();
+ }
+ })
+
+ /*
+ * @tc.name:SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0600
+ * @tc.desc:SetInterruptMode mode 2,set it to default SHARE_MODE
+ * @tc.type: FUNC
+ * @tc.require: Issue Number
+ */
+ it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0600", 2, async function (done) {
+ let audioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let audioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+ }
+ let audioRendererOptions = {
+ streamInfo: audioStreamInfo,
+ rendererInfo: audioRendererInfo
+ }
+ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
+ let mode = 2;
+ try {
+ let data = await audioRenderer.setInterruptMode(mode);
+ console.info(`${TagFrmwkRender}: SetInterruptMode OUT OF BORDER PROMISE: SUCCESS`);
+ expect(true).assertTrue();
+ done();
+ } catch (err) {
+ console.info(`${TagFrmwkRender}: SetInterruptMode OUT OF BORDER PROMISE: ERROR : code: ${err.code}, mesage: ${err.message}`);
+ expect(false).assertTrue();
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_GET_AUDIO_STREAM_ID_0100
+ * @tc.name : AudioRenderer - getAudioStreamId
+ * @tc.desc : AudioRenderer - getAudioStreamId
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_GET_AUDIO_STREAM_ID_0100', 2, async function (done) {
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen;
+
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ let audioStreamId;
+ await audioRen.getAudioStreamId().then((data) => {
+ audioStreamId = data;
+ console.info(`${TagFrmwkRender}: getAudioStreamId : Converted: ${data}`);
+ expect(true).assertTrue();
+ }).catch((err) => {
+ console.info(`${TagFrmwkRender}: getAudioStreamId : ERROR : code: ${err.code}, mesage: ${err.message}`);
+ expect(false).assertTrue();
+ });
+
+ await audioRen.start().then(async function () {
+ console.info('AudioFrameworkRenderLog: renderInstant started :SUCCESS ');
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: renderInstant start :ERROR code: ' + err.code + ', message: ' + err.message);
+ });
+ await sleep(2000);
+ }
+ catch (error) {
+ console.log("SUB_MULTIMEDIA_AUDIO_GET_AUDIO_STREAM_ID_0100 : error = " + error);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_GET_AUDIO_STREAM_ID_0200
+ * @tc.name : AudioRenderer - getAudioStreamId
+ * @tc.desc : AudioRenderer - getAudioStreamId
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_GET_AUDIO_STREAM_ID_0200', 2, async function (done) {
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen = await audio.createAudioRenderer(AudioRendererOptions);
+ await audioRen.getAudioStreamId((err, data) => {
+ if (err) {
+ console.info(`${TagFrmwkRender}: getAudioStreamId : ERROR : code: ${err.code}, mesage: ${err.message}`);
+ expect(false).assertTrue();
+ } else {
+ expect(true).assertTrue();
+ console.info(`${TagFrmwkRender}: getAudioStreamId : Converted: ${data}`);
+ }
+ });
+ await audioRen.release();
+ } catch (err) {
+ console.log(`${Tag} err: ${JSON.stringify(err)}`);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_SET_VOLUME_0100
+ * @tc.name : AudioRenderer - setVolume 0
+ * @tc.desc : AudioRenderer - setVolume 0
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_SET_VOLUME_0100', 2, async function (done) {
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen;
+
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ let inputVolume = 0;
+
+ await audioRen.setVolume(inputVolume).then(() => {
+ expect(true).assertTrue();
+ console.info(`${TagFrmwkRender}: setVolume to 0 : Success`);
+ }).catch((err) => {
+ console.info(`${TagFrmwkRender}: setVolume : ERROR : code: ${err.code}, mesage: ${err.message}`);
+ expect(false).assertTrue();
+ });
+
+ await sleep(2000);
+ }
+ catch (error) {
+ console.log("SUB_MULTIMEDIA_AUDIO_SET_VOLUME_0100 : error = " + error);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_SET_VOLUME_0200
+ * @tc.name : AudioRenderer - setVolume 15
+ * @tc.desc : AudioRenderer - setVolume 15
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_SET_VOLUME_0200', 2, async function (done) {
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen;
+
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ let inputVolume = 15;
+
+ await audioRen.setVolume(inputVolume).then(() => {
+ expect(true).assertTrue();
+ console.info(`${TagFrmwkRender}: setVolume to 15 : Success`);
+ }).catch((err) => {
+ console.info(`${TagFrmwkRender}: setVolume : ERROR : code: ${err.code}, mesage: ${err.message}`);
+ expect(false).assertTrue();
+ });
+
+ await sleep(1000);
+ }
+ catch (error) {
+ console.log("SUB_MULTIMEDIA_AUDIO_SET_VOLUME_0200 : error = " + error);
+ expect(false).assertTrue();
+ }
+ done();
+ })
+
+ /**
+ * @tc.number : SUB_MULTIMEDIA_AUDIO_SET_VOLUME_0300
+ * @tc.name : AudioRenderer - setVolume "string"
+ * @tc.desc : AudioRenderer - setVolume 'string, will return error'
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 2
+ */
+ it('SUB_MULTIMEDIA_AUDIO_SET_VOLUME_0300', 2, async function (done) {
+ let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let AudioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+ }
+
+ let AudioRendererOptions = {
+ streamInfo: AudioStreamInfo,
+ rendererInfo: AudioRendererInfo
+ }
+
+ try {
+ let audioRen;
+
+ await audio.createAudioRenderer(AudioRendererOptions).then(async function (data) {
+ audioRen = data;
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data state: ' + Object.keys(data));
+ console.info('AudioFrameworkRenderLog: AudioRender Created : Success : Stream Type: SUCCESS data value: ' + JSON.stringify(data));
+ }).catch((err) => {
+ console.info('AudioFrameworkRenderLog: AudioRender Created : ERROR : ' + err.message);
+ });
+
+ let inputVolume = "string";
+
+ await audioRen.setVolume(inputVolume).then(() => {
+ expect(false).assertTrue();
+ console.info(`${TagFrmwkRender}: setVolume to string : Success`);
+ }).catch((err) => {
+ console.info(`${TagFrmwkRender}: setVolume : ERROR : code: ${err.code}, mesage: ${err.message}`);
+ expect(true).assertTrue();
+ });
+
+ await sleep(1000);
+ }
+ catch (error) {
+ console.log("SUB_MULTIMEDIA_AUDIO_SET_VOLUME_0300 : error = " + error);
+ expect(false).assertTrue();
+ }
+ done();
+ })
/**
* @tc.number : SUB_MULTIMEDIA_AUDIO_RENDERER_PLAY_AUDIO_0100
* @tc.name : AudioRenderer-Set1-Media
@@ -3333,7 +4514,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
done();
})
@@ -3505,7 +4686,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -3594,7 +4775,7 @@ describe('audioRenderer', function () {
});
expect(resultFlag).assertTrue();
-
+ await audioRen.release();
done();
})
@@ -3681,7 +4862,7 @@ describe('audioRenderer', function () {
});
expect(resultFlag).assertTrue();
-
+ await audioRen.release();
done();
})
@@ -3768,7 +4949,7 @@ describe('audioRenderer', function () {
});
expect(resultFlag).assertTrue();
-
+ await audioRen.release();
done();
})
@@ -3855,7 +5036,7 @@ describe('audioRenderer', function () {
});
expect(resultFlag).assertTrue();
-
+ await audioRen.release();
done();
})
@@ -3940,7 +5121,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4027,7 +5208,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4114,7 +5295,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4201,7 +5382,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4288,7 +5469,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4375,7 +5556,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4462,7 +5643,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4549,7 +5730,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4636,7 +5817,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4723,7 +5904,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4810,7 +5991,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4897,7 +6078,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -4984,7 +6165,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -5071,7 +6252,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -5158,7 +6339,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -5245,7 +6426,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -5332,7 +6513,7 @@ describe('audioRenderer', function () {
console.log(`${TagFrmwkRender}: RendererInfo :ERROR: ${err.message}`);
resultFlag = false;
});
-
+ await audioRen.release();
expect(resultFlag).assertTrue();
done();
@@ -7335,6 +8516,8 @@ describe('audioRenderer', function () {
console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
});
await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
expect(interrput_flag).assertTrue();
}
catch (error) {
@@ -7431,6 +8614,8 @@ describe('audioRenderer', function () {
console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
});
await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
expect(interrput_flag).assertTrue();
}
catch (error) {
@@ -7527,6 +8712,8 @@ describe('audioRenderer', function () {
console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
});
await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
expect(interrput_flag).assertTrue();
}
catch (error) {
@@ -7623,6 +8810,8 @@ describe('audioRenderer', function () {
console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
});
await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
expect(interrput_flag).assertTrue();
}
catch (error) {
@@ -7719,6 +8908,8 @@ describe('audioRenderer', function () {
console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
});
await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
expect(interrput_flag).assertFalse();
}
catch (error) {
@@ -7815,6 +9006,8 @@ describe('audioRenderer', function () {
console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
});
await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
expect(interrput_flag).assertFalse();
}
catch (error) {
@@ -7911,6 +9104,8 @@ describe('audioRenderer', function () {
console.info('AudioFrameworkRenderLog: renderInstant2 start :ERROR : ' + err.message);
});
await sleep(2000);
+ await audioRen.release();
+ await audioRen_interrupt.release();
expect(interrput_flag).assertTrue();
}
catch (error) {
@@ -7920,221 +9115,4 @@ describe('audioRenderer', function () {
done();
})
- /**
- * @tc.number : SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0100
- * @tc.name : SetInterruptMode mode 0 callback,is public share mode
- * @tc.desc : SetInterruptMode mode 0 callback,is public share mode
- * @tc.size : MEDIUM
- * @tc.type : Function
- * @tc.level : Level 2
- */
- it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0100", 2, async function (done) {
- let audioStreamInfo = {
- samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
- channels: audio.AudioChannel.CHANNEL_1,
- sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
- encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
- }
- let audioRendererInfo = {
- content: audio.ContentType.CONTENT_TYPE_MUSIC,
- usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
- rendererFlags: 0
- }
- let audioRendererOptions = {
- streamInfo: audioStreamInfo,
- rendererInfo: audioRendererInfo
- }
- let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
- let mode = audio.InterruptMode.SHARE_MODE;
- audioRenderer.setInterruptMode(mode, (err, data) => {
- if (err) {
- console.info(`${TagFrmwkRender}: SetInterruptMode SHARE_MODE CALLBACK: error: ${err.message}`);
- expect(false).assertTrue();
- done();
- return;
- }
- console.info(`${TagFrmwkRender}: SetInterruptMode SHARE_MODE CALLBACK: SUCCESS`);
- expect(true).assertTrue();
- done();
- })
- })
-
- /*
- * @tc.name:SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0200
- * @tc.desc:SetInterruptMode mode 1 callback,is independent mode
- * @tc.type: FUNC
- * @tc.require: Issue Number
- */
- it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0200", 2, async function (done) {
- let audioStreamInfo = {
- samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
- channels: audio.AudioChannel.CHANNEL_1,
- sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
- encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
- }
- let audioRendererInfo = {
- content: audio.ContentType.CONTENT_TYPE_MUSIC,
- usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
- rendererFlags: 0
- }
- let audioRendererOptions = {
- streamInfo: audioStreamInfo,
- rendererInfo: audioRendererInfo
- }
- let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
- let mode = audio.InterruptMode.INDEPENDENT_MODE;
- audioRenderer.setInterruptMode(mode, (err, data) => {
- if (err) {
- console.info(`${TagFrmwkRender}: SetInterruptMode INDEPENDENT_MODE CALLBACK: error: ${err.message}`);
- expect(false).assertTrue();
- done();
- return;
- }
- console.info(`${TagFrmwkRender}: SetInterruptMode INDEPENDENT_MODE CALLBACK: SUCCESS`);
- expect(true).assertTrue();
- done();
- })
- })
-
- /*
- * @tc.name:SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0300
- * @tc.desc:SetInterruptMode mode 0 promise,is public share mode
- * @tc.type: FUNC
- * @tc.require: Issue Number
- */
- it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0300", 2, async function (done) {
- let audioStreamInfo = {
- samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
- channels: audio.AudioChannel.CHANNEL_1,
- sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
- encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
- }
- let audioRendererInfo = {
- content: audio.ContentType.CONTENT_TYPE_MUSIC,
- usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
- rendererFlags: 0
- }
- let audioRendererOptions = {
- streamInfo: audioStreamInfo,
- rendererInfo: audioRendererInfo
- }
- let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
- let mode = audio.InterruptMode.SHARE_MODE;
- audioRenderer.setInterruptMode(mode).then(data => {
- console.info(`${TagFrmwkRender}: SetInterruptMode SHARE_MODE PROMISE: SUCCESS`);
- expect(true).assertTrue();
- done();
- }).catch(err => {
- console.info(`${TagFrmwkRender}: SetInterruptMode SHARE_MODE PROMISE: error: ${err.message}`);
- expect(false).assertTrue();
- done();
- })
- })
-
- /*
- * @tc.name:SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0400
- * @tc.desc:SetInterruptMode mode 1 promise,is independent mode
- * @tc.type: FUNC
- * @tc.require: Issue Number
- */
- it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0400", 2, async function (done) {
- let audioStreamInfo = {
- samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
- channels: audio.AudioChannel.CHANNEL_1,
- sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
- encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
- }
- let audioRendererInfo = {
- content: audio.ContentType.CONTENT_TYPE_MUSIC,
- usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
- rendererFlags: 0
- }
- let audioRendererOptions = {
- streamInfo: audioStreamInfo,
- rendererInfo: audioRendererInfo
- }
- let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
- let mode = audio.InterruptMode.INDEPENDENT_MODE;
- audioRenderer.setInterruptMode(mode).then(data => {
- console.info(`${TagFrmwkRender}: SetInterruptMode INDEPENDENT_MODE PROMISE: SUCCESS`);
- expect(true).assertTrue();
- done();
- }).catch(err => {
- console.info(`${TagFrmwkRender}: SetInterruptMode INDEPENDENT_MODE PROMISE: error: ${err.message}`);
- expect(false).assertTrue();
- done();
- })
- })
-
- /*
- * @tc.name:SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0500
- * @tc.desc:SetInterruptMode mode '1',will catch error with type error
- * @tc.type: FUNC
- * @tc.require: Issue Number
- */
- it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0500", 2, async function (done) {
- let audioStreamInfo = {
- samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
- channels: audio.AudioChannel.CHANNEL_1,
- sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
- encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
- }
- let audioRendererInfo = {
- content: audio.ContentType.CONTENT_TYPE_MUSIC,
- usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
- rendererFlags: 0
- }
- let audioRendererOptions = {
- streamInfo: audioStreamInfo,
- rendererInfo: audioRendererInfo
- }
- let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
- let mode = '1';
- try {
- let data = await audioRenderer.setInterruptMode(mode);
- console.info(`${TagFrmwkRender}: SetInterruptMode STRING PROMISE: SUCCESS`);
- expect(false).assertTrue();
- done();
- } catch (err) {
- console.info(`${TagFrmwkRender}: SetInterruptMode STRING PROMISE: error: ${err.message}`);
- expect(true).assertTrue();
- done();
- }
- })
-
- /*
- * @tc.name:SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0600
- * @tc.desc:SetInterruptMode mode 2,set it to default SHARE_MODE
- * @tc.type: FUNC
- * @tc.require: Issue Number
- */
- it("SUB_MULTIMEDIA_AUDIO_SETINTERRUPTMODE_0600", 2, async function (done) {
- let audioStreamInfo = {
- samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
- channels: audio.AudioChannel.CHANNEL_1,
- sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
- encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
- }
- let audioRendererInfo = {
- content: audio.ContentType.CONTENT_TYPE_MUSIC,
- usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
- rendererFlags: 0
- }
- let audioRendererOptions = {
- streamInfo: audioStreamInfo,
- rendererInfo: audioRendererInfo
- }
- let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
- let mode = 2;
- try {
- let data = await audioRenderer.setInterruptMode(mode);
- console.info(`${TagFrmwkRender}: SetInterruptMode OUT OF BORDER PROMISE: SUCCESS`);
- expect(true).assertTrue();
- done();
- } catch (err) {
- console.info(`${TagFrmwkRender}: SetInterruptMode OUT OF BORDER PROMISE: ERROR: ${err.message}`);
- expect(false).assertTrue();
- done();
- }
- })
})
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js
index 0105d91da5e2340f736c775262dcc0e22ad4ac64..aa815af90a2a8ef9d4e7fc14f48d00e38c66200e 100644
--- a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js
+++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js
@@ -35,8 +35,7 @@ describe('audioVoip', function () {
beforeAll(async function () {
console.info(`AudioFrameworkTest: beforeAll: Prerequisites at the test suite level`);
let permissionName1 = 'ohos.permission.MICROPHONE';
- let permissionName2 = 'ohos.permission.MANAGE_AUDIO_CONFIG';
- let permissionNameList = [permissionName1,permissionName2];
+ let permissionNameList = [permissionName1];
let appName = 'ohos.acts.multimedia.audio.audiovoip';
await audioTestBase.applyPermission(appName, permissionNameList);
await sleep(100);