2009-04-04 7 views
1

Comment puis-je sauvegarder l'état actuel d'un fichier audio en cours de diffusion par mon application. Je veux commencer la chanson au même endroit où l'utilisateur l'a laissé (quelque chose comme ce que fait Pandora en écoutant une chanson)Diffusion audio iPhone - économie d'état?

Maintenant, je reçois le numéro de paquet en cours de lecture. A partir du numéro de paquet, je reçois le numéro d'octet et l'envoie dans le champ d'en-tête Range. Mais cela ne fonctionne pas et renvoie la chanson entière dès le début. J'utilise AudioFileStream et CFHTTPStream pour diffuser l'audio en continu.

Merci.

+0

il peut être utile de vérifier que l'endroit où vous êtes en streaming prend en charge l'en-tête de la plage – cobbal

Répondre

0

Cela dépend vraiment beaucoup des capacités du serveur de streaming. La plupart des serveurs de streaming courants ne prennent pas en charge Shoutcast ou Icecast.

+0

Thanks John. Comment Pandora le fait-il alors? Ils doivent aussi utiliser le paramètre range pour lancer la chanson depuis l'endroit où l'utilisateur l'a quittée? – lostInTransit

+0

La magie de Pandore est dans le serveur. Je suppose qu'ils ont construit leur propre à partir de la base. –

+0

J'ai vérifié avec mon serveur. Il prend en charge l'en-tête Range. Donc ce n'est pas un problème. Maintenant, comment puis-je le faire? – lostInTransit

1

Voilà comment nous le faisons (bien que nous utilisions NSURLConnection). Il semble que votre serveur ne respecte pas l'en-tête de la plage. Commencez le débogage ici - le problème est soit que votre serveur ne supporte pas l'entête de plage, soit que votre client ne l'envoie pas correctement.

Questions connexes