[リストへもどる]
一括表示
タイトルVB用サンプルにて
記事No1453
投稿日: 2004/05/05(Wed) 15:00
投稿者J
初めまして。
東京で学生をやっておりますJと申します。
このたび、WAVをMP3にエンコードする機能を、
VBにて開発中のソフトに付けたくて、ここのソースを
参考にしたいと思っています。
動作確認のため、とりあえず実装するだけの場合、
変更する部分は、ファイル名の指定の部分だけですよね?
試しに、ファイル名指定だけを変えて動かしてみたのですが
イミディエイトウィンドウが開き、
CStr(lngCurrentFrame) & "/" & CStr(lngTotalFrame)
ここの部分のlngCurrentFrameだけが増えていき、
lngTotalFrameは0のまま、ひたすらカウントし続けて
終わる気配がありませんでした。。。
なにか、他に変えなくてはいけない部分があるのでしょうか。
それとも、VBでのエンコードには
こんなに時間のかかるものなんでしょうか。
なにか解決の糸口、説明不足な点がありましたら、
ご教授ください。

開発環境は WindowsXP VisualStudio(Basic)6.0 です。

タイトルRe: VB用サンプルにて
記事No1457
投稿日: 2004/05/08(Sat) 20:57
投稿者   <kei-i@sams.co.jp>
このサンプルは所定のディレクトリにgogo.dllがある必要がありますが、該当す
る場所にgogo.dllはありますでしょうか?

※「所定のディレクトリ」はVBのヘルプの「DLL, Visual Basic から DLL を直
接呼び出すときの注意」の「プロシージャを含む DLL の指定」あたりを参照

※VBのメニューから[実行-開始]した場合、「実行可能ファイル (.exe) を含む
ディレクトリ」や「カレントディレクトリ」がどこになるのかよくわかりませ
んが

Command1_Click関数の最初の方にある
On Error Resume Next
をコメントアウトすると、所定のディレクトリにgogo.dllがないとエラーになる
ので、わかりやすいかも。

タイトルRe^2: VB用サンプルにて
記事No1461
投稿日: 2004/05/10(Mon) 14:20
投稿者J
返信ありがとうございます。
ご指摘の箇所を、一通り読んでみました。

> このサンプルは所定のディレクトリにgogo.dllがある必要がありますが、該当する場所にgogo.dllはありますでしょうか?

DeclareでのDLL呼び出しは、カレントディレクトリから優先的に参照されていくのですね。知りませんでした。
さっそく、プロジェクトファイルのあるフォルダにDLLを置いて、直接そこを指定して呼び出し、実行してみました。

すると、当初の問題は解決したのですが、解析エラーのメッセージが出てしまい、まだうまくいかないようです。。。
ソースを見る限り
lngWin32ApiResultCode = MPGE_detectConfigure
このパラメータ解析の部分で、ME_NOERRが得られていないようです。
デバッグモードで、MPGE_detectConfigureの値を表示させて見たところ、入出力周波数が正しくないというところまでわかりました。
しかし、肝心の入出力周波数が正しくないとは、どういうことを
言っているのか、わかりません。
Call MPGE_setConfigureLong(MC_OUTFREQ, 44100, 0)
この、サンプル周波数の指定と、入力に呼び出しているファイル
となにか関係があるのでしょうか?
是非、ご回答頂けましたら、幸いです。

タイトルRe^3: VB用サンプルにて
記事No1463
投稿日: 2004/05/10(Mon) 20:30
投稿者   <kei-i@sams.co.jp>
現状の午後の仕様上、入力するwavファイルの周波数と出力するmp3ファイルの周
波数が同じである必要があります。というわけで、入力周波数が44100Hzじゃな
い場合に MPGE_setConfigureLong(MC_OUTFREQ, 44100, 0) をすると
MPGE_detectConfigure でエラーになります。そのあたり、ご確認ください。

ちなみに、MPGE_setConfigureLong(MC_OUTFREQ, ..., ..) という設定をしない
場合、出力周波数は入力周波数と同じになります。

なお、出力するmp3ファイルの周波数16,22.05,24,32,44.1,48KHzのいずれかであ
る必要があります。これは、mpeg1, mpeg2の仕様です。mpeg2.5だと、もうちょっ
と低い周波数まで対応していますが、午後はmpeg2.5に非対応です。