Skip to content

Instantly share code, notes, and snippets.

@nirleka
Last active December 20, 2015 02:49
Show Gist options
  • Save nirleka/6059342 to your computer and use it in GitHub Desktop.
Save nirleka/6059342 to your computer and use it in GitHub Desktop.
VB 6 Timer control Windows Media Player. Bug, 2 Timer Tidak mau berhenti -> reset -> timer jalan dari nol tapi resume setelah reset.
Private Sub Form_Load()
'init form
'frekuensi awal
frekuensi = 0
'baris bikin graph, keknya ga bermasalah
FileSuaraUji(0) = "D:\Suara Uji\100.wav"
FileSuaraUji(1) = "D:\Suara Uji\200.wav"
FileSuaraUji(2) = "D:\Suara Uji\500.wav"
FileSuaraUji(3) = "D:\Suara Uji\1000.wav"
FileSuaraUji(4) = "D:\Suara Uji\2000.wav"
FileSuaraUji(5) = "D:\Suara Uji\4000.wav"
FileSuaraUji(6) = "D:\Suara Uji\6000.wav"
FileSuaraUji(7) = "D:\Suara Uji\8000.wav"
'windows media player init
WindowsMediaPlayer1.Visible = False
'disable timer
TimerMusik.Enabled = False
TimerOperasi.Enabled = False
End Sub
Private Sub Command1_Click()
'Tombol play
Command1.Enabled = False
WindowsMediaPlayer1.Settings.volume = 10
WindowsMediaPlayer1.URL = FileSuaraUji(frekuensi)
WindowsMediaPlayer1.Controls.Play
TimerMusik.Interval = 1000 'bakal jalan 10 detik
TimerOperasi.Interval = 12000 'delay 2 detik (12s - 10s)
'init dan start timer
TimerMusik.Enabled = True
TimerOperasi.Enabled = True
End Sub
Private Sub TimerMusik_Timer()
'dipanggil setiap 1 detik (operasi menaikan volume file)
If (WindowsMediaPlayer1.Settings.volume <> 100) Then
WindowsMediaPlayer1.Settings.volume = WindowsMediaPlayer1.Settings.volume + 10
Else
WindowsMediaPlayer1.Controls.Stop
TimerMusik.Enabled = False
End If
End Sub
Private Sub TimerOperasi_Timer()
'dipanggil setiap 12000, Operasi ganti file musik terus kalo udah mainin 8 file berhenti
'Fungsi ini dieksekusi setelah 12s, harusnya begitu stop langsung jalan lagi dari awal (reset timer)
'loop terus sampe 8 file suara di play
If (frekuensi < 8) Then
'ganti file frekuensi jika tombol stop tidak ditekan
If (Command3.Enabled) Then
frekuensi = frekuensi + 1
End If
'set WindowsMediaPlayer
WindowsMediaPlayer1.Settings.volume = 10
WindowsMediaPlayer1.URL = FileSuaraUji(frekuensi)
Command3.Enabled = True
WindowsMediaPlayer1.Controls.Play
Else
TimerOperasi.Enabled = False
TimerMusik.Enabled = False
frekuensi = 0
MsgBox "Operasi selesai"
End If
End Sub
Private Sub Command3_Click()
'Tombol stop di pencet
TimerOperasi.Enabled = False
TimerMusik.Enabled = False
WindowsMediaPlayer1.Controls.Stop
'gambar plotnya, intinya manipulasi control PictureBox
'gambar circle di graph sesuai dengan frekuensi (x) dan desibelnya (y)
'gambar gak error
Dim desibel, koordinatX, koordinatY, pixelX, pixelY As Integer
koordinatY = WindowsMediaPlayer1.Settings.volume
koordinatX = frekuensi + 1
pixelX = frekuensi * 1300 + 1800
Select Case koordinatY
Case 100
pixelY = 1 * 500
Case 90
pixelY = 2 * 500
Case 80
pixelY = 3 * 500
Case 70
pixelY = 4 * 500
Case 60
pixelY = 5 * 500
Case 50
pixelY = 6 * 500
Case 40
pixelY = 7 * 500
Case 30
pixelY = 8 * 500
Case 20
pixelY = 9 * 500
Case 10
pixelY = 10 * 500
End Select
picGrafik.Circle (pixelX, pixelY), 80, vbRed
'end operasi gambar lingkaran
'naikin frekuensi buat ganti file
frekuensi = frekuensi + 1
'tanda bahwa tombol stop diklik
Command3.Enabled = False
'nyalain lagi timer... VB WHY YOU DONT RESET TIMER
TimerOperasi.Enabled = True
TimerMusik.Enabled = True
End Sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment