diff --git a/src/platforms/app-plus/service/api/context/audio.js b/src/platforms/app-plus/service/api/context/audio.js index 397c258a1c23c67a4d50c94843e8fd91c6a60add..d75f698122a0ed729a42f340b527fd52cdccb65e 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 fc43c7e3eb956f01016f14e0689c30ef5b583c68..4e9364aceb7b11be75323e70d24722dd266361d2 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,