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

从ParseObject中检索ParseFile-Android C#Xamarin Parse,c#,android,audio,parse-platform,xamarin,C#,Android,Audio,Parse Platform,Xamarin,我已经为此挣扎了一段时间了。我已经设法用Xamarin&C#(android版)创建了一个应用程序。应用程序已成功将语音录制发送到my Parse文件夹()。从parse网站的仪表板上,我可以下载声音文件并成功播放 不过,我需要能够从应用程序中下载并播放声音。 到目前为止,我可以检索包含以字节为单位的声音的parseFile的parseObject。但我不知道如何进入parseObject并提取文件 以下是我发送数据的方式: byte[] data = File.ReadAllBytes(Lo

我已经为此挣扎了一段时间了。我已经设法用Xamarin&C#(android版)创建了一个应用程序。应用程序已成功将语音录制发送到my Parse文件夹()。从parse网站的仪表板上,我可以下载声音文件并成功播放

不过,我需要能够从应用程序中下载并播放声音。 到目前为止,我可以检索包含以字节为单位的声音的parseFile的parseObject。但我不知道如何进入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());
var query1=ParseObject.GetQuery(“AudioWithData”)
.WhereEqualTo(“用户名”,用户名);
IEnumerable results1=等待query1.FindAsync();
Console.WriteLine(“在0:+results1.ElementAt(0.ToString());
WriteLine(“At 1:+results1.ElementAt(1.ToString());
WriteLine(“At 2:+results1.ElementAt(2.ToString());
在这里,控制台将写入: 在0:Parse.ParseObject 在1:Parse.ParseObject 在2:Parse.ParseObject

我现在需要提取parseObject的“文件”部分。。。但是怎么做

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

var file=results1[0]。获取(“文件”);
byte[]data=wait new HttpClient().GetByteArrayAsync(file.Url);

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

public static Task<IEnumerable<YourModel>> GetFiles(UserName userName)
    {
        return new ParseQuery<YourModel> ()
            .Where (x => x.userName == userName)
            .FindAsync();
    }
公共静态任务GetFiles(用户名)
{
返回新的ParseQuery()
.Where(x=>x.userName==userName)
.FindAsync();
}

嗨,杰森,很抱歉我没有及时回复你。我遇到了以下错误:无法将带[]的索引应用于类型为“System.Collections.Generic.IEnumerable”(CS0021)的表达式嗨,对不起,我在这里的注释有点匆忙,我使用了这一行,而不是var myfile=results1.ElementAt(0).Get(“文件”);看起来还可以。然而,目前我只有一个模拟器可供使用。一旦我在安卓设备上试用过,我会将其标记为正确。谢谢。你好,里卡多,对不起,我有点神经过敏。。。我更熟悉VB.NET,因此我对.NET框架有一定的了解,但我对您提供的方法有点困惑。请你再具体一点好吗?谢谢。您可以使用上述方法检索对象,以获取其所有属性。例如,您可以使用以下代码“GetFiles.File.Url”。
public static Task<IEnumerable<YourModel>> GetFiles(UserName userName)
    {
        return new ParseQuery<YourModel> ()
            .Where (x => x.userName == userName)
            .FindAsync();
    }