From bd7d9cd35ee23c3c4b0a8c8ea16627648dc5edcf Mon Sep 17 00:00:00 2001 From: qiang Date: Tue, 7 Apr 2020 12:34:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DApp=E7=AB=AF=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=8E=B7=E5=8F=96=E9=9F=B3=E9=A2=91=E6=9A=82=E5=81=9C?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app-plus/service/api/context/audio.js | 4 +- .../service/api/context/background-audio.js | 52 +++++++++---------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/platforms/app-plus/service/api/context/audio.js b/src/platforms/app-plus/service/api/context/audio.js index 397c258a1..d75f69812 100644 --- a/src/platforms/app-plus/service/api/context/audio.js +++ b/src/platforms/app-plus/service/api/context/audio.js @@ -122,7 +122,7 @@ export function getAudioState ({ errMsg: 'getAudioState:ok', duration: 1e3 * (audio.getDuration() || 0), currentTime: audio.isStopped ? 0 : 1e3 * audio.getPosition(), - paused: audio.isPaused, + paused: audio.isPaused(), src, volume, startTime: 1e3 * startTime, @@ -138,7 +138,7 @@ export function operateAudio ({ const audio = audios[audioId] const operationTypes = ['play', 'pause', 'stop'] if (operationTypes.indexOf(operationType) >= 0) { - audio[operationType === operationTypes[0] && audio.isPaused ? 'resume' : operationType]() + audio[operationType === operationTypes[0] && audio.isPaused() ? 'resume' : operationType]() } else if (operationType === 'seek') { audio.seekTo(currentTime / 1e3) } diff --git a/src/platforms/app-plus/service/api/context/background-audio.js b/src/platforms/app-plus/service/api/context/background-audio.js index fc43c7e3e..4e9364ace 100644 --- a/src/platforms/app-plus/service/api/context/background-audio.js +++ b/src/platforms/app-plus/service/api/context/background-audio.js @@ -6,9 +6,9 @@ import { publish } from '../../bridge' -let audio - -let timeUpdateTimer = null +let audio + +let timeUpdateTimer = null const TIME_UPDATE = 250 const publishBackgroundAudioStateChange = (state, res = {}) => publish('onBackgroundAudioStateChange', Object.assign({ @@ -31,15 +31,15 @@ function initMusic () { audio.addEventListener(event, () => { // 添加 isStopped 属性是为了解决 安卓设备停止播放后获取播放进度不正确的问题 if (event === 'play') { - audio.isStopped = false + audio.isStopped = false startTimeUpdateTimer() } else if (event === 'stop') { audio.isStopped = true - } - - if (event === 'pause' || event === 'ended' || event === 'stop') { - stopTimeUpdateTimer() - } + } + + if (event === 'pause' || event === 'ended' || event === 'stop') { + stopTimeUpdateTimer() + } const eventName = `onMusic${event[0].toUpperCase() + event.substr(1)}` publish(eventName, { @@ -51,13 +51,13 @@ function initMusic () { }) }) }) - audio.addEventListener('waiting', () => { + audio.addEventListener('waiting', () => { stopTimeUpdateTimer() publishBackgroundAudioStateChange('waiting', { dataUrl: audio.src }) }) - audio.addEventListener('error', err => { + audio.addEventListener('error', err => { stopTimeUpdateTimer() publish('onMusicError', { dataUrl: audio.src, @@ -71,20 +71,20 @@ function initMusic () { }) audio.addEventListener('prev', () => publish('onBackgroundAudioPrev')) audio.addEventListener('next', () => publish('onBackgroundAudioNext')) -} - -function startTimeUpdateTimer () { - stopTimeUpdateTimer() - timeUpdateTimer = setInterval(() => { - publishBackgroundAudioStateChange('timeUpdate', {}) - }, TIME_UPDATE) -} +} -function stopTimeUpdateTimer () { - if (timeUpdateTimer !== null) { - clearInterval(timeUpdateTimer) - } -} +function startTimeUpdateTimer () { + stopTimeUpdateTimer() + timeUpdateTimer = setInterval(() => { + publishBackgroundAudioStateChange('timeUpdate', {}) + }, TIME_UPDATE) +} + +function stopTimeUpdateTimer () { + if (timeUpdateTimer !== null) { + clearInterval(timeUpdateTimer) + } +} function setMusicState (args) { initMusic() @@ -113,7 +113,7 @@ export function getMusicPlayerState () { dataUrl: audio.src, duration: audio.getDuration() || 0, currentPosition: audio.getPosition(), - status: audio.isPaused ? 0 : 1, + status: audio.isPaused() ? 0 : 1, downloadPercent: Math.round(100 * audio.getBuffered() / audio.getDuration()), errMsg: `getMusicPlayerState:ok` } @@ -189,7 +189,7 @@ export function getBackgroundAudioState () { let newData = { duration: audio.getDuration() || 0, currentTime: audio.isStopped ? 0 : audio.getPosition(), - paused: audio.isPaused, + paused: audio.isPaused(), src: audio.src, buffered: audio.getBuffered(), title: audio.title, -- GitLab