как воспроизвести фаил миди в програме?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Lamerok
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 26.02.2005 (Сб) 7:35

как воспроизвести фаил миди в програме?

Сообщение Lamerok » 02.03.2005 (Ср) 8:50

как воспроизвести фаил миди в програме?
©Copyright TashaSoft® Corporation, 2004, 2005. All Rights Reserved.
TashaSoft® is registered trademark of TashaSoft® corp.

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

А вот так:

Сообщение Andrev » 02.03.2005 (Ср) 9:19

Объявляешь в проекте новый класс, обзываешь его, скажем, Snd_cls. В код класса пихаешь:

Option Explicit
Dim MC As IMediaControl
Dim MP As IMediaPosition
Public Sub LoadFile(ByVal strFileName As String)
Set MC = New FilgraphManager
Set MP = MC
MC.RenderFile strFileName
End Sub
Public Sub PlayFile()
MC.Run
MP.CurrentPosition = 0
End Sub
Public Sub StopFile()
MC.Stop
End Sub
Public Property Get Speed() As Currency
Speed = MP.Rate
End Property
Public Property Let Speed(ByVal curSpeed As Currency)
MP.Rate = curSpeed
End Property
Public Property Get Pos() As Currency
Pos = MP.CurrentPosition
End Property
Public Property Let Pos(ByVal curPos As Currency)
MP.CurrentPosition = curPos
End Property
Public Function GetLen() As Long
GetLen = MP.Duration
End Function

Вот тебе и новый класс для работы со звуком. Есть все, абсолютно все функции.
Затем в проекте объявляешь переменную:

Dim SND As New Snd_cls

Методом LoadFile запихиваешь файл:

SND.LoadFile "C:\123.mid"

И затем воспроизводишь его:
SND.PlayFile

Все. Приятных минут.
Да! Еще в проекте необходимо подключить библиотеку Active movie control type library (quartz.dll).
ЗЫ.
Забыл сказать - этим методом можно играть не только *.mid, но и *.mp3 и *.wav

Lamerok
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 26.02.2005 (Сб) 7:35

Сообщение Lamerok » 02.03.2005 (Ср) 13:36

спасиб
©Copyright TashaSoft® Corporation, 2004, 2005. All Rights Reserved.
TashaSoft® is registered trademark of TashaSoft® corp.

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 02.03.2005 (Ср) 14:29

А так тоже можно!


Dim PW As Integer
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Declare Function sndStopSound Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszNull As Long, ByVal uFlags As Long) As Long
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uRetrunLength As Long, ByVal hwndCallback As Long) As Long

Private Sub Command1_Click()
PW = sndPlaySound("1.wav", 1)
End Sub

Private Sub Command2_Click()
result = mciSendString("play 1.mid", 0, 0, 0)
End Sub

Private Sub Command3_Click()
retcode = sndStopSound(0, SND_ASYNC)
End Sub
Private Sub Command4_Click()
result = mciSendString("stop 1.mid", 0, 0, 0)
End Sub

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 03.03.2005 (Чт) 15:44

а можно проще - добавить на форму MediaPlayer1 и через MediaPlayer1.filename указать путь к миди - легко и просто, так же MP3, wav, gif, и avi можно проигрывать
Изображение

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 03.03.2005 (Чт) 15:57

HotKitten писал(а):а можно проще - добавить на форму MediaPlayer1 и через MediaPlayer1.filename указать путь к миди - легко и просто, так же MP3, wav, gif, и avi можно проигрывать
Вот-вот, я пока Андрева топик до конца дочитал, уж начал думать, что такой ламерской фигней, как медиа плейер тока один я, как дурак, и пользуюсь... Слава богу, нас минимум двое :bounce:

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 03.03.2005 (Чт) 20:12

но MediaPlayer1 не помогает, если надо сохранить анимашку или звук на форме, а не отдельным файлом и это плохо
Изображение

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 04.03.2005 (Пт) 15:13

HotKitten писал(а):а можно проще - добавить на форму MediaPlayer1 и через MediaPlayer1.filename указать путь к миди - легко и просто, так же MP3, wav, gif, и avi можно проигрывать


Ну если так, то можно еще проще берёшь инсталятор виндовс медиа плейер добавляешь в архив с прогой, при запуске проги устанавливаешь его на комп, при нажатии на кнопку шелом открываешь файл, который по ассоциации открывается виндовс медиа плейером, и так можно воспроизводить и MID, и AVI, и MPG, и т.д. почти все форматы аудио и фидео! Т.е. нафиг чё-то мудрить, ведь при этом предётся MediaPlayer1 с собой тащить, а он много весит, так проще написать маленький код, чем тащить за собой лишние мега! :lol:

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 04.03.2005 (Пт) 15:23

Я предпочитаю не MediaPlayer, а элемент Active Move. Это есть даже в Win95.

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 05.03.2005 (Сб) 15:51

step писал(а):
HotKitten писал(а):а можно проще - добавить на форму MediaPlayer1 и через MediaPlayer1.filename указать путь к миди - легко и просто, так же MP3, wav, gif, и avi можно проигрывать


Ну если так, то можно еще проще берёшь инсталятор виндовс медиа плейер добавляешь в архив с прогой, при запуске проги устанавливаешь его на комп, при нажатии на кнопку шелом открываешь файл, который по ассоциации открывается виндовс медиа плейером, и так можно воспроизводить и MID, и AVI, и MPG, и т.д. почти все форматы аудио и фидео! Т.е. нафиг чё-то мудрить, ведь при этом предётся MediaPlayer1 с собой тащить, а он много весит, так проще написать маленький код, чем тащить за собой лишние мега! :lol:

добавляеш на форму компонент Windows MediaPlayer
MediaPlayer1.filename = midi.mid - и всё!
этот код меньше!
и ненадо никаких инстальников
Изображение

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 06.03.2005 (Вс) 8:34

HotKitten писал(а):
step писал(а):
HotKitten писал(а):а можно проще - добавить на форму MediaPlayer1 и через MediaPlayer1.filename указать путь к миди - легко и просто, так же MP3, wav, gif, и avi можно проигрывать


Ну если так, то можно еще проще берёшь инсталятор виндовс медиа плейер добавляешь в архив с прогой, при запуске проги устанавливаешь его на комп, при нажатии на кнопку шелом открываешь файл, который по ассоциации открывается виндовс медиа плейером, и так можно воспроизводить и MID, и AVI, и MPG, и т.д. почти все форматы аудио и фидео! Т.е. нафиг чё-то мудрить, ведь при этом предётся MediaPlayer1 с собой тащить, а он много весит, так проще написать маленький код, чем тащить за собой лишние мега! :lol:

добавляеш на форму компонент Windows MediaPlayer
MediaPlayer1.filename = midi.mid - и всё!
этот код меньше!
и ненадо никаких инстальников


Это прикол был, чё не понял что-ли!


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

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

Сейчас этот форум просматривают: Google-бот и гости: 156

    TopList