3

私は次の状況を持っています。マシンにはFritz ISDNカードがあります。このデバイスのウェーブ アウトで特定のウェーブ ファイルを再生するプロセスがあります ( ISDN接続は起動時に確立され、永続化されます)。シナリオは簡単です。必要なときはいつでもwaveOutWrite()、以前に開いた wave デバイスでプロセスが呼び出され (もちろん、すべて問題なく初期化されます)、コールバック関数はMM_WOM_DONEmsg が再生が終了したことを知るのを待ちます。

ただし、数日後 (プロセスにもマシンにも何も変更はありません) 、波が数秒間続くにもかかわらず、MM_WOM_DONE呼び出しの直後にメッセージが届きます。waveOutWrite()ここでもエラーは報告されません。ファイルは再生されたように見えますが、長さは 0 でした (実際にはそうではありません)。また、プロセスによって呼び出されなかったと確信してwaveOutReset()います(上記のメッセージの送信もトリガーされます)。過去に奇妙な問題がいくつかありましたが、TAPIドライバーを再インストールするだけで解決しました。今回は何らかの理由でそれをもう一度実行するのは問題があり、より分析的なアプローチを試みています:)。このような動作を引き起こす可能性のある提案はありますか? 多分ISDN 回線の反対側に何かありますか?

4

3 に答える 3

3

あなたの説明に基づいて、あなたは非同期で演奏しています。その間、wav ファイルのバッキング メモリがクリーンアップされていませんか?

于 2008-09-24T19:38:03.403 に答える
2

この件について Google で検索する時間はあまりありませんが、Larry Osterman または Raymond Chen が同様の状況についてブログに書いていることは知っています。

この質問がまだ開いているかどうかを確認する時間ができたら、後でもう一度確認します。

于 2008-08-14T14:43:52.520 に答える
0

音が出ない時の戻り値は?バッファーが処理されたことをドライバーが OS に誤って報告していることを示す MMSYSERR_NOERROR を受け取った場合。

WAVファイル自体が変わっていませんか?このブログ エントリは、メタデータに対してかなり詳細な検証が行われていることを示しています。

于 2008-08-18T11:33:56.293 に答える