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をパッケージに含められる場合は、検討していただければと思います。
AB5における、AB424サンプルのCDPlayerの動作について
> 次回のバージョンアップで対処いたしますので、今しばらくお待ちください。
ありがとうございます。
CP2で、424のサンプルのCDPlayerで、演算正しく行われているのを確認しました。
あとこのサンプルで問題なのは、トラックバーを右端までスライドしても、曲の終わりと同期していないことだけですね。
これは、最初に書いた
Dim dwWk As Dword '動作安定化の為のダミー
mciSendCommand(mop.wDeviceID, MCI_STOP, MCI_NOTIFY, dwWk) '停止コマンド追加
を、
bErr=mciSendCommand(mop.wDeviceID,MCI_SEEK,MCI_TO,mciSeekParms)
の前に追加すると完璧な同期となります。
コードサンプルとして収録されるのであれば、検証していただければと思います。
ありがとうございます。
CP2で、424のサンプルのCDPlayerで、演算正しく行われているのを確認しました。
あとこのサンプルで問題なのは、トラックバーを右端までスライドしても、曲の終わりと同期していないことだけですね。
これは、最初に書いた
Dim dwWk As Dword '動作安定化の為のダミー
mciSendCommand(mop.wDeviceID, MCI_STOP, MCI_NOTIFY, dwWk) '停止コマンド追加
を、
bErr=mciSendCommand(mop.wDeviceID,MCI_SEEK,MCI_TO,mciSeekParms)
の前に追加すると完璧な同期となります。
コードサンプルとして収録されるのであれば、検証していただければと思います。