[Java JMF] <résolu> Un player qui passe à null tout seul...

<résolu> Un player qui passe à null tout seul... [Java JMF] - Java - Programmation

Marsh Posté le 25-08-2005 à 17:27:03    

Salut encore! [:dawa]
 
un truc que je pige pas:
dans une méthode d'une classe qui hérite de Panel, j'ai ce code:
 

Code :
  1. Player player = Manager.createPlayer(temp.toURL()); // temp is a File
  2.     // Add ourselves as a listener for a player's events
  3.     player.addControllerListener(this);
  4.     player.start();
  5.     has_started = true;
  6.     System.out.println((player==null)?"NULL PLAYER!":"player started successfully" );


 
et le player est bien créé.
Pourtant dans la méthode qui est propre au ControllerListener, et alors que j'ai ca:
 

Code :
  1. public synchronized void controllerUpdate(ControllerEvent event) {
  2.   System.out.println(event.toString()+"..." );
  3.   System.out.println("has_started "+(has_started?"true":"false" ));
  4.   // If we're getting messages from a dead player,  
  5.   // just leave
  6.   if (player == null) return;
  7.   System.out.println("OK!" );
  8.   // When the player is Realized, get the visual  
  9.   // and control components and add them to the Applet
  10.   if (event instanceof RealizeCompleteEvent) {...}
  11. ...

 
 
et le programme ne rentre jamais dans la boucle car le player vaut toujours null... J'ai pourtant vérifié et je ne change jamais sa valeur après l'avoir créé.
 
Comme vous le voyez j'écris les évènements qui passent dans la console et ca donne ca:
 


file:/C:/DOCUME~1/DesfourG/LOCALS~1/Temp/tempVideo51078.mpg is the path to the v
ideo
javax.media.TransitionEvent[source=com.sun.media.content.video.mpeg.Handler@1542
a75,previous=Unrealized,current=Realizing,target=Started]...
has_started false
player started successfully
javax.media.DurationUpdateEvent[source=com.sun.media.content.video.mpeg.Handler@
1542a75,duration=javax.media.Time@1f6226...
has_started true
javax.media.RealizeCompleteEvent[source=com.sun.media.content.video.mpeg.Handler
@1542a75,previous=Realizing,current=Realized,target=Started]...
has_started true
javax.media.TransitionEvent[source=com.sun.media.content.video.mpeg.Handler@1542
a75,previous=Realized,current=Prefetching,target=Started]...
has_started true
javax.media.PrefetchCompleteEvent[source=com.sun.media.content.video.mpeg.Handle
r@1542a75,previous=Prefetching,current=Prefetched,target=Started]...
has_started true
javax.media.StartEvent[source=com.sun.media.content.video.mpeg.Handler@1542a75,p
revious=Prefetched,current=Started,target=Started,mediaTime=javax.media.Time@64e
a66,timeBaseTime=javax.media.Time@158f9d3]...
has_started true
javax.media.EndOfMediaEvent[source=com.sun.media.content.video.mpeg.Handler@1542
a75,previous=Started,current=Prefetched,target=Prefetched,mediaTime=javax.media.
Time@18f1d7e]...
has_started true
 


 
C'est troublant! D'un côté mon player vaut toujours null et en même temps j'arrive jusqu'à EndOfMediaEvent (en passant par StartEvent)! Je ne comprends pas... [:goueg]  et vous?


Message édité par goueg le 25-08-2005 à 17:41:55
Reply

Marsh Posté le 25-08-2005 à 17:27:03   

Reply

Marsh Posté le 25-08-2005 à 17:41:11    

Hop! Suffisait de poster pour trouver la solution (mais promis, j'avais testé).
 
Mon 1er code était dans un "if", et j'ai écris "Player player = ..." au lieu de "player = ...". Du coup le player déclaré au niveau du Panel n'était pas créé, lui...
 
Erreur toute bête, désolé [:dawa]

Reply

Marsh Posté le 26-08-2005 à 00:12:31    

ton

System.out.println((player==null)?"NULL PLAYER!":"player started successfully" );

etait particulierement crétin, puisque s'il avait été null, cette ligne aurait jamais été executée [:dawa]


Message édité par the real moins moins le 26-08-2005 à 00:12:42

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 26-08-2005 à 10:25:06    

cela dit il me paraissait tout aussi illogique que le player vale null après, donc... j'ai essayé quoi :d

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed