From 1205576a2f07c1f2482f08b66dd71c44ccd622ae Mon Sep 17 00:00:00 2001 From: BlancWu Date: Mon, 2 Aug 2021 16:22:58 +0800 Subject: [PATCH] Avoid issues caused by kvStore failed. Signed-off-by: BlancWu --- .../entry/src/main/config.json | 2 +- .../src/main/js/default/pages/index/index.js | 19 ++++++++++++++----- .../entry/src/main/js/model/PlayerModel.js | 7 ++++--- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/ability/JsDistributedMusicPlayer/entry/src/main/config.json b/ability/JsDistributedMusicPlayer/entry/src/main/config.json index 1f0b159296..79869938eb 100644 --- a/ability/JsDistributedMusicPlayer/entry/src/main/config.json +++ b/ability/JsDistributedMusicPlayer/entry/src/main/config.json @@ -43,7 +43,7 @@ "description": "$string:mainability_description", "label": "$string:app_name", "type": "page", - "launchType": "standard" + "launchType": "singleton" } ], "js": [ diff --git a/ability/JsDistributedMusicPlayer/entry/src/main/js/default/pages/index/index.js b/ability/JsDistributedMusicPlayer/entry/src/main/js/default/pages/index/index.js index aba10c29dd..c4aafc47da 100644 --- a/ability/JsDistributedMusicPlayer/entry/src/main/js/default/pages/index/index.js +++ b/ability/JsDistributedMusicPlayer/entry/src/main/js/default/pages/index/index.js @@ -51,13 +51,14 @@ export default { isSwitching: false, }, onInit() { - console.info('MusicPlayer[IndexPage] onInit'); + console.info('MusicPlayer[IndexPage] onInit begin'); DEVICE_LIST_LOCALHOST = { name: this.$t('strings.localhost'), id: 'localhost', }; this.deviceList = [DEVICE_LIST_LOCALHOST]; let self = this; + this.playerModel.initAudioPlayer(); this.playerModel.setOnStatusChangedListener((isPlaying) => { console.info('MusicPlayer[IndexPage] on player status changed, isPlaying=' + isPlaying + ', refresh ui'); self.playerModel.setOnPlayingProgressListener((currentTimeMs) => { @@ -96,6 +97,7 @@ export default { } }); }); + console.info('MusicPlayer[IndexPage] onInit end'); }, onBackPress() { console.info('MusicPlayer[IndexPage] onBackPress isDialogShowing=' + this.isDialogShowing); @@ -106,8 +108,10 @@ export default { return false; }, onDestroy() { + console.info('MusicPlayer[IndexPage] onDestroy begin'); this.playerModel.release(); this.remoteDeviceModel.unregisterDeviceListCallback(); + console.info('MusicPlayer[IndexPage] onDestroy end'); }, refreshSongInfo(index) { console.info('MusicPlayer[IndexPage] refreshSongInfo ' + index + '/' @@ -243,6 +247,15 @@ export default { deviceId: deviceId, parameters: params }; + var timerId = setTimeout(() => { + console.info('MusicPlayer[IndexPage] onMessageReceiveTimeout, terminateAbility'); + featureAbility.terminateAbility(); + }, 4000); + this.kvStoreModel.setOnMessageReceivedListener(REMOTE_ABILITY_STARTED, () => { + console.info('MusicPlayer[IndexPage] OnMessageReceived, terminateAbility'); + clearTimeout(timerId); + featureAbility.terminateAbility(); + }); featureAbility.startAbility({ want: wantValue }).then((data) => { @@ -250,10 +263,6 @@ export default { }); console.info('MusicPlayer[IndexPage] featureAbility.startAbility want=' + JSON.stringify(wantValue)); console.info('MusicPlayer[IndexPage] featureAbility.startAbility end'); - this.kvStoreModel.setOnMessageReceivedListener(REMOTE_ABILITY_STARTED, () => { - console.info('MusicPlayer[IndexPage] OnMessageReceived, terminateAbility'); - featureAbility.terminateAbility(); - }); }, onRadioChange(inputValue, e) { console.info('MusicPlayer[IndexPage] onRadioChange ' + inputValue + ', ' + e.value); diff --git a/ability/JsDistributedMusicPlayer/entry/src/main/js/model/PlayerModel.js b/ability/JsDistributedMusicPlayer/entry/src/main/js/model/PlayerModel.js index 8249050312..11d2fba3ba 100644 --- a/ability/JsDistributedMusicPlayer/entry/src/main/js/model/PlayerModel.js +++ b/ability/JsDistributedMusicPlayer/entry/src/main/js/model/PlayerModel.js @@ -44,12 +44,12 @@ export default class PlayerModel { #currentTimeMs = 0; constructor() { - this.#player = media.createAudioPlayer(); - console.info('MusicPlayer[PlayerModel] createAudioPlayer=' + this.#player); } initAudioPlayer() { console.info('MusicPlayer[PlayerModel] initAudioPlayer begin'); + this.#player = media.createAudioPlayer(); + console.info('MusicPlayer[PlayerModel] createAudioPlayer=' + this.#player); this.#player.on('error', (err, action) => { console.error(`MusicPlayer[PlayerModel] player error: ${err.code}`); }); @@ -74,8 +74,9 @@ export default class PlayerModel { release() { if (typeof (this.#player) != 'undefined') { - console.info('MusicPlayer[PlayerModel] player.release'); + console.info('MusicPlayer[PlayerModel] player.release begin'); this.#player.release(); + console.info('MusicPlayer[PlayerModel] player.release end'); this.#player = undefined; } } -- Gitee