uniapp中,使用plus.io实现安卓端写入文件

发布于:2025-04-13 ⋅ 阅读:(19) ⋅ 点赞:(0)

这段代码是要删除的,留在这里避免以后用到。
在我写流式语音接收与播放的时候,写到这里无法继续了,因为播放时总是出错,无法播放,因为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 );
						} );