Музыкальное сопровождение!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Музыкальное сопровождение!

Сообщение Max! » 09.04.2003 (Ср) 23:27

Как сделать что бы в проге играла музыка например заканчивается одна запись и начинается другая и так до бесконечности сменяя друг друга!? :shock:
Max!

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 10.04.2003 (Чт) 8:02

А какая музыка - MP3 или MIDI?
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 10.04.2003 (Чт) 16:18

С форматом *.wav! :?
Max!

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 10.04.2003 (Чт) 17:16

А, ну тогда не сложно. Сначала надо подготовить файлы с названием "Music[цифра от 1 до ...]". Предположим, таких файлов будет 5. Потом создаёшь новую форму, на него ставишь Microsoft Multimedia Control (далее - MMC). Потом пишешь:
Код: Выделить всё
Sub nextmusic()
Static f
f = f + 1'счётчик музыки
If f = 6 Then f = 1
End If
MMC.Command = "close"
compname = App.Path & "\Music" & f & ".wav"
MMC.Filename = compname
MMC.Command = "open"
MMC.Command = "play"
End Sub

Private Sub Form_Load()
MMC.Wait = True
MMC.Shareable = False
mmc.devicetype="WaveAudio"
nextmusic
End Sub

Private Sub MMC_Done(NotifyCode As Integer)
If MMC.Position = MMC.TrackLength Then'проверка, находимся ли мы в конце трека
MMC.Command = "close"
nextmusic
End If
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 10.04.2003 (Чт) 19:50

Где находится этот Microsoft Multimedia Control В понэли инструментов где находятся кнопки и тд... его нет! И куда нужно вставлять этот код:

Private Sub MMC_Done(NotifyCode As Integer)
If MMC.Position = MMC.TrackLength Then'проверка, находимся ли мы в конце трека
MMC.Command = "close"
nextmusic
End If

??? Help! Please! :x
Max!

Antonio401
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 01.04.2003 (Вт) 16:36

Сообщение Antonio401 » 10.04.2003 (Чт) 19:59

Код: Выделить всё
Sub nextmusic()
Static f
f = f + 1'счётчик музыки
If f = 6 Then f = 1
End If
MMC.Command = "close"
compname = App.Path & "\Music" & f & ".wav"
MMC.Filename = compname
MMC.Command = "open"
MMC.Command = "play"
End Sub

[/quote]

Тут End if не надо :lol:
VB -It's fantastic!

Изображение
Изображение

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 10.04.2003 (Чт) 22:53

Можешь подробно объяснить куда надо пихать этот код в кнопку или нет :

Sub nextmusic()
Static f
f = f + 1'счётчик музыки
If f = 6 Then f = 1
End If
MMC.Command = "close"
compname = App.Path & "\Music" & f & ".wav"
MMC.Filename = compname
MMC.Command = "open"
MMC.Command = "play"
End Sub


И где находится этот Microsoft Multimedia Control В понэли инструментов где находятся кнопки и тд... его нет! :evil: :x :shock: :x :cry: :?:
Max!

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 11.04.2003 (Пт) 14:23

Ну, во-первых MMC надо подключить к проекту. Делается это так: В меню Project выбираешь комманду Components. Там ищешь контрол Microsoft Multimedia Control и ставишь напротив него галочку. Потом нажимаешь ОК. Теперь MMC есть в панели инструментов. Кидаешь его на форму и всвойстве Name пишешь "MMC", а Visible ставишь на False.
Следующий код ставишь в событие Form_Load:
Код: Выделить всё
MMC.Wait = True
MMC.Shareable = False
mmc.devicetype="WaveAudio"
nextmusic

А вот этот - в событие MMC_Done:
Код: Выделить всё
If MMC.Position = MMC.TrackLength Then 'проверка, находимся ли мы в конце трека
MMC.Command = "close"
nextmusic

Теперь относительно nextmusic. Это - отдельная процедура, которая не относится ни к какому контролу. Её надо ставить в раздел (General):
Код: Выделить всё
Sub nextmusic()
Static f
f = f + 1'счётчик музыки
If f = 6 Then f = 1
MMC.Command = "close"
compname = App.Path & "\Music" & f & ".wav"
MMC.Filename = compname
MMC.Command = "open"
MMC.Command = "play"
End Sub


