AB5における、AB424サンプルのCDPlayerの動作について

ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
返信する
メッセージ
作成者
MUGI

AB5における、AB424サンプルのCDPlayerの動作について

#1 投稿記事 by MUGI »

Sub MainWnd_PlayButton_Click()内において、
'トラックバーの範囲を設定
Dim nMax As Integer

nMax=(MCI_MSF_MINUTE(msp.dwReturn)*60 + MCI_MSF_SECOND(msp.dwReturn)) * 10
やはり、nMaxは、AB424と同じく、異常な値となります。

SendMessage(hTrackBar,TBM_SETRANGE,0,MAKELONG(0,nMax)) を
SendMessage(hTrackBar,TBM_SETRANGE,0,MAKELONG(0,(MCI_MSF_MINUTE(msp.dwReturn)*60 + MCI_MSF_SECOND(msp.dwReturn)) * 10)) にすると問題ありません。
AB424でのバグがそのままのようです。

また、これはMCI側の問題だと思いますが、トラックバーを移動しても曲の最初からしか再生されません。
動作の安定化の為に一度止めると正しく動きます。
Dim dwWk As Dword '動作安定化の為のダミー
mciSendCommand(mop.wDeviceID, MCI_STOP, MCI_NOTIFY, dwWk) '停止コマンド追加
を、
bErr=mciSendCommand(mop.wDeviceID,MCI_SEEK,MCI_TO,mciSeekParms)
の前に追加。
コードサンプルとして、CDPlayerをパッケージに含められる場合は、検討していただければと思います。
山本
Site Admin
記事: 535
登録日時: 2005年5月30日(月) 15:08
連絡する:

#2 投稿記事 by 山本 »

ご報告ありがとうございます。

厳密に型サイズを重視しすぎた仕様が原因で発生する不具合のようです。

必要に応じて、要求される型に暗黙的に変換し、このような問題を回避するための修正を行おうと思います。

次回のバージョンアップで対処いたしますので、今しばらくお待ちください。
MUGI

#3 投稿記事 by MUGI »

> 次回のバージョンアップで対処いたしますので、今しばらくお待ちください。
ありがとうございます。

CP2で、424のサンプルのCDPlayerで、演算正しく行われているのを確認しました。
あとこのサンプルで問題なのは、トラックバーを右端までスライドしても、曲の終わりと同期していないことだけですね。
これは、最初に書いた
Dim dwWk As Dword '動作安定化の為のダミー
mciSendCommand(mop.wDeviceID, MCI_STOP, MCI_NOTIFY, dwWk) '停止コマンド追加
を、
bErr=mciSendCommand(mop.wDeviceID,MCI_SEEK,MCI_TO,mciSeekParms)
の前に追加すると完璧な同期となります。
コードサンプルとして収録されるのであれば、検証していただければと思います。
返信する