这段代码是要删除的,留在这里避免以后用到。
在我写流式语音接收与播放的时候,写到这里无法继续了,因为播放时总是出错,无法播放,因为audioContext.play()不支持
但是,我写的这些,用于写入文件是没问题的。
最后我选择了使用这个插件:https://ext.dcloud.net.cn/plugin?id=22730
plus.io.requestFileSystem( plus.io.PRIVATE_DOC, function( entry ) {
// 可通过fs操作PRIVATE_DOC文件系统
console.log('在这里进行文件的创建工作');
entry.root.getFile('temp_audio.mp3', { create: true, exclusive: false }, function(fileEntry) {
console.log('创建成功');
fileEntry.createWriter(function(fileWriter) {
console.log('获取文件关联的写操作对象成功!', fileWriter);
if (chunk instanceof ArrayBuffer) {
console.log('chunk 是 ArrayBuffer 类型的实例');
const base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(chunk)));
// 构建Data URL
const dataUrl = `data:audio/mp3;base64,${base64String}`;
// console.log('dataUrl', dataUrl);
// 创建音频上下文
const audioContext = uni.createInnerAudioContext();
audioContext.src = dataUrl;
console.log('audioContext', audioContext);
// 播放音频
audioContext.play();
// 监听音频播放错误事件
audioContext.onError((err) => {
console.error('音频播放出错:', err);
});
console.log('eeeeeeeeeeennnnnnnnnndddddddddddddddd');
return
try {
fileWriter.write(base64String);
console.log('1');
} catch(e) {
console.log(e);
}
fileWriter.onwrite = function(){
console.log('aaa');
}
fileWriter.onwriteend = function(){
console.log('临时文件保存成功!');
}
fileWriter.onerror = function(e) {
console.log('临时文件保存失败!', e);
}
} else {
console.log('chunk 不是 ArrayBuffer 类型的实例');
}
}, function(e) {
console.log('获取文件关联的写操作对象失败', e);
})
}, function (e) {
console.log('创建文件失败', e);
})
}, function ( e ) {
console.log(222);
alert( "Request file system failed: " + e.message );
} );