Je crée une application Windows Phone 8, j'ai un Windows Phone 8 avec 512 Mo de RAM, Lorsque je lance l'application sur l'émulateur, il fonctionne très bien, mais quand je vérifie sur Windows Téléphone 8 périphérique, je reçois l'exceptionSystem.OutOfMemoryException dans Windows Phone 8
System.OutOfMemoryException
Lorsqu'il reste encore beaucoup de mémoire libre. Voir mon code ci-dessous:
private IsolatedStorageFileStream isoVideoFile;
string isoVideoFileName = "Movie.mp4";
using (isoVideoFile = new IsolatedStorageFileStream(isoVideoFileName,
FileMode.OpenOrCreate, FileAccess.ReadWrite,
IsolatedStorageFile.GetUserStoreForApplication()))
{
using (MemoryStream stream = new MemoryStream())
{
isoVideoFile.Write(stream.GetBuffer(), 0, (int)stream.Position);
}
byte[] binaryData = new Byte[isoVideoFile.Length];
long bytesRead = isoVideoFile.Read(binaryData, 0, (int)isoVideoFile.Length);
string videofile = Convert.ToBase64String(binaryData, 0, binaryData.Length);
}
Voulez-vous vraiment placer tout le contenu du fichier dans la mémoire? Vous ne pouvez pas convertir le morceau de fichier par morceau? –
Oui. Le fichier VIDEO suppose un fichier vidéo. Quelle est la taille? Je suggère fortement de ne pas le lire comme ceci - utiliser des tampons plus petits (512kb) et juste déplacer le morceau par morceau. – TomTom
Le fait que votre appareil dispose de x Mo gratuit ne signifie pas que vous pouvez réellement allouer x Mo. Il y a cette chose appelée fragmentation de la mémoire. En outre, il y a probablement une limite par application. – dandan78