2011-07-01 7 views
1

J'ai écrit l'application de l'enregistreur vocal. Maintenant, je veux écrire les données audio directement dans le fichier Amazon S3 en temps réel. Je vois que AWS SDK pour Android a la fonction appropriée pour cela: public Upload upload(String bucketName, String key, InputStream input, ObjectMetadata objectMetadata). Mais il est dit que "lors du téléchargement de données à partir d'un flux, les appelants doivent fournir la taille des données dans le flux". Alors, ça marchera quand je ne connaîtrai pas la taille du flux au moment de l'enregistrement?
Et sinon, existe-t-il d'autres solutions?Comment diffuser de l'audio sur Amazon S3?

+0

Ne pouvez-vous pas mettre en mémoire tampon une certaine quantité localement et ensuite envoyer de petits morceaux à la fois (disons 4k environ)? –

+0

Je peux. Mais comment fusionner ces morceaux sur le serveur Amazon? – alehro

Répondre

0

En raison de la façon dont Amazon S3 stocke des données (il est différent de votre système de fichiers moyen), je ne pense pas qu'un flux continu est possible. Mais vous pouvez faire passer l'enregistrement en morceaux. Votre enregistreur vocal commence à enregistrer dans un fichier, puis passe à un autre fichier une fois que le premier fichier a atteint une certaine taille. Ensuite, vous téléchargez le premier fichier pendant que le second est en train d'enregistrer. Une fois que le deuxième fichier a atteint une certaine taille, vous passez à un troisième et téléchargez le second, et ainsi de suite.

+0

Je vais utiliser Google App Engine. Il a une belle fonctionnalité de fichier append qui va faciliter la fusion des morceaux. – alehro