Search code examples
c#-4.0xamarin.iosrealm

Not able to read back the audio binary data from realm db to play with AVPlayer


Due to some reason I am bound to store a recorded audio in Realm Db as Byte array kindly refer code below .

var byteArray = NSData.FromUrl(audioFilePath).ToArray();

I save this byteArray to db .

when I try to play the same audio after fetching it from db I am facing problem that mediaFile always remains null .

var nsdata = NSData.FromArray(byteArray); 

var mstring = NSString.FromData(nsdata,NSStringEncoding.ASCIIStringEncoding); //tried all encoding options from enum available )
mediaFile = NSUrl.FromString(mstring); // mediaFile always remains null
this.player = new AVPlayer(mediaFile);
this.player.Play();

Any help in above regard would be appreciated .


Solution

  • Actually after reading the data back from db I was supposed to write it to a filelocation and an URL pointing to that location is what was needed to play back the mp3 .

    fully completed code

                    var nsdata = NSData.FromArray(byteArray);
                string fileName = string.Format("Myfile{0}.mp4", "saket");
                var urlPath = Path.Combine(Path.GetTempPath(), fileName);
    
                Console.WriteLine(urlPath);
                var audioFilePath = NSUrl.FromFilename(urlPath);
                NSError err;
                nsdata.Save(audioFilePath, false, out err);
    
            //  var url = NSUrl.FromFilename(audioFilePath);
    
                this.player = new AVPlayer(audioFilePath);
                this.player.Play();