2009-03-13 15 views
0

数ヶ月前、私が作業しているMFCアプリケーションにオーディオ録音を追加しました。これは十分に簡単で、1〜2時間後に私のPCといくつかの顧客テストマシン(1つはXPを実行し、もう1つはVista)で作業していました。最近では、テストマシンの1つがアップグレードされ、現在は録画機能が動作しません。mciSendStringから奇妙なエラーが返されました。

記録を開始するための基本的なコードです。..

正常に動作するように見える
mcierr=mciSendString("open new type waveaudio alias mysound",tmpstr,80,NULL); 
mcierr=mciSendString("set mysound time format ms bitspersample 8 samplespersec 11025",tmpstr,80,NULL); 
mcierr=mciSendString("record mysound",tmpstr,80,NULL); 

。次のコードの記録を停止するために実行される..「セーブmysound C:\ filename.wav」とき

mcierr=mciSendString("stop mysound",tmpstr,80,NULL); 
mcierr=mciSendString("save mysound C:\\filename.wav",tmpstr,80,NULL); 
mcierr=mciSendString("close mysound",tmpstr,80,NULL); 

次のエラーが発生した命令が送信されます。返されるエラーは..

MCI Error A parameter or value was specified twice. Only specify it once. 

です。しかし、私が送信しているものにはエラーはありません。そのエラーは意味をなさないものです。 PCがサポートしていないフォーマットを使用してプログラムが記録しようとしているため、エラーが発生する可能性はありますか?お時間を

おかげで

イアン

+0

私が持っていた問題についてのヒントを教えてくれました。ありがとう! –

答えて

0

OK私は、これに対する解決策を見つけることができました。コード内のこの行..

私の開発PCではXPが動作していますが、いくつかのテスト用PCの実行中のXPとそれらのすべてでVistaを実行しているとエラーが発生します。ファイル名自体は、このような引用符で置かれている場合、エラーがしかし、離れて行く...

mcierr=mciSendString("save mysound "C:\\filename.wav"",tmpstr,80,NULL); 

今のコードは、それがテストされているすべてのXPとVistaのPCの上で正常に動作します。

イアン

0

細かく動作させるには詳細が必要です。 ファイル名の前後に二重の""を見てください:

mcierr=mciSendString("save mysound ""C:\\filename.wav""",tmpstr,80,NULL); 

これも結構です:

mcierr=mciSendString(@"save mysound ""C:\filename.wav""",tmpstr,80,NULL); 

これらの二重引用符でコードが今の私のWindows 7上で動作しますマーク。

関連する問題