• 締切済み

DirectShowでのMP3の再生時間について

Waveファイルを固定ビットレートと変動ビットレートの両方でMP3に圧縮したのですが、再生時間を(IID_IMediaSeeking::GetStopPosition)で取得したところ、固定は実際の時間でしたが変動の場合半分程度少ない時間が得られました。 でもWindows画面で、これらのMP3ファイルを右クリックしてショートカットを表示させた場合は両方共同じ時間が表示されました。 変動の場合も実際の再生時間を得るために、どのようにすれば良いか教えてください。 再生スライダーを作成しているのですが、指針の位置表示が右の端まで、たどりついた、にも、かかわらず、まだ再生が続いている不具合が発生しています。 これは変動の場合であって固定の場合は正常に再生と指針が一致しています。 VC++で開発しています。

みんなの回答

  • jk39
  • ベストアンサー率54% (366/670)
回答No.1

コードを書いて試したわけではないので、 あくまで憶測で指摘するだけにとどめますが、 タイムフォーマットは何を指定していますか? IMediaSeeking::GetTimeFormat()で取れてくるGUIDが、 TIME_FORMAT_MEDIA_TIME以外だと、固定と変動で違ってきそうです。 もし、TIME_FORMAT_MEDIA_TIMEだったなら、 補足などお願いします。

7777777v
質問者

お礼

TIME_FORMAT_MEDIA_TIMEこれがデフォルトのようです。 ありがとうございました。

7777777v
質問者

補足

回答ありがとうございます、タイムフォーマットは記述していません。 TIME_FORMAT_MEDIA_TIMEですか、確認してみます。 でなければSetTimeFormat()で設定してみます。 ありがとうございました。

関連するQ&A