我正在使用 Cordova Media 将音频录制到一个空文件中。
为了上传它,我需要在文件上设置内容类型。
我试图将文件转换为 Blob,以便我可以设置内容类型,然而我很难将文件转换为 Blob。
为了上传它,我需要在文件上设置内容类型。
我试图将文件转换为 Blob,以便我可以设置内容类型,然而我很难将文件转换为 Blob。
state.cordova.localDirectory.getFile(filename,{create:true, exclusive:false},
f => {
const options = {
SampleRate: 16000,
NumberOfChannels: 1,
}
media = new window.Media(f.nativeURL,() =>
f.file(file => {
const blob = new Blob(file,{type: 'audio/m4u'}) <-- Trying to convert file into a blob here
blob.lastModifiedDate = new Date()
blob.name = filename
console.log(blob)
upload(blob,'audio/m4u')
.then(data=> {console.log(data);store.dispatch(voiceAudioUploaded(sessionId,gameTaskId,data))}, err=> console.log(err))
}
, err => console.log('err',err) ))
media.startRecordWithCompression(options)
})
错误信息为`
构造‘Blob’失败:迭代器获取器不可调用。
`
file
是什么,但它似乎不是可迭代的。请注意,如果它是 Web APIwindow.File
中的File
,那么它已经是 Blob 了。但是,如果你真的想让它成为一个 Blob,出于某种原因,那么你可以使用new Blob([file], options)
。 - Kaiidofile = new File([file], file.name, {type: 'application/foo'})
。 - Kaiido