- 締切済み
音声ファイル再生時のフリーズ
今、地図や音声で案内板を作ろうとしているのですが、 タイトルにもあるとおり音声ファイルを再生するとフリーズしてしまいます。 音声の再生にはmciSendString、sndPlaySoundを使用したのですが、両方フリーズします。 具体的に言うと・・・ 実行して音声を再生すると案内板が応答しなくなります。ただその際音は流れます。TRACEを入れてdebugしてたところ、どうやらmciSendStringを組み込んだ関数内の処理は終えてました(その関数内から呼び出した関数の処理も終えてました)。 その関数の処理を終えると次の処理に移らずに画面もフリーズしてしまいます。 使用した音声ファイルの大きさは2kBです。 開発環境はVistaでVC++.net 2003を使っています。 なにか気になる点でもいいので宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8812/19983)
回答No.1
お礼
お礼が遅れ、そのうえ質問表現が不適切であり申し訳ありません。 正しくは「フリーズ」ではなく例えばウィンドウをドラッグできないなどメインスレッド?が応答しなくなります。 ただ別スレッドに記述したプログラムは引き続き処理できていました。 コールバックは最初は指定していない(NULL)だったのですが、ダイアログに返すように設定しても変わらなく AfxBeginThreadを使って音声再生を別スレッドに記述したのですが、それでも変わらず、色々調べていくうちにデッドロックが起こっているかもしれないと思って改善中な段階です。 何か思い当たる点はありませんでしょうか?