- - PR -
SoundAPIのLineの内部スレッドが停止しない
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-09-12 20:39
問題点:TargetDataLineを使用するとexitを使わないとプログラムが終了しない
OS:WindowsXP HomeEdition JDK:1.4.2_05 はじめまして。 JAVA Sound API の TargetDataLine を使用して、 音声を取り込みたく考えています。 いろいろ調べ、音声の取り込みには成功したのですが、 Lineを、AudioSystemから得たり、startしたりすると、 どうやら内部でスレッドが作成されているようで、 そのスレッドはLineをcloseしても、stopしても消えることがありません。 試しにnullを代入してからgcしてみましたが、消えません。 そのためプログラムが終了してくれないのです。 JavaSoundDemoのソースを自分なりに解読してみましたが、 最終的にSystem.exitで処理を終了しているようでした。 マイクのようなクラスをつくりたいと思っているので、 できれば、exitによる終了は避けたいのです。 皆様のご教授をいただければ幸いです。
| ||||
|
投稿日時: 2004-09-12 23:45
かずささん、こんにちは。
かずささん正統派ですね。 System.exit()を使いたくない気持ちわかります。 この問題は、Java 2 SDK 1.3のときには既にありました。 なんか有名な問題のようで、検索で見つかった結果を示します。 (汚いトリックですが。) http://www.jsresources.org/faq_misc.html より引用
| ||||
|
投稿日時: 2004-09-13 03:05
Kissingerさん。返答ありがとうございます。
すぐにでも試し、結果をお知らせしたいのですが、 PCがそれを許してくる状態にはないのです。 実行出来しだい、報告させていただきますが、 直すのに時間がかかりそうなので、 さきにお礼をと思い書き込ませていただきました。 どうもありがとうございます。 英語サイトは見逃してました。 これからはそちらもよく見てから質問させていただきます。 お手数おかけしました。 | ||||
|
投稿日時: 2004-09-13 19:23
試してみたところ、うまくいきました。
これでなんとかなりそうです。 ありがとうございました。 あとどうやら既出の内容だったようで、 スレッド全般の停止の話として扱われていました。 過去スレは一通り見たつもりだったのですが、甘かったようです。 お手を煩わせてすいません。 | ||||
1
