fetchMediaFileStream(mediaUrl, fileName, extension) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.onload = () => {
if (xhr.status === 200) {
console.log("打印=", xhr.response);
const blob = xhr.response;
let mimeType;
switch (extension) {
case 'mp3':
case 'wav':
case 'aac':
mimeType = 'audio/*';
break;
case 'mp4':
case 'avi':
case 'mov':
mimeType = 'video/*';
break;
case 'jpg':
case 'jpeg':
case 'png':
case 'gif':
mimeType = 'image/*';
break;
default:
reject(new Error('未知文件扩展名: ' + extension));
return;
}
const inferredFileName = fileName;
const mediaFile = new File([blob], inferredFileName, {type: mimeType});
resolve(mediaFile); // 成功时,解析并返回File对象
} else {
reject(new Error('请求失败,状态码:' + xhr.status)); // 如果HTTP状态不是200,则拒绝Promise
}
};
xhr.onerror = () => {
reject(new Error('网络请求失败,请检查网络连接')); // 处理网络错误
};
xhr.responseType = 'blob';
xhr.open('GET', mediaUrl);
xhr.send();
});
},
调用
this.fetchMediaFileStream("http://192.168.4.3:9000/palmtengchong-000000/upload/20240606/63d11d0b4406bbb6343086ead6d283f2.mp3", '66', 'mp3')
.then(file => {
console.log('文件获取成功:', file);
// 在这里处理成功的逻辑,比如将file存入数组或其他操作
})
.catch(error => {
console.error('发生错误:', error.message);
// 在这里处理错误,比如提示用户
});