Lecture de Radio

juillet 2009 modifié dans API AppKit #1
Bonjour à  tous,

Je cherche désespérément un moyen de lire certains radios.. à  vrai dire je n'ai aucun mal à  lire les radios référencées dans iTunes avec NSSound.

Sauf que voilà , certaines radios (et je n'y connais strictement rien) ne marchent pas du tout.
Exemple avec celle-ci : http://request-high.subsonicradio.com:8000/listen.pls
Elle marche très bien dans iTunes et dans QuickTime. Et étant donné que ça marchait dans QuickTime je me suis laissé tenter par QTMovie +movieWithURL:error:

Dans mon programme, peu importe si j'utilise NSSound ou QTMovie pour lire la radio, les 2 cas font planter l'application.
Et pourtant, il y a certaines radios où ça marche très très bien... notamment celles déjà  présentes dans iTunes du genre :


Ma question est donc : que faire?  :(

Louka.


Edit : WTF... ça marche maintenant oO ça doit être une erreur dans mon programme vu que ça ne marche que si je lis la radio après avoir lu une musique avant...
Autrement si je lis la radio en question en premier j'ai ça :
<br />GNU gdb 6.3.50-20050815 (Apple version gdb-966) (Tue Mar 10 02:43:13 UTC 2009)<br />Copyright 2004 Free Software Foundation, Inc.<br />GDB is free software, covered by the GNU General Public License, and you are<br />welcome to change it and/or distribute copies of it under certain conditions.<br />Type &quot;show copying&quot; to see the conditions.<br />There is absolutely no warranty for GDB.&nbsp; Type &quot;show warranty&quot; for details.<br />This GDB was configured as &quot;i386-apple-darwin&quot;.sharedlibrary apply-load-rules all<br />Attaching to process 47111.<br />Current language:&nbsp; auto; currently asm<br />Xcode could not locate source file: cpu_capabilities.h (line: 234)<br />kill<br />


Et j'avais jms vu cette avant-dernière ligne auparavant..

Réponses

  • juillet 2009 modifié #2
    Un peu plus d'infos,
    il semblerait que ça plante au moment de faire "play" sur mon track :
    <br />track = [[NSSound alloc] initWithContentsOfURL:[NSURL URLWithString:@&quot;http://request-high.subsonicradio.com:8000/listen.pls&quot;] byReference:NO];<br />[track play];<br />
    


    Et comme je l'ai dis plus haut, si on fait comme ça :
    <br />track = [[NSSound alloc] initWithContentsOfURL:[NSURL URLWithString:@&quot;http://pri.kts-af.net/redir/index.pls?esid=f9dea43e7eb1c6455df0001fbd9e39f4&amp;url_no=1&amp;client_id=7&amp;uid=68efed4d03ec7e45fd3978262c107180&amp;clicksrc=xml&quot;] byReference:NO];<br />[track play];<br />[track stop];<br />[track release];<br /><br />track = [[NSSound alloc] initWithContentsOfURL:[NSURL URLWithString:@&quot;http://request-high.subsonicradio.com:8000/listen.pls&quot;] byReference:NO];<br />[track play];<br />
    


    Ben ça marche  ???
    Et pour ceux qui seraient sceptiques, oui j'ai bien testé dans un projet tout neuf avec juste les 3 lignes de code..
    Je tiens à  remarquer aussi que si vous retirez le "[track play];" du premier NSSound qu'on joue pour éviter le plantage du second, ben c'est mort :D ça plante quand même.

    Toujours ce cpu-capabilities.h qui revient. Alors, bug de Mac OS X ou pas?  ::) On dirait bien, car sur mon MacBook Pro équipé de Snow Leopard, ça fonctionne parfaitement! (Notez que c'est pareil avec QTMovie)

    Chose assez comique, si vous tentez d'utiliser un fichier audio situé sur votre disque dur avant d'initialiser la "radio qui fait planter", ça plantera quand meme.

    C'est vraiment incompréhensible pour moi là ..
  • yoannyoann Membre
    01:24 modifié #3
    Tu as une trace éventuellement ?

    Sinon simplement en regardant le pls il y a un blem, il manque le Length1=-1 indiquant un flux infinie dans la description de la radio. Il se peut que ça vienne de la.

    Je n'ai pas réussi a télécharger le pls de l'autre radio, celui de radio nova est complet, essaye de lire directement celui la pour voir si ça marche directement.
  • 01:24 modifié #4
    Mais alors, qu'est-ce qui expliquerait que ça fonctionne sur iTunes ou QuickTime? Et pourquoi en utilisant NSSound sous Snow Leopard ça fonctionne aussi  :crackboom:-
  • yoannyoann Membre
    01:24 modifié #5
    Une implémentation différente dans Snow Leopard (QuickTime X derrière) et avec iTunes et QuickTime, ils fonctionnent peut être d'une autre manière. A coder un lecteur de radio perso je ferais moi même la partie flux pour sortir les données audio et les envoyer ensuite à  CoreAudio, de sorte à  pouvoir gérer facilement l'intéruption de connexion, le cache, etc
Connectez-vous ou Inscrivez-vous pour répondre.