[VB.NET]Windows7で非同期Da_Play
| 投稿日 | : 2010/07/02 18:05 |
| 投稿者 | : いしい |
| 参照先 | : |
| 件名 | : Re: [VB.NET]Windows7で非同期Da_Play |
| 投稿日 | : 2010/07/28 15:50 |
| 投稿者 | : いしい |
| 参照先 | : |
考えられる対応をすべて試行したのですが、
何をしてもダメだったので、
Microsoftのサポートに問合せて、
パッチを適用したところ、
なんとか解決に至りました。
(まだ検証中ですが、今のところ安定しています。)
お騒がせしました。
『Windows 7 または Windows Server 2008 R2 で
オーディオをキャプチャおよび再生するアプリケーションが応答を停止する』
ttp://support.microsoft.com/kb/981679/ja
何をしてもダメだったので、
Microsoftのサポートに問合せて、
パッチを適用したところ、
なんとか解決に至りました。
(まだ検証中ですが、今のところ安定しています。)
お騒がせしました。
『Windows 7 または Windows Server 2008 R2 で
オーディオをキャプチャおよび再生するアプリケーションが応答を停止する』
ttp://support.microsoft.com/kb/981679/ja
| 件名 | : Re: [VB.NET]Windows7で非同期Da_Play |
| 投稿日 | : 2010/07/12 18:42 |
| 投稿者 | : 管理人 |
| 参照先 | : |
>非同期の場合、発声が終了する前に、スレッドが先に終了してしまうのでしょうか?
これは、プログラムの書き方次第かと。
>PlaySyncで実装すると、PlaySyncで処理が返ってこなり、アプリケーション自体ハングアップしてしまうんです・・・。
まずは、こちらの原因を調べてからが良いかと思われます。
ちなみに、管理人はVBは全くわかりません(^^;)
これは、プログラムの書き方次第かと。
>PlaySyncで実装すると、PlaySyncで処理が返ってこなり、アプリケーション自体ハングアップしてしまうんです・・・。
まずは、こちらの原因を調べてからが良いかと思われます。
ちなみに、管理人はVBは全くわかりません(^^;)
| 件名 | : Re: [VB.NET]Windows7で非同期Da_Play |
| 投稿日 | : 2010/07/11 20:32 |
| 投稿者 | : いしい |
| 参照先 | : |
管理人様、ご回答ありがとうございます。
PlaySyncで実装すると、PlaySyncで処理が返ってこなり、アプリケーション自体ハングアップしてしまうんです・・・。
それで、非同期タイプを使用するに至ります。。
非同期の場合、発声が終了する前に、
スレッドが先に終了してしまうのでしょうか?
もしそうだとすると、回避方法は、ありますか?
※ちなみに、明示的な解放は行なっていません。
PlaySyncで実装すると、PlaySyncで処理が返ってこなり、アプリケーション自体ハングアップしてしまうんです・・・。
それで、非同期タイプを使用するに至ります。。
非同期の場合、発声が終了する前に、
スレッドが先に終了してしまうのでしょうか?
もしそうだとすると、回避方法は、ありますか?
※ちなみに、明示的な解放は行なっていません。
| 件名 | : Re: [VB.NET]Windows7で非同期Da_Play |
| 投稿日 | : 2010/07/07 10:38 |
| 投稿者 | : 管理人 |
| 参照先 | : |
AquesTalk.dllは一応スレッドセーフに作っているのですが・・・
なぜマルチスレッドで AquesTalkDa_PlaySync()でなく非同期タイプ(発声終了を待たずに関数から抜ける)のAquesTalkDa_Play()を使うのかわかりませんが、
発声が終了する前にスレッドが終了するなどして、H_AQTKDAハンドルが解放されたりしてませんか?
なぜマルチスレッドで AquesTalkDa_PlaySync()でなく非同期タイプ(発声終了を待たずに関数から抜ける)のAquesTalkDa_Play()を使うのかわかりませんが、
発声が終了する前にスレッドが終了するなどして、H_AQTKDAハンドルが解放されたりしてませんか?
WindowsXP(.Netframework3.5)で作成したアプリを、
そのままWindows7(同fw)で動作させたところ、
マルチスレッドでキックしたAquesTalkDa_Playのところで、
正常終了(戻り値0)するのですが、音が再生されないことがあります。
何か回避策がないでしょうか?
ちなみにマルチスレッドは、「Backgroundworker」で実装しています。