З.Ы. Если будут вопросы - смело спрашивай, я когда-то сам так же мучался :)
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 12.04.2003 (Сб) 1:21

А как сделать что бы музыка включалась автономно при запуске проги! :?:
Max!

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 12.04.2003 (Сб) 2:10

Код отвечающий за запуск трэка, помести в Form_Load()
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 12.04.2003 (Сб) 13:05

Так ведь процедура nextmusic есть в Form_load! Она сразу и запускает музыку.
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 12.04.2003 (Сб) 14:05

У меня не выходит я вроде сделал всё правилно!

Поясню:

Вставил в Form_Load:
Код:

MMC.Wait = True
MMC.Shareable = False
mmc.devicetype="WaveAudio"
nextmusic

в событие MMC_Done:
Код:

If MMC.Position = MMC.TrackLength Then 'проверка, находимся ли мы в конце трека
MMC.Command = "close"
nextmusic


А этот в раздел (General):
Код:

Sub nextmusic()
Static f
f = f + 1'счётчик музыки
If f = 6 Then f = 1
MMC.Command = "close"
compname = App.Path & "C:\Music\" & f & "x.wav" ' Здесь указал путь до музыки !


MMC.Filename = compname
MMC.Command = "open"
MMC.Command = "play"
End Sub


Я уже всё перепробовал но не выходит ! Помогите! :shock:
Max!

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 12.04.2003 (Сб) 17:15

А что конкретно не выходит? Просто музыка не играет, или ошибка какая? Если ошибка, то какая и где?
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 12.04.2003 (Сб) 20:04

Музыка не играет ! :roll:
Max!

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 12.04.2003 (Сб) 23:09

Max! писал(а):Музыка не играет ! :roll:


А она вообще играет?
В смысле , не только в форм_лоад, а вообще?
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 12.04.2003 (Сб) 23:41

Да фаил впорядке я проверял ! Непоиму вчем дело?
Max!

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 13.04.2003 (Вс) 7:58

Всё ясно! Фишка вот в чём:
compname = App.Path & "C:\Music\" & f & "x.wav" ' Здесь указал путь до музыки !

Свойство App.path используется, чтобы узнать папку, в которой лежит программа. Это полезно, когда ты не знаешь точно, в какой папке на целевом компе будет лежать прога. Так как ты указал явный путь к музыке ("C:\Music\"), то App.path уже просто не нужно! Правильно будет так:
Код: Выделить всё
compname = "C:\Music\" & f & "x.wav" ' Здесь указал путь до музыки !
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 14.04.2003 (Пн) 12:04

Спасибо всё работаю! :lol:
Max!

Максим
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 16.04.2003 (Ср) 18:00

Сообщение Максим » 24.04.2003 (Чт) 17:09

А зачем вообще использовать MMC??? :x
Я всегда использую API-функцию sndPlaySound :evil:
Там всего 2 параметра - путь к файлу и параметр воспроизведения :twisted: Обьявление посмотри в APIViewer !!!

кофейник
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 13.06.2003 (Пт) 18:50

Сообщение кофейник » 08.11.2003 (Сб) 19:03

Как сделать что бы в проге играла музыка например заканчивается одна запись и начинается другая и так до бесконечности сменяя друг друга


Здесь приводился пример с *.wav файлами.
А как можно сделать то же самое с MIDI файлами?
Спасибо

-=alp=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 147
Зарегистрирован: 08.03.2003 (Сб) 19:20

Сообщение -=alp=- » 18.11.2003 (Вт) 16:20

Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Private Sub Form_Load()
sndPlaySound "путь к файлу", 1 ' или 0 эксперементиур
End Sub

остольное придумай сам ты же блин вроде как програмист :-)

GreenT
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 17.08.2003 (Вс) 13:42

Сообщение GreenT » 22.11.2003 (Сб) 20:44

-=alp=-, помойму ты не все написал :roll:
Проигрывание wav
На форме есть кнопка Command1_Click
Код: Выделить всё
Private Declare Function sndPlaySound Lib "winmm" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Public Sub PlaySound(strFileName As String)
sndPlaySound strFileName, 1
End Sub

Private Sub Command1_Click()
PlaySound "c:\wondering.wav"
End Sub


100% работает на VB6


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList