• [^] # Re: Je prends les paris

    Posté par . En réponse au journal La terre est plate et Java est plus rapide que C++. Évalué à 2.

    Bon, voilà mon code :
    _in est une TargetDataLine en Java Direct Sound,
    _bigBuf, c'est un plus gros buffer circulaire dans lequel je mets mes données, et que le player va lire pour les jouer sur la carte son par exemple (on va supposer qu'il marche...) (même quand seul le recorder est seul, sans player, j'ai le problème, bon ok, j'ai pas essayé sans la copie vers le bigBuf)


    le corps du run() est :

    while (started) {
    size = _in.available(); // récupère la taille des données dispo
    _in.read(buf, 0, size); // récupère les données (une copie //supplémentaire, je sais)
    _bigBuf.put(buf, 0, size); // écrit dans le buffer circulaire
    Thread.wait(100); // Attends au moins 100ms, si possible moins de 1s
    }

    Ca ne vous avance pas à grand chose. Sinon, y'a des sorties textes de debug au milieu de tout ça, ce qui peut expliquer la chose. M'enfin, je suis plus au taf, donc je peux pas essayer.

    Merci pour la proposition, mais ça vous avance à rien. Y'a pas de deadlock vu que seul un consommateur tourne :) Si mon buffer circulaire buggait, j'aurais des excpetions. Vu qu'il ne fait pas 1Mo ça n'explique de toute façon pas la latence, une copie de 1Mo prenant moins d'une seconde. Une copie de plus de 1Mo déclencherais une excpetion...