2010年03月22日

DirectSound+VB2008 アプリ制作

DirectSound+VB2008 アプリ制作

先日DirectX・DirectSound を利用したVisualBasic2008 のアプリケーションを制作しました。

利用するにあたり、川田さんがVectorにアップしているdll(VB用DirectSound活用モジュール)を使わせていただくことで、短時間に完成することができました。

http://www.vector.co.jp/soft/win95/prog/se050103.html

今回のサンプルは、wavファイルの再生周波数と再生期間を制御するものでした。
その中で再生周波数の制御に上記dllを利用しました。

VectorにアップされているサンプルはVisualBasic6.0用に書かれているので一部記述の修正が必要です。

(例)
Declare Function dsCreateDSB Lib "VbDSnd2" (ByRef lpRIFF As Byte, ByVal bufCount As Short) As Integer


今回のサンプルでは高速で音源のOn/off を行ってみましたが、きれいに聞くためにはポイントがありました。

それは ・・・ 使用する関数は

 dsPlya ・ dsStop ではなく 
 
 dsSetVolume(handle, 0)  ・ dsSetVolume(handle, -10000)


を使うほうが良さそうだということです。


また、高速でOn/off するための時間管理は Windows API の
 
 QueryPerformanceCounter ・ QueryPerformanceFrequency

を使用することにより、数msec単位の制御が可能です。

(例)
  Declare Function QueryPerformanceCounter Lib "Kernel32" (ByRef X As Long) As Short

  Public Sub waitQuery(ByVal tmpTime As Long)
    Call QueryPerformanceCounter(curStartTime) '開始時刻
    Call QueryPerformanceCounter(curEndTime)     '終了時刻

    Do While (((curEndTime - curStartTime)) <= tmpTime)
      Call QueryPerformanceCounter(curEndTime)
    Loop
  End Sub

上記の例は相対的に時間管理しています。
時間を知りたい場合は QueryPerformanceFrequency(Freq) を使用して
パフォーマンスカウンタの周波数を取得する必要があります。



同じカテゴリー(Windowsアプリ開発)の記事
ノートPC充電80%制御
ノートPC充電80%制御(2017-10-21 00:33)


上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
DirectSound+VB2008 アプリ制作
    コメント(0)