Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Java > Développement Web en Java > Applets

Applets Vos questions sur les Applets

Réponse
 
Outils de la discussion
Vieux 03/11/2008, 12h45   #1 (permalink)
Membre Confirmé
 
Avatar de kmdkaci
 
Date d'inscription: octobre 2007
Localisation: France
Messages: 268
Envoyer un message via Skype™ à kmdkaci
Par défaut Applet demarée plusieurs fois

Je voudrais poser ce problème sur le site, j'ai bon cherché sur le net, mais j'ai pas trouvé de problème similaire… A moins que j'ai zapé quelques choses.
J'ai une Applet avec un Thread, qui lit du streaming audio au format Ogg… Jusqu'à là tout va bien !!!

Mais un auditeur m'a fait remarquer que lorsqu'on fait F5, on entent le son en plusieurs fois (Autant de fois qu'on a appuyé sur F5). Après vérification, je retrouve que lors de l'actualisation de la page, une autre instance se lance et crée un nouveau Thread. du coup, une nouvelle lecture du streaming est lancé.

Ma question : Comment détecter lors de lancement de l'Applet - méthode init() pare xemple – s'il existe un Thread de la classe, déjà entrain de tourner ?

Sachant que le streaming lu par le Thread peut être de quelques secondes, des heures ou indéterminés, vu que c'est le direct.

Merci
kmdkaci est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/11/2008, 13h21   #2 (permalink)
Modérateur
 
Date d'inscription: septembre 2007
Localisation: Pays des fourmis géantes, Belgique
Âge: 29
Messages: 3 087
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Par défaut

c'est à toi de faire correctement ton nettoyage lorsque le browser stoppe ton applet via sa méthode stop().
__________________
Journaux de développement
Apprenez a poser vos questions, si vous voulez que j'y réponde!
Pas de Stacktrace, pas de chocolat!
Questions techniques en privé lettre morte
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/11/2008, 13h24   #3 (permalink)
Membre Confirmé
 
Avatar de kmdkaci
 
Date d'inscription: octobre 2007
Localisation: France
Messages: 268
Envoyer un message via Skype™ à kmdkaci
Par défaut Applet demarée plusieurs fois

Mais est ce que le fait d'actualiser la page, le navigateur appelle la méthode Stop() ou destroy() ?
kmdkaci est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/11/2008, 13h32   #4 (permalink)
Modérateur
 
Date d'inscription: septembre 2007
Localisation: Pays des fourmis géantes, Belgique
Âge: 29
Messages: 3 087
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Par défaut

ca dépend du navigateur et du plugin. Ce qui est sur, c'est que la méthode stop() et la méthode destroy() seront chacune appelées au moins une fois dans la vie de l'applet. Maintenant, certains névigateur dont un stop() puis un start(), d'autre font un stop(), destroy(), init(), d'autres encore pourraient décider de laisser l'applet tourner simplement. Mais y a de fortes chance que tu aie le stop()
__________________
Journaux de développement
Apprenez a poser vos questions, si vous voulez que j'y réponde!
Pas de Stacktrace, pas de chocolat!
Questions techniques en privé lettre morte
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/11/2008, 14h27   #5 (permalink)
Membre Confirmé
 
Avatar de kmdkaci
 
Date d'inscription: octobre 2007
Localisation: France
Messages: 268
Envoyer un message via Skype™ à kmdkaci
Par défaut Applet demarée plusieurs fois

Je viens de tester la fonction Stop(), il n'est aps appelé lors de l'actualisation sous IE, ni FireFox...

J'ai peut-être une piste pour ma réponse. est ce qu'une valeur de classe (static) peut résoudre le probléme.
En créant une variable de calsse, je me demande si on pourra garder sa valeur initiale, quelques soit le nombre d'objets crées.

Je vais tester ce point.
kmdkaci est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/11/2008, 16h35   #6 (permalink)
Modérateur
 
Date d'inscription: septembre 2007
Localisation: Pays des fourmis géantes, Belgique
Âge: 29
Messages: 3 087
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Par défaut

je viens de tester sous firefox. Lors d'un reload de la page, j'ai dans l'ordre les évenements suivants:
event:init called25199001
event:start called25199001
event:stop called8568863
event:destroy called on 8568863
Le chiffre sont les identityhashcode de l'applet. On vois bien que
D'abord la nouvelle applet est chargée
Ensuite, l'ancienne applet est déchargée.
__________________
Journaux de développement
Apprenez a poser vos questions, si vous voulez que j'y réponde!
Pas de Stacktrace, pas de chocolat!
Questions techniques en privé lettre morte
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/11/2008, 17h12   #7 (permalink)
Membre Confirmé
 
Avatar de kmdkaci
 
Date d'inscription: octobre 2007
Localisation: France
Messages: 268
Envoyer un message via Skype™ à kmdkaci
Par défaut Applet demarée plusieurs fois

Merci pour les tests effectués... J'ai pas obtenu la même chose, peut-être parce que le probléme se pose lors de l'appel de Javascript - Que j'ai inseré dans la méthode Stop().
Mais ce qui est bizare, c'est le fait que quand je fais F5, j'obtient un autre son, durant toute la durée... C'est l'Applet qui gére ce son, donc elle est toujours là. A moins que c'est le Thread qui continue de tourner.
On peut le voir sur ce lien ici puis rubrique le Direct (en haut à droite).

Merci
kmdkaci est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/11/2008, 18h03   #8 (permalink)
Membre Confirmé
 
Avatar de kmdkaci
 
Date d'inscription: octobre 2007
Localisation: France
Messages: 268
Envoyer un message via Skype™ à kmdkaci
Par défaut Applet demarée plusieurs fois

Bonjour à tous,
J'ai efefctué certaines modifications, et je pense qu'elles sont concluentes - en phase de test pour l'instant -
J'ai enlevé le Thread dans ma classe... Et lors d'une Actualisation, je n'obtient pas un nouveau Streaming....

Merci à tous pour votre aide.
kmdkaci est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/11/2008, 19h55   #9 (permalink)
Modérateur
 
Date d'inscription: septembre 2007
Localisation: Pays des fourmis géantes, Belgique
Âge: 29
Messages: 3 087
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Par défaut

par mesure d'économie, le browser n'implémente qu'une seule jvm, dans laquelle il charge tout, via un classloader par applet. Ce implique parfois des effets de bord, comme quand tu démarre un Thread. C'est pas parce que le browser arrete l'applet qu'il arrete la jvm, et les threads que t'as créé, il ne les controle pas. Le mieux pour logger les stop/destroy c'est encore Sytem.out + la console java
__________________
Journaux de développement
Apprenez a poser vos questions, si vous voulez que j'y réponde!
Pas de Stacktrace, pas de chocolat!
Questions techniques en privé lettre morte
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation
NEWS JAVAFAQsTUTORIELSJAVASEARCHSOURCESLIVRESOUTILS, EDI & APIECLIPSENETBEANSBLOGDISCUSSIONSTV

Réponse

Précédent   Forum des développeurs > Java > Développement Web en Java > Applets



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide