Question

J'ai écrit un jeu en Flash (AS3 / Flex SDK / MXMLC) qui diffuse de la musique et des fichiers audio à partir de mon serveur.

La bande passante m’inquiète. Les composants audio font près de 3 Mo. Si le jeu gagne en popularité, il va vraiment faire monter les frais de bande passante.

Est-il possible de faire en sorte que Flash mette en cache les composants audio une fois qu'ils ont été téléchargés, au lieu de les diffuser en continu chaque fois que le jeu est chargé sur le même ordinateur?

Je connais les SharedObjects ("cookies"), mais je ne pense pas qu'il soit possible de stocker des données binaires là-bas ... ou y en a-t-il?

Était-ce utile?

La solution

Lorsque vous dites "flux", je suppose que vous parlez de téléchargement progressif via HTTP.

Vous voudrez vous assurer que vos ressources multimédias sont envoyées à partir de votre serveur avec les en-têtes de mise en cache appropriés qui répondent à vos objectifs, pour commencer. Si ceux-ci ne sont pas adaptés au cache, les fichiers ne seront pas mis en cache. De plus, les chaînes de requête empêcheront généralement la mise en cache côté client.

À cet égard, le lecteur Flash n'a rien de vraiment magique: tout devrait fonctionner comme si tout cela n'était qu'une simple page Web.

Vous pouvez envisager d’héberger vos ressources multimédias statiques volumineuses sur un serveur bon marché (comme Amazon S3 ou CloudFront .) Cela pourrait réduire le coût des transferts de masse ne nécessitant pas de logique d'application. .

Mise à jour inspirée par les commentaires: Voici un aperçu que vous pourrez suivre dans votre quête ...

  1. Déterminez quel type de mise en cache est actif ou non en premier
    1. Effacez le cache de votre navigateur
    2. Passez en revue un cas d'utilisation dans votre jeu
    3. Répétez l'opération avec l'espoir de voir le même contenu utilisé
    4. Inspectez les fichiers journaux du serveur Web. Le premier groupe de demandes doit avoir un code de réponse HTTP 200. Pour le second groupe de demandes, "Cachable". Pour les demandes de fichiers déjà livrés, vous devriez voir rien ou HTTP 304 (une demande visant uniquement à savoir si le contenu mis en cache est valide.) Si vous voyez des ensembles identiques de demandes, le tout avec 200 OK, alors la mise en cache ne se produit pas
  2. En savoir plus sur la mise en cache
    1. Installez un plug-in FireFox tel que TamperData, observez les en-têtes de mise en cache
    2. Lisez les spécifications, sachez-les. RFC 2616
    3. Expérience

Je ne serais pas surpris si vous mettiez déjà le contenu en cache mais que vous ne le réalisiez pas!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top