我试图将已经存储在移动终端中的文件POST到这个3 P shazam API来识别歌曲。但是我得到了这个错误代码:422. {“detail”:[{“loc”:[“body”,“file”],“msg”:“field required”,“type”:“value_error.missing”}]}
API:https://rapidapi.com/tipsters/api/shazam-core
端点:/v1/tracks/recognize
这是端点x1c 0d1x所需的信息
这就是我尝试的方式。
let audioFile = new File([""], fileUri, {type: "audio/wav"});
const data = new FormData();
data.append('file', audioFile);
const options = {
method: 'POST',
headers: {
'X-RapidAPI-Key': 'MY_API_KEY',
'X-RapidAPI-Host': 'shazam-core.p.rapidapi.com',
'Content-Type': 'application/octet-stream'
},
body: data
};
try {
const response = await fetch(url, options);
console.log(response.status);
const result = await response.text();
console.log(result);
return result;
} catch (error) {
console.error(error);
}
关于如何使用JS调用和发送音频文件,还有其他想法吗?
1条答案
按热度按时间7xllpg7q1#
我使用expo-file-system中的uploadAsync方法解决了
import * as FileSystem from 'expo-file-system';
1.发布文件