Из wav файла вывести график на форму - VB
Формулировка задачи:
Очень нужна помощь, на форме есть кнопки нужно чтобы по нажатию кнопки выводился график из wav файла. файл примерно длительностью 1 сек (не важно вообщем то какой). главное чтобы выводился график и чтобы на нем можно было смотреть значения, если он при этом еще и динамический будет то вообще идеально.
Решение задачи: «Из wav файла вывести график на форму»
textual
Листинг программы
- Option Explicit
- Dim a As Integer: Dim i As Long: Dim xl As Long: Dim yl As Long: Dim x1l As Long
- Dim y1l As Long: Dim xp As Long: Dim yp As Long: Dim x1p As Long: Dim y1p As Long
- Dim dat As Long: Dim b As Long: Dim filename As String
- Private Sub Command1_Click() 'Функция рисования графика
- Cls 'Чистим экран
- filename = Text1.Text
- If Dir(filename) = "" Then MsgBox "Файл не найден!": Exit Sub
- Open filename For Binary As #1 ' Открываем звуковой файл
- dat = 0: b = 1
- sdf:
- Get #1, b, dat
- If dat = &H61746164 Then GoTo qwert
- b = b + 4: GoTo sdf
- qwert:
- xl = 0: yl = 0: xp = 0: yp = 0
- For i = 0 To FileLen(filename) Step 4
- Get #1, i + b + 4, a 'Читаем из файла одно значение левого стереоканала
- x1l = Int(Form1.Width / FileLen(filename) * i)
- y1l = Int(Form1.Height / 65536 * (32768 + a))
- Line (xl, yl)-(x1l, y1l), vbBlue ' Рисуем синюю линию от предыдущего к текущему значению
- ' левого стереоканала
- xl = x1l
- yl = y1l
- Get #1, i + b + 6, a 'Читаем из файла одно значение правого стереоканала
- x1p = Int(Form1.Width / FileLen(filename) * i)
- y1p = Int(Form1.Height / 65536 * (32768 + a))
- Line (xp, yp)-(x1p, y1p), vbRed ' Рисуем красную линию от предыдущего к текущему значению
- ' правого стереоканала
- xp = x1p
- yp = y1p
- DoEvents
- Next i
- Close #1 ' Закрываем звуковой файл
- End Sub
- Private Sub Command2_Click() 'Функция очистки формы
- Cls
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д