![]() |
| 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é. | |||||||
|
|||||||
| Applets Vos questions sur les Applets |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre Confirmé
![]() |
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 |
|
|
|
|
|
#2 (permalink) |
![]() |
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
|
|
|
|
|
|
#4 (permalink) |
![]() |
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
|
|
|
|
|
|
#5 (permalink) |
|
Membre Confirmé
![]() |
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. |
|
|
|
|
|
#6 (permalink) |
![]() |
je viens de tester sous firefox. Lors d'un reload de la page, j'ai dans l'ordre les évenements suivants:
event:init called25199001Le 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
|
|
|
|
|
|
#7 (permalink) |
|
Membre Confirmé
![]() |
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 |
|
|
|
|
|
#8 (permalink) |
|
Membre Confirmé
![]() |
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. |
|
|
|
|
|
#9 (permalink) |
![]() |
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
|
|
|
|
|
![]() |
![]() |
||
Applet demarée plusieurs fois
|
||
| Outils de la discussion | |
|
|