gpt4 book ai didi

android - 如何将音频文件上传到 Parse.com - Android

转载 作者:太空宇宙 更新时间:2023-11-03 12:32:07 24 4
gpt4 key购买 nike

我有一个要上传到 Parse.com 的文件的路径。

例如其中一个文件路径是:“/storage/emulated/0/app100/2015-06-04_00:45:16_RecordSound.3gp”

现在,我想将它上传到 Parse.com。任何解决方案如何做到这一点?

我已经尝试为此编写一个方法,但它不起作用:

private ParseObject uploadAudioToParse(File audioFile, ParseObject po, String columnName){

if(audioFile != null){
Log.d("EB", "audioFile is not NULL: " + audioFile.toString());
ByteArrayOutputStream out = new ByteArrayOutputStream();
BufferedInputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(audioFile));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
int read;
byte[] buff = new byte[1024];
try {
while ((read = in.read(buff)) > 0)
{
out.write(buff, 0, read);
}
} catch (IOException e) {
e.printStackTrace();
}
try {
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
byte[] audioBytes = out.toByteArray();
// Create the ParseFile
ParseFile file = new ParseFile(audioFile.getName() , audioBytes);
// Upload the file into Parse Cloud
file.saveInBackground();
po.put(columnName, file);
}
return po;
}

谢谢!

最佳答案

尝试以下操作:

private ParseObject uploadAudioToParse(File audioFile, ParseObject po, String columnName){

if(audioFile != null){
Log.d("EB", "audioFile is not NULL: " + audioFile.toString());
ByteArrayOutputStream out = new ByteArrayOutputStream();
BufferedInputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(audioFile));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
int read;
byte[] buff = new byte[1024];
try {
while ((read = in.read(buff)) > 0)
{
out.write(buff, 0, read);
}
} catch (IOException e) {
e.printStackTrace();
}
try {
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
byte[] audioBytes = out.toByteArray();

// Create the ParseFile
ParseFile file = new ParseFile(audioFile.getName() , audioBytes);
po.put(columnName, file);

// Upload the file into Parse Cloud
file.saveInBackground();
po.saveInBackground();
}
return po;

先将对象放入ParseObject,再保存文件。此外,我还添加了保存 ParseObject (po.saveInBackground())。既然你修改了 po,你也必须保存它。也许您在方法之外执行了此操作,但您链接的代码并未显示此内容。

此外,也许尝试在 AsyncTask 中执行此操作并改为调用 save() ,以确保每个步骤都有效(如果保存或出现问题,请取消任务),或使用 SaveCallback k 提供如下: ParseObject.saveInBackground( SaveCallback callback);一旦 ParseFile 成功保存,在 done 方法中调用保存到 PO 对象。

注意:ParseFile 的大小有 10mb 的限制,因此如果音频文件大于此大小,则会出现问题。

关于android - 如何将音频文件上传到 Parse.com - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30631549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com