[Résolu] NSURLRequest + NSInputStream et NSMutableData
Voila donc ce post se lie avec http://forum.cocoacafe.fr/topic/11274-envoyer-un-fichier-txt-ou-audio-par-paquet/ où j'explique que je cherche à envoyer des bouts d'audio en streaming
En gros j'enregistre et en meme temps j'envoi l'audio que je vient d'acquérir
Est-ce possible avec NSInputStream, NSUrlrequest et une mutabledata d'envoyer un bout du fichier en construction ?
Ici en l'occurence j'utilise l'AudioQueue pour enregistrer l'audio
Merci
MAJ : sachant que si ma piste audio ressemble a ca par exemple:
0 seconde |__________ | __________ | __________ | __________| 12 secondes
*1 *2 *3 *4
Pour ceux qui auraient des problèmes d'affichage voici une image :
Réponses
Après pour la mise en pratique je ne me base que sur ce que je viens de lire dans la doc, y'a sans doute des exemples associes il va falloir tester un peu
Ok merci pour ta réponse : Je vais faire un tour sur CFReadStream et WriteStream
Mmmmh je sens que je vais m'amuser ;D
Tu peux regarder le fichier PostController.m dans l'exemple SimpleURLConnections d'Apple.
Il faut regarder la variable producerStream.
Pour tester dans ton coin, tu peux mettre en place CocoaHTTPServer et activer tous les logs. Tu devrais voir tes paquets arrivés en mode "chunk".
Finalement je laisse tomber le writeStream et ReadStream ca ne me mene à rien
@FKDEV merci j'ai lu mais ca pourrait aider beaucoup de personnes mais pas moi ca me parrait difficile pour ce que je veux faire
Finalement je vais me lancer sur le CFSocket ... En gros je vais coder dans le pur
Pour ceux qui n'ont pas le livre iOS sdk ... Livre Numérique
MAJ : Ceux qui auraient un tuto à proposer sur CFSocket ou une classe simple d'utilisation je suis preneur et cela pourrait aider les futurs utilisateurs du CFSocket ;D
Sans vouloir te dissuader, il y a ASIHTTPRequest aussi.
Le projet n'est plus maintenu mais ça reste un bon outil qui gère l'envoi en mode chunk.
http://allseeing-i.com/ASIHTTPRequest/How-to-use#streaming
Merci !
Mais la encore le meme problème revient : Sur ces classes on envoi un fichier finalisé. Ou je me trompe ?
Oui en fait je crois que tu as raison pour ASIHTTPRequest car si on peut faire plusieurs appels à la méthode appendPostData, j'ai l'impression qu'ils sont tous fait avant le démarrage de la requête via startSynchronous.
Cependant, ASIHTTPRequest utilise la fonction CFReadStreamCreateForStreamedHTTPRequest.
Si j'ai bien compris, cette fonction te permet d'alimenter une requête avec un CFStreamReadRef. Donc tu pourrais intervenir dans ASIHTTPRequest au moment où cet appel se fait pour fournir ta propre classe dérivé de NSInputStream. Tu as 3 méthodes à surcharger pour fournir tes propres données dont la source peut donc être tes paquets audio.
Dans l'autre exemple, par contre, je pense que cela correspond aussi à ce que tu veux, maisl il y a sans doute un peu plus de travail. D'ailleurs il y a un autre exemple dans la doc, plus simple à lire :
En gros dès qu'un buffer a été envoyé, tu reçois un événement NSStreamEventHasSpaceAvailable pour t'indiquer que tu peux envoyer le buffer suivant.
Bon finalement j'ai pas mal avancé niveau CFNetworking
Petit probleme j'utilise la fonction send ou sendmsg ou sendfile mais quand je compile j'ai ca
Doit te manquer un import : sys/socket ou un truc du genre...
Alors en framework j'ai ca :
Je sens que c'est le karma
Bon je vais essayer de trouver une alternative de cette méthode
MAJ : Je viens de remarquer un warning en relation avec mon send : Implicit declaration of function 'SFSocketGetNative' is invalid in C99
Hmmm la fonction s'appel plutot CFSocketGetNative alors que sur certain tuto c'est SFSocketGetNative ....
Bon j'ai EXC_BAD_ACCESS </p>
Je vais me débrouiller pour trouver la raison
Merci à tous
MAJ : LE sigpipe se produit quand le port n'est pas ouvert , actuellement j'utilise netcat et si je ne tape pas la commande pour écouter les paquets au niveau application ca crash et c'est normal