Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wie bekomme ich einen Thread angehalten der blokiert ist?
ich habe um einen mp3Player zu schreiben den JLayer benutzt dieser blokierte mir durch seine Methode x.play();
meine Applikation darum hab ich die Methode in einen Thread verpackt.
Nun kann ich, da dieser Thread nun halt auch blokiert ist, nicht darauf prüfen lassen ob dieser interrupted wurde.
Die Methode Thread.stop(); ist deprecated.
Vielleicht hat ja einer mal ne Idee wie ich den Thread gestoppt bekomme.
Guck Dir doch mal an, was Sun dazu in der API schreibt!
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Thread.html#stop() hat gesagt.:
Deprecated. This method is inherently unsafe. Stopping a thread with Thread.stop causes it to unlock all of the monitors that it has locked (as a natural consequence of the unchecked ThreadDeath exception propagating up the stack). If any of the objects previously protected by these monitors were in an inconsistent state, the damaged objects become visible to other threads, potentially resulting in arbitrary behavior. Many uses of stop should be replaced by code that simply modifies some variable to indicate that the target thread should stop running. The target thread should check this variable regularly, and return from its run method in an orderly fashion if the variable indicates that it is to stop running. If the target thread waits for long periods (on a condition variable, for example), the interrupt method should be used to interrupt the wait. For more information, see Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?.
wie die anderen schon sagten, ist erstmal kein Mp3 Problem, sondern eher java abc.
Was hindert dich z.b den Thread über eine extra variable abzubrechen sobald diese
"false" ist ?. Ich habe auch nie JLayer so benutzt wie es die Jungs gerne hätten über
das SPI.
Ja das es kein Layer Porblem ist da bin ich auch schon hinter gekommen.
Ich habs auch probiert mit dem Voschlag den Thread in seiner run-Methode per isInterrupted von aussen mit interrupt abzubrechen oder den ohne den Thread zu beachten mit AdvancedPlayer.stop() anzuhalten wobei ich eine NullPointerException bekomme.
Ich habe mir einen eigenen Abstarkten Player geschrieben der alles IO Mässig abkoppelt,
er ist von JavaAutdioDevice abgeleiet soweit ich das gerade im Kopf habe.
Ich weiss auch nicht ob jlayer noch probleme damit hat z.b das ende einer Mp3 richtig mitzubekommen.
Sowas hab ich alles selbst geprüft.
Finds nicht sehr witzig das ich banned bin. Aber gut kann ich nix gegen machen.
Hoffe nur das ich in 1-2 Stunden wieder frei bin dann bin ich zuhause und das läuft alles vernünftig.
Kannst vielleicht den OPs sagen!!!
Naja das erscheint mir zuviel Arbeit nur um rum zu spielen.
Hast du denn schonmal was von dem Tritonus-dingen gehört? Kannst du dazu was sagen?