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'
|
}
|
}
|