从 ParseObject 中检索 ParseFile - Android C# Xamarin Parse

本文关键字:Android Xamarin Parse ParseFile ParseObject 检索 | 更新日期: 2023-09-27 18:35:50

我已经为此苦苦挣扎了一段时间了。我已经设法使用Xamarin和C#(适用于Android)创建了一个应用程序。该应用程序成功将录音发送到我的解析文件夹(https://parse.com/)。从解析网站上的仪表板上,我可以下载声音文件并成功播放。

不过,我需要能够从应用程序内下载和播放声音。到目前为止,我可以检索包含包含声音(以字节为单位)的解析文件的 parseObject。我不知道如何进入该解析对象并提取文件。

以下是我发送数据的方式:

 byte[] data = File.ReadAllBytes(LoadPath);
ParseFile file = new ParseFile(savetheFile, data);
await file.SaveAsync();
var auidoParseObject = new ParseObject("AudioWithData");
//Console.WriteLine(ParseUser.getUserName());
if (ParseUser.CurrentUser != null)
                {
                    tempUserName = ParseUser.CurrentUser.Username.ToString();
                }
else
                {
                    tempUserName = "Anonymous";
                }
                Console.WriteLine("PARSE USERNAME: " + tempUserName);
                auidoParseObject["userName"] = tempUserName;
                auidoParseObject["file"] = file;
                await auidoParseObject.SaveAsync();

这是我尝试从解析云中检索它:

var query1 = ParseObject.GetQuery ("AudioWithData")
                .WhereEqualTo ("userName", username);
IEnumerable<ParseObject> results1 = await query1.FindAsync();
Console.WriteLine ("At 0:" + results1.ElementAt (0).ToString ());
            Console.WriteLine("At 1:" + results1.ElementAt (1).ToString());
            Console.WriteLine("At 2:" + results1.ElementAt (2).ToString());

在这里,控制台将写入: 在 0:Parse.ParseObject 在 1:Parse.ParseObject 在2:Parse.ParseObject

我现在需要提取该解析对象的"文件"部分...但是怎么做!?

任何帮助将不胜感激,谢谢!

从 ParseObject 中检索 ParseFile - Android C# Xamarin Parse

var file = results1[0].Get<ParseFile>("file");
byte[] data = await new HttpClient().GetByteArrayAsync(file.Url);

您可以使用下面的代码从解析中获取文件,我使用了这段代码并且对我来说工作正常。

public static Task<IEnumerable<YourModel>> GetFiles(UserName userName)
    {
        return new ParseQuery<YourModel> ()
            .Where (x => x.userName == userName)
            .FindAsync();
    }