Из 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы