getFileUrl(file) {
return new Promise(resolve => {
// 把文件转化为本地文件链接
let url
const agent = navigator.userAgent
if (agent.indexOf('MSIE') >= 1 || agent.indexOf('NET') !== -1) {
url = window.URL.createObjectURL(file)
} else if (agent.indexOf('Firefox') > 0) {
url = window.URL.createObjectURL(file)
} else if (agent.indexOf('Chrome') > 0) {
url = window.webkitURL.createObjectURL(file)
}
// 将转化后的链接进行解析,此操作是异步操作,需要配合async和await使用
const request = new XMLHttpRequest()
request.open('GET', url, true)
request.responseType = 'arraybuffer'
request.onload = function() {
const audioData = request.response
const intArr = new Int8Array(audioData)
const sampleRateArr = intArr.slice(24, 28)
const sampleRate = ((sampleRateArr[0] & 0xFF) | ((sampleRateArr[1] & 0xFF) << 8) | ((sampleRateArr[2] & 0xFF) << 16) | ((sampleRateArr[3] & 0xFF) << 24))
// 返回音频出去
resolve(sampleRate)
}
request.send()
})
},
const result = this.getFileUrl(file)
注意:file为上传时获取的音频文件,此音频的格式为wav。