Робота зі звуком в VB, Basic, Програмування, статті

В цій статті я знайшов дуже багато корисного і цікавого! Сподіваюся і іншим читачам вона здасться не менш цікавою! А тепер стаття (Все, що нижче, написано автором):

Отже, код модуля для програвання звуку:
‘————————————————————

‘ Робота зі звуком
‘————————————————————

Option Explicit

‘Функції та константи для програвання звуків. Декларації.
Declare
Function sndPlaySound Lib
"winmm.dll" Alias "sndPlaySoundA"
_
(ByVal
lpszSoundName As String, ByVal
uFlags As Long) As
Long
Declare
Function sndStopSound Lib
"winmm.dll" Alias "sndPlaySoundA"
_
(ByVal
lpszNull As Long, ByVal
uFlags As
Long) As Long

‘Звук відтворюється синхронно, і функція не повертає _
управління до закінчення його програвання.

Global
Const SND_SYNC = &H0

‘Звук відтворюється асинхронно, функція повертає управління
_
відразу після початку відтворення.

Global
Const SND_ASYNC = &H1

‘Для припинення відтворення необхідно викликати sndPlaySound () _

c NULL в якості аргументу-імені файлу

‘Якщо зазначений файл відсутній, функція неделает нічого.
Global
Const SND_NODEFAULT = &H2

‘Параметр SoundName вказує на звук, образ якого вже _
знаходиться в оперативній пам’яті.
Global
Const SND_MEMORY = &H4

‘ Відтворення звуку повторюється до тих пір, поки не буде _
викликана функція sndPlaySound () c NULL в Як
Global
Const SND_LOOP = &H8

‘Параметра IpszSoundName. Для роботи цього прапора необхідно _
встановити також прапор SND_ASYNC.

‘Якщо звук вже відтворюється, функція не перериває його _
відтворення, а негайно повертає FALSE.

Global
Const SND_NOSTOP = &H10

Function
NoiseGet(ByVal FileName) As String
‘————————————————————

‘ Завантаження звуку в строкову змінну.
‘————————————————————

Dim
buffer As String
Dim
f As Integer
Dim
SoundBuffer As
String

   On
Error GoTo NoiseGet_Error

    buffer = Space$(1024)

   
SoundBuffer = ""
   
f = FreeFile
    Open
FileName For Binary
As f
    Do
While Not EOF(f)
      
Get #f,
, buffer    ‘ Load in 1K chunks
       
SoundBuffer = SoundBuffer & buffer
  
Loop
  
Close f

   
NoiseGet = Trim$(SoundBuffer)
Exit
Function

NoiseGet_Error:
   
SoundBuffer = ""
  
Exit Function
End
Function

Sub
NoisePlay(SoundBuffer As String,
ByVal PlayMode As
Integer)
‘————————————————————

‘ Програвання звуку завантаженого в пам’ять з допомогою функції

NoiseGet().
‘————————————————————

Dim
retcode As Integer

   If
SoundBuffer = "" Then Exit Sub

    ‘
Stop any sound that may currently be playing.
   
retcode = sndStopSound(0, SND_ASYNC) ‘ код для припинення звуку

   ‘
PlayMode should be SND_SYNC or SND_ASYNC
    ‘ програвання звуку
   
retcode = sndPlaySound(ByVal
SoundBuffer, PlayMode Or SND_MEMORY)

End
Sub

‘————————————————————

‘ Приклади застосування
‘————————————————————

‘ ‘Визначення та завантаження звуку

‘ 
wavFinal = NoiseGet(App.Path & "\" &
"finalrealty.wav")


‘ код для припинення звуку (Мало Чи, грав раніше)
‘ 
NoisePlay 0, SND_ASYNC
‘ Програвання звуку
‘ 
NoisePlay wavFinal, SND_ASYNC

Хочу звернути вашу увагу на константи.

Цей модуль я знайшов у вихідних текстах якийсь програми, взятої на одній із сторінок в Інтернеті, трошки його підкоригував і написав все коментарі.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*