Я пытаюсь загрузить аудиозапись в Parse через их REST API. Я загружаю blob в мое приложение Flask и затем конвертирую этот файл в строку base64, которая будет отправлена в Parse.Загрузите аудиофайл в Parse REST API через Flask
Ответ от Parse заключается в том, что загрузка прошла успешно, но аудиофайл не воспроизводится при просмотре файла в Parse.
Любая помощь была бы принята с благодарностью.
file.wav является аудиозапись в uint8array
// js
ParleData.Upload = function(file) {
var dataView = new DataView(file.wav.buffer);
var blob = new Blob([dataView], { type: 'audio/x-wav' });
var form = new FormData();
form.append('file', blob, 'audio.wav');
return $.ajax({
type: 'POST',
url: '/upload',
contentType: false,
processData:false,
cache:false,
data: form
});
}
# views.py
@app.route('/upload', methods=['POST'])
def upload():
wav = request.files['file']
return jsonify(DAS.upload(wav))
# das.py
def upload(self, wav):
b64 = base64.b64encode(wav.read())
connection = httplib.HTTPSConnection('api.parse.com', 443)
connection.connect();
connection.request('POST', 'https://api.parse.com/1/files/audio', b64, {
'X-Parse-Application-Id':self.keys.X_PARSE_APP_ID,
'X-Parse-REST-API-Key':self.keys.X_PARSE_RESTAPI_ID,
'Content-Type': "audio/x-wav"
})
return json.loads(connection.getresponse().read())
Вы пытались воспроизвести звук после его загрузки? Я имею в виду, вы превращаете его в поток base64. Получите этот поток и вернитесь в файл и попробуйте воспроизвести его, чтобы проверить, нормально ли работает обратный процесс. –
Ошибка при загрузке, если вы не кодируете base64? Похоже на ненужный шаг. – wberry
@wberry Я не могу поверить, что я никогда не пробовал не кодировать, передавая wav.read() вместо b64 исправил его. – ParleParle