Forums Développement Multimédia

Aller au contenu

Optimisation du chargement de vidéos, comment garder les vidéos en cache ?

CODE Actionscript

4 réponses à ce sujet

#1 Vinyl

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 284 messages

Posté 07 January 2013 - 16:23 PM

Bonjour,

Je me suis fait une petite galerie vidéo.
Le fonctionnement est super simple, un menu permet d’accéder aux différentes vidéos.

Je n’utilise qu’un objet NetConnection et un objet NetStream
A chaque fois que je ferme une vidéo, j’exécute ce code :

ns.close();
vid.clear();

Tout fonctionne bien mais je remarque qu’a chaque fois que je lance une vidéo, le fichier est retéléchargé complètement alors que la vidéo a déjà été lue et mise en cache lors d'une précédente lecture.

A priori, c’est normal, car d’après la documentation, la méthode close() supprime également la copie locale d’un fichier vidéo téléchargé via HTTP.

Comment faire alors pour conserver les fichiers dans le cache ?

On m’a parlé de :
appendBytes ()

Mais je ne l’a jamais utilisé. Vous en pensez quoi ? Il y a d’autres solutions ?

Merci.

#2 Galacta

    Etudiant Ingénieur

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 689 messages

Posté 07 January 2013 - 18:15 PM

Yop,

Tu utilises AIR, ou Flash Player ?

Deux idées en vrac :

Si tu utilises Air tu peux sauvegarder localement dans un fichier les bytes de ta video.

Si tu utilises Flash Player, tu télécharges ta video via URLLoader ( dataFormat = URLDataFormat.BINARY ) et tu sockes sont contenu dans un ByteArray. Et lorsque tu veux jouer ta video, tu n'as plus qu'à faire tonNetStream.appendBytes(byteArrayDeSauvegarde);
Cette solution fonctionne aussi avec AIR.

Par contre il faut faire attention à la taille de tes videos, vu qu'elles sont placées en RAM.
Word hard, play hard.

#3 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 07 January 2013 - 20:26 PM

Une idée :) y'a peut etre un coup a faire pour sauvegarder avec FlasCC ( http://www.adobe.com...samples.html#T7 ) ...

#4 Galacta

    Etudiant Ingénieur

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 689 messages

Posté 08 January 2013 - 10:59 AM

Je bosse actuellement sur un test du FileSystem avec FlasCC,Après 2 heures pour arriver à compiler et obtenir un résultat, c'est assez simple à utiliser.
J'ai pas vu beaucoup de différence par rapport à une sauvegarder FileStream via Air, t'as déjà fait des tests de ton côté Goa ?
Word hard, play hard.

#5 Vinyl

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 284 messages

Posté 08 January 2013 - 12:14 PM

Voir le messageGalacta, le 07 January 2013 - 18:15 PM, dit :

Si tu utilises Flash Player, tu télécharges ta video via URLLoader ( dataFormat = URLDataFormat.BINARY ) et tu sockes sont contenu dans un ByteArray. Et lorsque tu veux jouer ta video, tu n'as plus qu'à faire tonNetStream.appendBytes(byteArrayDeSauvegarde);
Cette solution fonctionne aussi avec AIR.

Par contre il faut faire attention à la taille de tes videos, vu qu'elles sont placées en RAM.

Je n'avais pas précisé mais je travaille avec Flash Player.

Donc appendBytes permet de stocker les vidéos en ram.
Intéressant, mais dans mon cas, je pense que c’est un peu abusé car j’ai plusieurs fichiers vidéos et ça peut vite monter dans les 800 Mo au total.

Je vais tester quand même.

Je souhaitais simplement réutiliser les fichiers téléchargés dans le cache.

Sinon, ça peut sans doute fonctionner en utilisant plusieurs objet NetStream et en n’utilisant pas la méthode close() mais la méthode pause(). Je crois qu’avec pause(), le cache n’est pas vidé. Lord de l’arrêt d’une vidéo, je met sur pause et je remet la tête de lecture à 0.

Mais je trouvais ça plus simple de n’avoir qu’un objet NetStream.



3 utilisateur(s) li(sen)t ce sujet

0 membre(s), 3 invité(s), 0 utilisateur(s) anonyme(s)