VB Mp3
7 отговора
306 прегледа
VB Mp3
Здравейте!
Може ли да ми кажете коя контрола (библиотека) мога да използвам за просвирване на MP3 и WAV файлове в свое приложение, писано на Visual Basic 6.0 (Enterprise Edition)? Със стандартната вградена просто не се получава... :-(
Може ли да ми кажете коя контрола (библиотека) мога да използвам за просвирване на MP3 и WAV файлове в свое приложение, писано на Visual Basic 6.0 (Enterprise Edition)? Със стандартната вградена просто не се получава... :-(
Re: VB Mp3
Ами, можеш да ползваш "Media Player" контрола. Много е лесен за ползване и управление.
----------------------------------
помислих, хареса ми, помислих пак...
----------------------------------
помислих, хареса ми, помислих пак...
Re: VB Mp3
Да, Щирлиц, точно нея ползвам, но просто не става, а и отделните WAV- и MP3-файлове после не ги включва в EXE-то, ами си ги иска в някаква директория, дето да е еднаква на всеки компютър (напр. WINDOWS/System/), за да може да си ги търси там, за да ги просвири...
Re: VB Mp3 - Jamie
Мерси, Jamie, ще разгледам това което ми прати като линк (даже вече си свалих контролата), дано ми бъде от полза. Това, което искам е, просто като се стартира приложението (което пиша сега), да започне да свири MP3-музика и на кликването на бутоните да се чуват различни WAV-файлове... Но когато всичко това го компилирам в отделно EXE, да се стартира безпроблемно и на друг компютър...
Re: VB Mp3 - Jamie
Ами че тогава сложи звуците във директорията в която е ЕХЕ-то. Можеш и да указваш пътя към тях според това как е именувана директорията в която се намира програмата. Ето как си плейвам звуците:
обърни внимание на това: App.Path & "\drip.wav"
Така се указва пътя и името на файла, който се намира заедно с ЕХЕ-то. Има един момент, че ако директорията на ЕХЕ-то е главната, то тогава трябва да се запише така: App.Path & "drip.wav". Но пък това не е общоприето, така че може и да не слагаш разни проверки за това. Но пък те няма да натежат на програмата. Ето така:
В този вариант няма да имаш проблеми при абсолютно никакви комбинации от директории и имена и т.н.
Както споменах - просто си оставяш звуците при ЕХЕ-то.
----------------------------------
помислих, хареса ми, помислих пак...
media = mciExecute("play " & App.Path & "\drip.wav")
обърни внимание на това: App.Path & "\drip.wav"
Така се указва пътя и името на файла, който се намира заедно с ЕХЕ-то. Има един момент, че ако директорията на ЕХЕ-то е главната, то тогава трябва да се запише така: App.Path & "drip.wav". Но пък това не е общоприето, така че може и да не слагаш разни проверки за това. Но пък те няма да натежат на програмата. Ето така:
Dim strAppPath As String
strAppPath = IIf(Len(App.Path) = 3, App.Path & "", App.Path & "\")
media = mciExecute("play " & strAppPath & "drip.wav")
В този вариант няма да имаш проблеми при абсолютно никакви комбинации от директории и имена и т.н.
Както споменах - просто си оставяш звуците при ЕХЕ-то.
----------------------------------
помислих, хареса ми, помислих пак...
Re: VB Mp3 - Jamie
Да, Щирлиц, благодаря ти пак... Ами като го пробвам, ще дойда пак да "пост"-на и да ви кажа какво е станало...
Re: VB Mp3
За да включиш файловете в .EXE-то ще трябва да ги вкараш като ресурси и да ги просвирваш със sndPlaySound (или еквивалентна) и да използваш SND_MEMORY:
Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
· lpszSound
A string that specifies the sound to play. This parameter can be either an entry in the registry or in WIN.INI that identifies a system sound, or it can be the name of a waveform-audio file. (If the function does not find the entry, the parameter is treated as a filename.) If this parameter is NULL, any currently playing sound is stopped.
· fuSound
Flags for playing the sound. The following values are defined:
SND_ASYNC
The sound is played asynchronously and the function returns immediately after beginning the sound. To terminate an asynchronously played sound, call sndPlaySound with lpszSoundName set to NULL.
SND_LOOP
The sound plays repeatedly until sndPlaySound is called again with the lpszSoundName parameter set to NULL. You must also specify the SND_ASYNC flag to loop sounds.
SND_MEMORY
The parameter specified by lpszSoundName points to an image of a waveform sound in memory.
SND_NODEFAULT
If the sound cannot be found, the function returns silently without playing the default sound.
SND_NOSTOP
If a sound is currently playing, the function immediately returns FALSE, without playing the requested sound.
SND_SYNC
The sound is played synchronously and the function does not return until the sound ends.
Ето ти и прост пример:
sndPlaySound "ResourceNameHere", SND_ASYNC Or SND_NODEFAULT Or SND_MEMORY
Не съм пробвал дали работи с MP3 но с WAV работи. Само не ме карай да ти обяснявам как да вкараш WAV файла като ресурс в EXE-то на VB за да можеш да използваш SND_MEMORY и да избегнеш копирането на WAV файла в C:\Windows\System

Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
· lpszSound
A string that specifies the sound to play. This parameter can be either an entry in the registry or in WIN.INI that identifies a system sound, or it can be the name of a waveform-audio file. (If the function does not find the entry, the parameter is treated as a filename.) If this parameter is NULL, any currently playing sound is stopped.
· fuSound
Flags for playing the sound. The following values are defined:
SND_ASYNC
The sound is played asynchronously and the function returns immediately after beginning the sound. To terminate an asynchronously played sound, call sndPlaySound with lpszSoundName set to NULL.
SND_LOOP
The sound plays repeatedly until sndPlaySound is called again with the lpszSoundName parameter set to NULL. You must also specify the SND_ASYNC flag to loop sounds.
SND_MEMORY
The parameter specified by lpszSoundName points to an image of a waveform sound in memory.
SND_NODEFAULT
If the sound cannot be found, the function returns silently without playing the default sound.
SND_NOSTOP
If a sound is currently playing, the function immediately returns FALSE, without playing the requested sound.
SND_SYNC
The sound is played synchronously and the function does not return until the sound ends.
Ето ти и прост пример:
sndPlaySound "ResourceNameHere", SND_ASYNC Or SND_NODEFAULT Or SND_MEMORY
Не съм пробвал дали работи с MP3 но с WAV работи. Само не ме карай да ти обяснявам как да вкараш WAV файла като ресурс в EXE-то на VB за да можеш да използваш SND_MEMORY и да избегнеш копирането на WAV файла в C:\Windows\System