智能照明系统APP-本地串口
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
LightingSystemApp-serial/.svn/pristine/d9/d93c01a4c3732a4fc63837f927d...

107 lines
2.0 KiB

import {
getRealPath
} from '../util'
import {
invoke
} from '../../bridge'
const RECORD_TIME = 60 * 60 * 1000
let recorder
let recordTimeout
export function startRecord (args, callbackId) {
recorder && recorder.stop()
recorder = plus.audio.getRecorder()
recorder.record({
filename: '_doc/audio/',
format: 'aac'
}, (res) => {
invoke(callbackId, {
errMsg: 'startRecord:ok',
tempFilePath: res
})
}, (res) => {
invoke(callbackId, {
errMsg: 'startRecord:fail'
})
})
recordTimeout = setTimeout(() => {
recorder.stop()
recorder = false
}, RECORD_TIME)
}
export function stopRecord () {
if (recorder) {
recordTimeout && clearTimeout(recordTimeout)
recorder.stop()
return {
errMsg: 'stopRecord:ok'
}
}
return {
errMsg: 'stopRecord:fail'
}
}
let player
let playerFilePath
let playerStatus
export function playVoice ({
filePath
} = {}, callbackId) {
if (player && playerFilePath === filePath && playerStatus === 'pause') { // 如果是当前音频被暂停,则继续播放
playerStatus = 'play'
player.play((res) => {
player = false
playerFilePath = false
playerStatus = false
invoke(callbackId, {
errMsg: 'playVoice:ok'
})
})
return {
errMsg: 'playVoice:ok'
}
}
if (player) { // 如果存在音频播放,则停止
player.stop()
}
playerFilePath = filePath
playerStatus = 'play'
player = plus.audio.createPlayer(getRealPath(filePath))
// 播放操作成功回调
player.play((res) => {
player = false
playerFilePath = false
playerStatus = false
invoke(callbackId, {
errMsg: 'playVoice:ok'
})
})
}
export function pauseVoice () {
if (player && playerStatus === 'play') {
player.pause()
playerStatus = 'pause'
}
return {
errMsg: 'pauseVoice:ok'
}
}
export function stopVoice () {
if (player) {
player.stop()
player = false
playerFilePath = false
playerStatus = false
}
return {
errMsg: 'stopVoice:ok'
}
}