尝试下了下面代码,但是发现 循环读取 实时的音频流 会阻塞UI 不知道如何处理
<template>
<button @click="r">1</button>
<button @click="w">2</button>
<button @click="x">3</button>
<view>{{data}}</view>
</template>
<script>
export default {
mounted() {
},
data() {
return {
data: 1
}
},
methods: {
x() {
this.data = Math.random();
},
w() {
this.th.stop();
},
r() {
var AudioFormat = plus.android.importClass("android.media.AudioFormat");
var AudioRecord = plus.android.importClass('android.media.AudioRecord')
var MediaRecorder = plus.android.importClass('android.media.MediaRecorder');
var channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;
var audioEncoding = AudioFormat.ENCODING_PCM_16BIT;
var frequency = 16000;
const bufferSize = AudioRecord.getMinBufferSize(frequency, channelConfiguration, audioEncoding);
const audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency, channelConfiguration,
audioEncoding, bufferSize);
audioRecord.startRecording();
var Thread = plus.ios.importClass("java.lang.Thread");
var Runnable = plus.android.implements("java.lang.Runnable", {
"run": function() {
try {
while (true) {
// 不断去读录音结果的buffer
}
} catch (e) {
}
}
});
this.th = new Thread(Runnable);
this.th.start();
}
}
}
</script>
<style>
</style>
2 个回复
FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
复杂的,最好用原生插件去搞
FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
录音支持实时帧pcm回调、暂停、继续、后台、息屏、长时间:https://ext.dcloud.net.cn/plugin?id=11125