Visual Basic 中学校 > Visual Basic サンプル集 > Visual Basic サンプル集目次 >
サウンドの再生位置を取得する
この記事が対象とするファイル形式
mp3 | (*.mp3) | ○ | 対象ですが、古い環境では扱えない場合があります。 |
wave | (*.wav) | ◎ | 対象です。 |
midi | (*.mid) | ◎ | 対象です。 |
この例ではButton1をクリックするとC:\Test.mp3を再生する。Button2をクリックすると停止する。 再生中にButton3をクリックすると現在の再生位置を表示する。
メモ:再生中でなくても「open」していれば動作可能です。
メモ:mp3, waveの場合は再生位置をミリ秒単位で取得します。midiのときはどのような単位なのか不明です。
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer |
'■再生 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim FileName As String = "C:\Test.mp3" Call mciSendString(String.Format("open ""{0}"" alias MySound", FileName), "", 0, 0) Call mciSendString("play MySound", "", 0, 0) End Sub |
'■再生終了(完全停止) Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Call mciSendString("stop MySound", "", 0, 0) Call mciSendString("close MySound", "", 0, 0) End Sub |
'■現在の再生位置を取得 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim Buffer As String = New String(Chr(0), 255) Dim Position As Double Call mciSendString("status MySound position", Buffer, Len(Buffer), 0) Position = Val(Buffer) MsgBox("現在の再生位置:" & Position) End Sub |