我对我的应用进行了记录活动,但无法将其正确上传到Firebase存储。我尝试根据Google发布的图片上传示例构建上传过程,并上传了一个空文件(0KB)。录制过程运行良好,我单击了播放按钮进行检查,因此我知道这只是一个问题,我不知道如何将其正确上传到云。
[大家都欢迎使用git中的弹出记录活动:https://github.com/tidharon/Popup-Record-Window-App
这里是我的上传代码:
recRef = storage.getReference(lastAct + " Records").child(lastTitle);
metadata = new StorageMetadata.Builder().setCustomMetadata(lastID, outputFile).build();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] daata = baos.toByteArray();
uploadTask = (UploadTask) recRef.putBytes(daata, metadata).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
recURL = recRef.toString();
getIntent().putExtra("recURL", recURL);
}
});
recRef是一个StorageReference元素。元数据是一个StorageMetadate元素。lastID是连接到记录的文本文档的ID。outputFile是存储记录的目录
这是记录过程的准备:
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + ("/" + lastAct + " | " + lastID + " | " + date + ".3gp");
myAudioRecorder = new MediaRecorder();
myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
myAudioRecorder.setOutputFile(outputFile);
提前感谢!
使用此命令检查是什么引起了问题
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MyContext, e.toString(), Toast.LENGTH_LONG).show();
}
})
在代码中的addOnCompleteListener关闭之后