diff --git a/multimedia/BUILD.gn b/multimedia/BUILD.gn
index a9292308f9553cbe1144c5ef2484e30b8d215518..348402f1af202a70827859ffe203fdb19d1e8a29 100755
--- a/multimedia/BUILD.gn
+++ b/multimedia/BUILD.gn
@@ -16,7 +16,7 @@ import("//test/xts/tools/build/suite.gni")
group("multimedia") {
testonly = true
if (is_standard_system) {
- deps = [ "audio/audio_js_standard:audio_manager_js_test" ]
+ deps = [ "audio/audioPlayer:audio_player_js_hap" ]
} else {
deps = [
#"audio/audio_hap_test:MediaAudio_test_hap",
diff --git a/multimedia/audio/audioPlayer/BUILD.gn b/multimedia/audio/audioPlayer/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..d11bfe3d12c47c5628d0eeaf46299be1d049bfbc
--- /dev/null
+++ b/multimedia/audio/audioPlayer/BUILD.gn
@@ -0,0 +1,18 @@
+# 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_player_js_hap") {
+ test_hap_name = "AudioPlayerJsTest"
+ hap_source_path = "hap/entry-debug-rich-signed.hap"
+}
diff --git a/multimedia/audio/audioPlayer/Test.json b/multimedia/audio/audioPlayer/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..02125190aaa5b78332fb4478101e9c6246937920
--- /dev/null
+++ b/multimedia/audio/audioPlayer/Test.json
@@ -0,0 +1,18 @@
+{
+ "description": "Configuration for audio manager Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "21600000",
+ "package": "ohos.acts.multimedia.audio.function",
+ "shell-timeout": "21600000"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "AudioPlayerJsTest.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ }
+ ]
+}
\ No newline at end of file
diff --git a/multimedia/audio/audioPlayer/hap/entry-debug-rich-signed.hap b/multimedia/audio/audioPlayer/hap/entry-debug-rich-signed.hap
new file mode 100644
index 0000000000000000000000000000000000000000..9f875f974f29fc7ad6da92d74e451a1dd7c33eb3
Binary files /dev/null and b/multimedia/audio/audioPlayer/hap/entry-debug-rich-signed.hap differ
diff --git a/multimedia/audio/audioPlayer/project/entry/src/main/config.json b/multimedia/audio/audioPlayer/project/entry/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..a8e2d584e4ea8e23f13d19881a48d7b5b7b0dca8
--- /dev/null
+++ b/multimedia/audio/audioPlayer/project/entry/src/main/config.json
@@ -0,0 +1,59 @@
+{
+ "app": {
+ "bundleName": "ohos.acts.multimedia.audio.function",
+ "vendor": "acts",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 4
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "ohos.acts.multimedia.audio.function",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "ohos.acts.multimedia.audio.function.MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
diff --git a/multimedia/audio/audioPlayer/project/entry/src/main/js/default/app.js b/multimedia/audio/audioPlayer/project/entry/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..e0b2e05a461ecda7b070d1bb20829b7bde8d5a8a
--- /dev/null
+++ b/multimedia/audio/audioPlayer/project/entry/src/main/js/default/app.js
@@ -0,0 +1,25 @@
+/*
+ * 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 device from '@system.device';
+
+export default {
+ onCreate() {
+ console.info('AceApplication onCreate');
+ },
+ onDestroy() {
+ console.info('AceApplication onDestroy');
+ }
+};
diff --git a/multimedia/audio/audioPlayer/project/entry/src/main/js/default/i18n/en-US.json b/multimedia/audio/audioPlayer/project/entry/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/multimedia/audio/audioPlayer/project/entry/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/audioPlayer/project/entry/src/main/js/default/i18n/zh-CN.json b/multimedia/audio/audioPlayer/project/entry/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/multimedia/audio/audioPlayer/project/entry/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/audioPlayer/project/entry/src/main/js/default/pages/index/index.css b/multimedia/audio/audioPlayer/project/entry/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/multimedia/audio/audioPlayer/project/entry/src/main/js/default/pages/index/index.css
@@ -0,0 +1,9 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
diff --git a/multimedia/audio/audioPlayer/project/entry/src/main/js/default/pages/index/index.hml b/multimedia/audio/audioPlayer/project/entry/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/multimedia/audio/audioPlayer/project/entry/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/multimedia/audio/audioPlayer/project/entry/src/main/js/default/pages/index/index.js b/multimedia/audio/audioPlayer/project/entry/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..0ee24b27cd17b79470c04ca0609a842056b1a236
--- /dev/null
+++ b/multimedia/audio/audioPlayer/project/entry/src/main/js/default/pages/index/index.js
@@ -0,0 +1,45 @@
+/*
+ * 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 file from '@system.file'
+import app from '@system.app'
+import {Core, ExpectExtend, ReportExtend} 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'
+ })
+ const reportExtend = new ReportExtend(file)
+ core.addService('expect', expectExtend)
+ core.addService('report', reportExtend)
+ core.init()
+ const configService = core.getDefaultService('config')
+ configService.setConfig(this)
+
+ require('../../../test/List.test')
+ core.execute()
+ },
+ onReady() {
+ },
+}
\ No newline at end of file
diff --git a/multimedia/audio/audioPlayer/project/entry/src/main/js/test/List.test.js b/multimedia/audio/audioPlayer/project/entry/src/main/js/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..36ac6f11b080874a8fa02f2cc4250dd8ef3b68ad
--- /dev/null
+++ b/multimedia/audio/audioPlayer/project/entry/src/main/js/test/List.test.js
@@ -0,0 +1,16 @@
+/*
+ * 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('./PlayerLocalTestAudioFUNC.test.js')
\ No newline at end of file
diff --git a/multimedia/audio/audioPlayer/project/entry/src/main/js/test/PlayerLocalTestAudioFUNC.test.js b/multimedia/audio/audioPlayer/project/entry/src/main/js/test/PlayerLocalTestAudioFUNC.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..e9249f0fc26b11bf7bc3827db877898bbcfd02cc
--- /dev/null
+++ b/multimedia/audio/audioPlayer/project/entry/src/main/js/test/PlayerLocalTestAudioFUNC.test.js
@@ -0,0 +1,887 @@
+/*
+ * 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 media from '@ohos.multimedia.media'
+import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
+
+describe('PlayerLocalTestAudioFUNC', function () {
+ var audioPlayer = media.createAudioPlayer();
+ var audioSource = "data/media/audio/Homey.mp3";
+ var PLAY_TIME = 3000;
+ var DURATION_TIME = 89239;
+ var SEEK_TIME = 5000;
+ var DELTA_TIME = 1000;
+ var ENDSTATE = 0;
+ var SRCSTATE = 1;
+ var PLAYSTATE = 2;
+ var PAUSESTATE = 3;
+ var STOPSTATE = 4;
+ var RESETSTATE = 5;
+ var SEEKSTATE = 6;
+ var VOLUMESTATE = 7;
+ var RELEASESTATE = 8;
+ var ERRORSTATE = 9;
+ var FINISHSTATE = 10;
+ var LOOPSTATE = 11;
+ var NOERROR = 0;
+ var STEPERRCODE = 38;
+ var SEEKERROR = 'seekError';
+ var PAUSEERROR = 'pauseError';
+ var errCode = NOERROR;
+ beforeAll(function () {
+ console.log("beforeAll case");
+ })
+
+ beforeEach(function () {
+ console.log("beforeEach case");
+ })
+
+ afterEach(function () {
+ console.log("afterEach case");
+ })
+
+ afterAll(function () {
+ console.log("afterAll case");
+ })
+
+ var sleep = function(time) {
+ for(var t = Date.now(); Date.now() - t <= time;);
+ };
+
+ var initAudioPlayer = function() {
+ audioPlayer = media.createAudioPlayer();
+ }
+
+ var nextStep = function(mySteps, done) {
+ if (mySteps[0] == ENDSTATE) {
+ done();
+ return;
+ }
+ switch (mySteps[0]) {
+ case SRCSTATE:
+ console.log(`case to prepare`);
+ audioPlayer.src = audioSource;
+ break;
+ case PLAYSTATE:
+ console.log(`case to play`);
+ audioPlayer.play();
+ break;
+ case PAUSESTATE:
+ console.log(`case to pause`);
+ audioPlayer.pause();
+ break;
+ case STOPSTATE:
+ console.log(`case to stop`);
+ audioPlayer.stop();
+ break;
+ case RESETSTATE:
+ console.log(`case to reset`);
+ audioPlayer.reset();
+ break;
+ case SEEKSTATE:
+ console.log(`case seek to time is ${mySteps[1]}`);
+ audioPlayer.seek(mySteps[1]);
+ break;
+ case VOLUMESTATE:
+ console.log(`case to setVolume`);
+ audioPlayer.setVolume(mySteps[1]);
+ break;
+ case RELEASESTATE:
+ console.log(`case to release`);
+ mySteps.shift();
+ audioPlayer.release();
+ break;
+ case LOOPSTATE:
+ audioPlayer.loop = mySteps[1];
+ mySteps.shift();
+ mySteps.shift();
+ nextStep(mySteps, done);
+ break;
+ default:
+ break;
+ }
+ }
+ var setCallback = function(mySteps, done) {
+ console.log(`case setCallback`);
+ audioPlayer.on('dataLoad', () => {
+ mySteps.shift();
+ console.log(`case dataLoad called`);
+ expect(audioPlayer.currentTime).assertEqual(0);
+ expect(audioPlayer.duration).assertEqual(DURATION_TIME);
+ expect(audioPlayer.state).assertEqual('paused');
+ nextStep(mySteps, done);
+ });
+
+ audioPlayer.on('play', () => {
+ mySteps.shift();
+ console.log(`case play called`);
+ console.log(`case play currentTime is ${audioPlayer.currentTime}`);
+ expect(audioPlayer.duration).assertEqual(DURATION_TIME);
+ if (mySteps[0] == FINISHSTATE) {
+ console.log(`case wait for finish`);
+ return;
+ }
+ expect(audioPlayer.state).assertEqual('playing');
+ sleep(PLAY_TIME);
+ nextStep(mySteps, done);
+ });
+
+ audioPlayer.on('pause', () => {
+ mySteps.shift();
+ console.log(`case pause called`);
+ console.log(`case pause currentTime is ${audioPlayer.currentTime}`);
+ expect(audioPlayer.duration).assertEqual(DURATION_TIME);
+ expect(audioPlayer.state).assertEqual('paused');
+ nextStep(mySteps, done);
+ });
+
+ audioPlayer.on('reset', () => {
+ mySteps.shift();
+ console.log(`case reset called`);
+ expect(audioPlayer.state).assertEqual('idle');
+ nextStep(mySteps, done);
+ });
+
+ audioPlayer.on('stop', () => {
+ mySteps.shift();
+ console.log(`case stop called`);
+ expect(audioPlayer.currentTime).assertEqual(0);
+ expect(audioPlayer.duration).assertEqual(DURATION_TIME);
+ expect(audioPlayer.state).assertEqual('stopped');
+ nextStep(mySteps, done);
+ });
+
+ audioPlayer.on('timeUpdate', (seekDoneTime) => {
+ if (typeof (seekDoneTime) == "undefined") {
+ console.log(`case seek filed,errcode is ${seekDoneTime}`);
+ return;
+ }
+ mySteps.shift();
+ mySteps.shift();
+ console.log(`case seekDoneTime is ${seekDoneTime}`);
+ console.log(`case seek called`);
+ expect(audioPlayer.currentTime + DELTA_TIME).assertClose(seekDoneTime + DELTA_TIME, DELTA_TIME);
+ console.log(`case loop is ${audioPlayer.loop}`);
+ if ((audioPlayer.loop == true) && (seekDoneTime == DURATION_TIME)) {
+ console.log('case loop is true');
+ sleep(PLAYSTATE);
+ }
+ if (seekDoneTime < audioPlayer.duration || audioPlayer.state == "paused") {
+ nextStep(mySteps, done);
+ }
+ });
+
+ audioPlayer.on('volumeChange', () => {
+ console.log(`case setvolume called`);
+ mySteps.shift();
+ mySteps.shift();
+ if (audioPlayer.state == "playing") {
+ sleep(PLAY_TIME);
+ }
+ nextStep(mySteps, done);
+ });
+
+ audioPlayer.on('finish', () => {
+ mySteps.shift();
+ expect(audioPlayer.state).assertEqual('stopped');
+ expect(audioPlayer.currentTime).assertClose(audioPlayer.duration, DELTA_TIME);
+ console.log(`case finish called`);
+ nextStep(mySteps, done);
+ });
+
+ audioPlayer.on('error', (err) => {
+ console.log(`case error called,errName is ${err.name}`);
+ console.log(`case error called,errCode is ${err.code}`);
+ console.log(`case error called,errMessage is ${err.message}`);
+ expect(err.code).assertEqual(errCode);
+ if ((mySteps[0] == SEEKSTATE) || (mySteps[0] == VOLUMESTATE)) {
+ expect(mySteps[2]).assertEqual(ERRORSTATE);
+ expect(err.message).assertEqual(mySteps[3]);
+ mySteps.shift();
+ mySteps.shift();
+ mySteps.shift();
+ mySteps.shift();
+ } else {
+ expect(mySteps[1]).assertEqual(ERRORSTATE);
+ expect(err.message).assertEqual(mySteps[2]);
+ mySteps.shift();
+ mySteps.shift();
+ mySteps.shift();
+ }
+ nextStep(mySteps, done);
+ });
+ };
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0100
+ * @tc.name : 001.本地音频初始状态:进行播放
+ * @tc.desc : 1.播放成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0100', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0200
+ * @tc.name : 002.本地音频播放状态:进行暂停
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0200', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0300
+ * @tc.name : 003.本地音频暂停状态:进行恢复播放
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.Play成功
+ 4.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0300', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0500
+ * @tc.name : 005.本地音频播放状态:进行结束播放
+ * @tc.desc : 1.播放成功
+ 2.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0500', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0600
+ * @tc.name : 006.本地音频播放状态:暂停后恢复播放,再次暂停
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.Play成功
+ 4.Pause成功
+ 5.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0600', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, PAUSESTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0700
+ * @tc.name : 007.本地音频暂停状态:暂停后结束播放
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.Stop成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0700', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, STOPSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0800
+ * @tc.name : 008.本地音频播放状态:暂停后恢复播放,再结束播放
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.播放成功
+ 4.Stop成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0800', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, STOPSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0900
+ * @tc.name : 009.本地音频播放状态:停止播放后重新开始播放,暂停后恢复播放,再结束播放
+ * @tc.desc : 1.播放成功
+ 2.Stop成功
+ 3.播放成功
+ 4.Pause成功
+ 5.Play成功
+ 6.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 2
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0900', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, RESETSTATE, SRCSTATE, PLAYSTATE,
+ PAUSESTATE, PLAYSTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1000
+ * @tc.name : 010.本地音频暂停状态:停止播放后重新开始播放,暂停后结束播放
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.Stop成功
+ 4.播放成功
+ 5.Pause成功
+ 6.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 2
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1000', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, STOPSTATE, RESETSTATE, SRCSTATE, PLAYSTATE,
+ PAUSESTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1100
+ * @tc.name : 011.本地音频播放状态:停止播放后重新开始播放,再次结束播放
+ * @tc.desc : 1.播放成功
+ 2.Stop成功
+ 3.播放成功
+ 4.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 2
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1100', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, RESETSTATE, SRCSTATE, PLAYSTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1200
+ * @tc.name : 012.本地音频暂停状态:暂停后再次play
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.播放成功
+ 4.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 2
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1200', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1300
+ * @tc.name : 013.本地音频停止状态:停止播放后暂停
+ * @tc.desc : 1.播放成功
+ 2.Stop成功
+ 3.Pause失败
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1300', 0, async function (done) {
+ errCode = STEPERRCODE;
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1400
+ * @tc.name : 014.本地音频初始状态:开始播放,进行Seek,再暂停
+ * @tc.desc : 1.播放成功
+ 2.Seek成功
+ 3.Pause成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1400', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, 0, PAUSESTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1500
+ * @tc.name : 015.本地音频初始状态:开始播放,暂停后进行Seek,再恢复播放
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.Seek成功
+ 4.Play成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1500', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, 0, SEEKSTATE, DURATION_TIME / 2,
+ SEEKSTATE, audioPlayer.duration, PLAYSTATE, FINISHSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1600
+ * @tc.name : 016.本地音频初始状态:开始播放,暂停后恢复播放,进行Seek,再暂停
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.Play成功
+ 4.Seek成功
+ 5.pause成功
+ 6.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1600', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, SEEKSTATE, 0, PAUSESTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1700
+ * @tc.name : 017.本地音频初始状态:开始播放,进行Seek
+ * @tc.desc : 1.播放成功
+ 2.Seek成功
+ 3.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1700', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME / 2, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1800
+ * @tc.name : 018.本地音频初始状态:开始播放,进行Seek,停止播放
+ * @tc.desc : 1.播放成功
+ 2.Seek成功
+ 3.Stop成功
+ 4.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1800', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME / 2,
+ STOPSTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1900
+ * @tc.name : 019.本地音频初始状态:开始播放,停止播放,进行Seek
+ * @tc.desc : 1.播放成功
+ 2.Stop成功
+ 3.Seek失败
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1900', 0, async function (done) {
+ errCode = STEPERRCODE;
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, 0, ERRORSTATE, SEEKERROR, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2000
+ * @tc.name : 020.本地音频初始状态:开始播放,暂停后进行Seek
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.Seek成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2000', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, 0, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2100
+ * @tc.name : 021.本地音频初始状态:开始播放,暂停后进行Seek,停止播放
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.Seek成功
+ 4.Stop成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2100', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, DURATION_TIME / 2,
+ STOPSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2200
+ * @tc.name : 022.本地音频初始状态:开始播放,暂停后恢复播放,进行Seek
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.Play成功
+ 4.Seek成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2200', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, SEEKSTATE, 0, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2300
+ * @tc.name : 023.本地音频初始状态:开始播放,暂停后恢复播放,进行Seek,停止播放
+ * @tc.desc : 1.播放成功
+ 2.Pause成功
+ 3.Play成功
+ 4.Stop成功
+ 5.Seek成功
+ 6.Stop成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2300', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, SEEKSTATE, 0, STOPSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2400
+ * @tc.name : 024.本地音频初始状态:开始播放,停止播放,进行Seek,重新播放
+ * @tc.desc : 1.播放成功
+ 2.Stop成功
+ 3.Seek失败
+ 4.重新播放成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2400', 0, async function (done) {
+ errCode = STEPERRCODE;
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, 0, ERRORSTATE, SEEKERROR,
+ RESETSTATE, SRCSTATE, PLAYSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2500
+ * @tc.name : 025.本地音频播放状态:进行Seek,Seek到文件开始的位置
+ * @tc.desc : 1.播放成功
+ 2.Seek成功
+ 3.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2500', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, 0, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2600
+ * @tc.name : 026.本地音频初始状态:开始播放,停止播放,进行Seek,再暂停
+ * @tc.desc : 1.播放成功
+ 2.Stop成功
+ 3.Seek失败
+ 4.Pause失败
+ 5.Reset成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 3
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2600', 0, async function (done) {
+ errCode = STEPERRCODE;
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, SEEK_TIME, ERRORSTATE,
+ SEEKERROR, PAUSESTATE, ERRORSTATE, PAUSEERROR, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2700
+ * @tc.name : 027.本地音频初始状态:开始播放,停止播放,进行Seek,再进行恢复播放操作
+ * @tc.desc : 1.播放成功;
+ 2.Stop成功;
+ 3.Seek失败
+ 4.恢复播放成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 3
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2700', 0, async function (done) {
+ errCode = STEPERRCODE;
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, SEEK_TIME, ERRORSTATE,
+ SEEKERROR, RESETSTATE, SRCSTATE, PLAYSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2800
+ * @tc.name : 028.本地音频播放状态:进行Seek,Seek到文件结尾的位置
+ * @tc.desc : 1.播放成功
+ 2.Seek成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2800', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME, FINISHSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2900
+ * @tc.name : 029.本地音频播放状态:进行Seek,Seek到超过文件结尾的位置
+ * @tc.desc : 1.播放成功
+ 2.Seek到结尾
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 3
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2900', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME + DELTA_TIME,
+ FINISHSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3000
+ * @tc.name : 030.本地音频播放状态:进行Seek,Seek到文件随机的位置
+ * @tc.desc : 1.Seek成功,查看currenTime与seek到的位置一致
+ 2.当前位置为seek设置的随机位置
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3000', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME / 5, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3200
+ * @tc.name : 032.本地音频播放状态:暂停时Seek到文件开始,恢复播放
+ * @tc.desc : 1.播放成功
+ 2.暂停成功
+ 3.Seek成功
+ 4.Play成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3200', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, 0, PLAYSTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3300
+ * @tc.name : 033.本地音频播放状态:暂停时Seek到文件结尾,恢复播放
+ * @tc.desc : 1.播放成功
+ 2.暂停成功
+ 3.Seek成功
+ 4.Play成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3300', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, DURATION_TIME, PLAYSTATE,
+ FINISHSTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3400
+ * @tc.name : 034.本地音频播放状态:暂停时Seek到超过文件结尾的位置,恢复播放
+ * @tc.desc : 1.播放成功
+ 2.暂停成功
+ 3.Seek成功
+ 4.Play成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 3
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3400', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, DURATION_TIME + DELTA_TIME, PLAYSTATE,
+ FINISHSTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3500
+ * @tc.name : 035.本地音频播放状态:播放时Seek到超过文件结尾的位置,再重新开始播放
+ * @tc.desc : 1.播放成功
+ 2.Seek成功
+ 3.finish回调函数触发,并重新开始播放
+ 3.Play成功
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 3
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3500', 0, async function (done) {
+ var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME + DELTA_TIME,
+ FINISHSTATE, PLAYSTATE, RESETSTATE, ENDSTATE);
+ initAudioPlayer();
+ setCallback(mySteps, done);
+ audioPlayer.src = audioSource;
+ })
+
+ /* *
+ * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3600
+ * @tc.name : 036.支持设置循环播放
+ * @tc.desc :
+ * @tc.size : MEDIUM
+ * @tc.type : Function test
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3600', 0, async function (done) {
+ var playCount = 0;
+ var seekCount = 0;
+ var testAudioPlayer = media.createAudioPlayer();
+ testAudioPlayer.on('dataLoad', () => {
+ console.log(`case dataLoad called`);
+ expect(testAudioPlayer.currentTime).assertEqual(0);
+ expect(testAudioPlayer.duration).assertEqual(DURATION_TIME);
+ expect(testAudioPlayer.state).assertEqual('paused');
+ testAudioPlayer.loop = true;
+ testAudioPlayer.play();
+ });
+ testAudioPlayer.on('play', () => {
+ console.log(`case play called`);
+ console.log(`case play currentTime is ${testAudioPlayer.currentTime}`);
+ expect(testAudioPlayer.duration).assertEqual(DURATION_TIME);
+ expect(testAudioPlayer.state).assertEqual('playing');
+ sleep(PLAY_TIME);
+ if (playCount == 1) {
+ return;
+ }
+ playCount++
+ testAudioPlayer.seek(DURATION_TIME);
+ });
+ testAudioPlayer.on('timeUpdate', (seekDoneTime) => {
+ if (typeof (seekDoneTime) == "undefined") {
+ console.log(`case seek filed,errcode is ${seekDoneTime}`);
+ return;
+ }
+ if (seekCount == 1) {
+ testAudioPlayer.reset();
+ return;
+ }
+ seekCount++
+ console.log(`case seekDoneTime is ${seekDoneTime}`);
+ console.log(`case seek called`);
+ expect(testAudioPlayer.currentTime + 1).assertClose(seekDoneTime + 1, DELTA_TIME);
+ });
+ testAudioPlayer.on('finish', () => {
+ expect(testAudioPlayer.state).assertEqual('playing');
+ console.log(`case finish called`);
+ });
+ testAudioPlayer.on('reset', () => {
+ expect(testAudioPlayer.state).assertEqual('idle');
+ console.log(`case reset called`);
+ testAudioPlayer.release();
+ done();
+ });
+ testAudioPlayer.src = audioSource;
+ })
+
+})
\ No newline at end of file
diff --git a/multimedia/audio/audioPlayer/project/entry/src/main/resources/base/element/string.json b/multimedia/audio/audioPlayer/project/entry/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..2f9470d82c49675a64972657d8d367cd95e51c63
--- /dev/null
+++ b/multimedia/audio/audioPlayer/project/entry/src/main/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "MyApplication"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/multimedia/audio/audioPlayer/project/entry/src/main/resources/base/media/icon.png b/multimedia/audio/audioPlayer/project/entry/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/multimedia/audio/audioPlayer/project/entry/src/main/resources/base/media/icon.png differ