[ GazdaSale @ 31.08.2007. 10:40 ] @
Pa? Unapred Hvala, Aleksandar |
[ GazdaSale @ 31.08.2007. 10:40 ] @
[ Aleksandar Ružičić @ 31.08.2007. 12:39 ] @
za to mozes da koristis razne kontrole namenjene za multimediu, ili mozes da koristis neke externe biblioteke (sto ti i preporucujem) kao sto je npr BASS Audio Library - skini BASS, imash dosta primera (i za vb6), biblioteke kao BASS imaju mnogo prednosti u odnosu na kontrole za pustanje muzike a glavna je to sto biblioteke podrzavaju dosta razlicitih formata (dok su kontrole obicno ogranicene na dva-tri formata)...
[ GazdaSale @ 31.08.2007. 14:27 ] @
Ja sam mislio da korostim API.
Hvala na odgovoru ali meni je potreban kod ako neko zna. Ja sam sastavio kod za pustanje ali kako da namestim da pusti...ako me razumete. Evo koda: Prvi modul Code: Option Explicit Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _ (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _ ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Global rVal As Long Drugi modul Code: Option Explicit Public Function PlayFile(FileName As String) StopPlaying rVal = mciSendString("Open """ & FileName & """ Alias MP3", 0, 0, 0) rVal = mciSendString("Play MP3", 0, 0, 0) End Function Public Function StopPlaying() rVal = mciSendString("Close MP3", 0, 0, 0) End Function E sad sta da stavim u form load da bi pustilo pesmu??? [ Marko_L @ 31.08.2007. 15:57 ] @
Pa stavi
Code: Call PlayFile(putanjadofajla) ili ako hoćeš povratnu vrednost, što je i svrha funkcije, onda Code: Dim ret ret = PlayFile(putanjadofajla) [ rgdrajko @ 31.08.2007. 17:08 ] @
Da nebismo pricali price koje ne rade, evo primera koji radi.
U formi upisati: Code: Private Sub Form_Load() Dim errcode As Long ' MCI error code FileName = "demo.mp3" errcode = mciSendString("open " & App.Path & "\" & FileName & " alias demo", "", 0, 0) If errcode <> 0 Then DisplayError errcode End Sub Private Sub cmdPlay_Click() Dim errcode As Long ' MCI error code errcode = mciSendString("play demo", "", 0, 0) If errcode <> 0 Then DisplayError errcode End Sub Private Sub cmdStop_Click() Dim errcode As Long ' MCI error code errcode = mciSendString("stop demo", "", 0, 0) If errcode <> 0 Then DisplayError errcode End Sub Private Sub Form_Unload(Cancel As Integer) Dim errcode As Long ' MCI error code errcode = mciSendString("close demo", "", 0, 0) End Sub Private Sub DisplayError(ByVal errcode As Long) Dim errstr As String ' MCI error message text Dim retval As Long ' return value errstr = Space(128) retval = mciGetErrorString(errcode, errstr, Len(errstr)) errstr = Left(errstr, InStr(errstr, vbNullChar) - 1) retval = MsgBox(errstr, vbOKOnly Or vbCritical) End Sub U bas modulu dodati: Code: Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal _ lpszCommand As String, ByVal lpszReturnString As String, ByVal cchReturnLength _ As Long, ByVal hwndCallback As Long) As Long Public Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal _ fdwError As Long, ByVal lpszErrorText As String, ByVal cchErrorText As Long) As Long Inace sve je to lepo objasnjeno u html fajlu koji sam prikacio(na engleskom). Takodje sam dao i uradjeni gornji primer. [Ovu poruku je menjao rgdrajko dana 31.08.2007. u 18:28 GMT+1] [ Aleksandar Ružičić @ 31.08.2007. 18:15 ] @
Citat: GazdaSale:Ja sam mislio da korostim API. pa to sam ti ja i predlozio :) (samo sto nisam mislio na "ugradjeni" API) Citat: GazdaSale:Hvala na odgovoru ali meni je potreban kod ako neko zna. Citat: Aleksandar Ružičić:...skini BASS, imash dosta primera inace, BASS sam ti preporucio jer je MP3 licencirani format (mada to nema veze na Balkanu, jelte) a BASS podrzava mnoge druge (i free i open-source) formate... [ GazdaSale @ 01.09.2007. 14:32 ] @
@rgdrajko Ovaj kod ne radi a ni project ne radi :)
@Marko_L kako da stavim putanju fajla kad nece kod svakog biti ista? [Ovu poruku je menjao GazdaSale dana 01.09.2007. u 15:44 GMT+1] [ Eurora3D Team @ 01.09.2007. 15:34 ] @
Iz tvog pitanja predpostavljam da hoces da uputis komandu svom programu da startuje odredjeni mp3 kad se pokrene.
Postoji ulazni parametar (kad se program pokrene) koji on dobija od Windowsa. On se zove komandna linija (Command Line). Kod ispod je ilustracija koriscenja tog parametra , ostali su pisali o pustanju muzike ... Predpostavimo da program pocinje ucitavanjem Forme (standardno kad napravis novi projekat u VB6). Ako pocinje u modulu (Sub main()) onda prekopiraj kod iz Sub Form_Load() u Sub main() i ovu test Sub u modul. Code: Private Sub Form_Load() Dim Comm As String Comm = Command ' Ovo Command vrace CommandLind string koji nam je poslao proces koji je pokrenuo ovaj ' npr imamo bat fajl nekifail.bat u kome pise C:\OvajProgram.exe C:\Muzika\Pesma.mp3 ' kad pokrenemo taj bat fajl nas pogram dobija ovaj drugi deo => C:\Muzika\Pesma.mp3 ' jedino proveri dali je komandna linija stigla sa navodnicima "" => "C:\Muzika\Pesma.mp3" ' isto vazi i kad nam je program pokrenut is drugog sa ShellExecute() funkcijom , (samo tad sigurno nema navodnika). PustiMP3 (Comm) ' .... End Sub Private Sub PustiMP3(File As String) MsgBox File ' ovo je za Debugovanje, da vidis jel putanja do fajla dovde stize ok (navodnici itd) , obrisi u pravom programu 'Kod End Sub Napravi exe i jedan npr bat fajl sa komandnom linijom da bi testirao. Pozdrav [ Aleksandar Ružičić @ 01.09.2007. 16:18 ] @
Citat: GazdaSale: ...kako da stavim putanju fajla kad nece kod svakog biti ista? Code: filename = Replace$(App.Path & "\fajl.mp3", "\\", "\") tako ce ti filename uvek biti putanja do fajl.mp3 koji se nalazi u sitom folderu sa programom (sa exe fajlom) [ GazdaSale @ 01.09.2007. 17:29 ] @
Ok ljudi nisam vas razumeo. Evo okacio sam program pa vi editujte i okacite da vidim o cemu se radi!
U folderu nema pesme jer zauzima 4 mb al nema veze vi samo napisite kod! [ rgdrajko @ 01.09.2007. 20:12 ] @
Citat: GazdaSale: @rgdrajko Ovaj kod ne radi a ni project ne radi :) Ok, moja greska, na brzinu nisam obratio paznju na alias. Sada sam detaljnije sve proucio i ukljucio sve sta treba. Evo ispravljeni i dopunjeni taj isti kod, takodje je reseno biranje mp3 fajlova i putanja tih fajlova. Takodje su i API funkcje stavljene u formu, a ne u modul bas, radi jednostavnosti koda. Code: Option Explicit Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal _ lpszCommand As String, ByVal lpszReturnString As String, ByVal cchReturnLength _ As Long, ByVal hwndCallback As Long) As Long Private Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal _ fdwError As Long, ByVal lpszErrorText As String, ByVal cchErrorText As Long) As Long Public errcode As Long Public imefajla As String Public ekstenzijafajla As String Const alias = "mp3muzika" Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Private Sub Drive1_Change() Dir1.Path = Drive1.Name End Sub Private Sub File1_Click() Dim imefajlasaekstenzijom As String imefajlasaekstenzijom = File1.FileName imefajla = Left(imefajlasaekstenzijom, InStr(imefajlasaekstenzijom, ".") - 1) ekstenzijafajla = Mid(imefajlasaekstenzijom, InStr(imefajlasaekstenzijom, ".")) Text1.Text = imefajla & ekstenzijafajla End Sub Private Sub Form_Load() Text1.Text = "" End Sub Private Sub cmdPlay_Click() Dim errcode As Long ' MCI error code Dim putanja As String errcode = mciSendString("close " & alias, "", 0, 0) 'Close putanja = File1.Path If Right(putanja, 1) = "\" Then putanja = Left(putanja, Len(putanja) - 1) End If errcode = mciSendString("open " & putanja & "\" & imefajla & ekstenzijafajla & " alias " & alias, "", 0, 0) errcode = mciSendString("play " & alias, "", 0, 0) If errcode <> 0 Then DisplayError errcode End Sub Private Sub cmdStop_Click() Dim errcode As Long ' MCI error code errcode = mciSendString("stop " & alias, "", 0, 0) If errcode <> 0 Then DisplayError errcode End Sub Private Sub Form_Unload(Cancel As Integer) Dim errcode As Long ' MCI error code errcode = mciSendString("close " & alias, "", 0, 0) End Sub Private Sub DisplayError(ByVal errcode As Long) Dim errstr As String ' MCI error message text Dim retval As Long ' return value errstr = Space(128) retval = mciGetErrorString(errcode, errstr, Len(errstr)) errstr = Left(errstr, InStr(errstr, vbNullChar) - 1) retval = MsgBox(errstr, vbOKOnly Or vbCritical) End Sub [Shadowed: popravljeni tagovi...] [Ovu poruku je menjao Shadowed dana 03.09.2007. u 01:00 GMT+1] [ GazdaSale @ 01.09.2007. 20:54 ] @
Kod mene opet ne radi :)
Nisi me razumeo meni ne treba kako da pustim i pauziram itd, to mi je pre trebalo, Jednostavno ne znam kako da napisem putanju fajla jer onako kako ste mi rekli nije uspelo. Okacio sam program pogledajte dodajte kod pa uploadujte ;) [ rgdrajko @ 01.09.2007. 22:37 ] @
Evo, ispravljen tvoj program. Ispravio sam ti program za mciSendString u bas Module2.
U Form_Load pises: 'Putanja putanja = App.Path If Right(putanja, 1) = "\" Then putanja = Left(putanja, Len(putanja) - 1) End If 'Imefajla, ekstenzija imefajla = "demo" ekstenzijafajla = ".mp3" 'Pustanje muzike Call PlayMP3(imefajla, ekstenzijafajla) U form unosis kod: Code: Private Sub Form_Load() Form1.KeyPreview = True Timer1.Enabled = True Timer1.Interval = 200 lblBY.Caption = "by: Aleksandar Gosevski gosevski.info " 'Putanja putanja = App.Path If Right(putanja, 1) = "\" Then putanja = Left(putanja, Len(putanja) - 1) End If 'Imefajla, ekstenzija imefajla = "demo" ekstenzijafajla = ".mp3" 'Pustanje muzike Call PlayMP3(imefajla, ekstenzijafajla) End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmA.Visible = False frmE.Visible = False frmF.Visible = False frmG.Visible = False frmH.Visible = False frmB.Visible = False frmC.Visible = False frmD.Visible = False End Sub Private Sub lblA_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmA.Visible = True End Sub Private Sub lblE_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmE.Visible = True End Sub Private Sub lblF_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmF.Visible = True End Sub Private Sub lblG_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmG.Visible = True End Sub Private Sub lblH_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmH.Visible = True End Sub Private Sub lblB_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmB.Visible = True End Sub Private Sub lblC_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmC.Visible = True End Sub Private Sub lblD_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmD.Visible = True End Sub Private Sub Timer1_Timer() Dim tekst As String tekst = lblBY.Caption lblBY.Caption = Mid(tekst, 2, Len(tekst)) + Left(tekst, 1) Randomize Timer End Sub Private Sub Image8_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmA.Visible = False frmE.Visible = False frmF.Visible = False frmG.Visible = False frmH.Visible = False frmB.Visible = False frmC.Visible = False frmD.Visible = False End Sub Private Sub lblBY_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmA.Visible = False frmE.Visible = False frmF.Visible = False frmG.Visible = False frmH.Visible = False frmB.Visible = False frmC.Visible = False frmD.Visible = False End Sub U modul 1: Code: Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal _ lpszCommand As String, ByVal lpszReturnString As String, ByVal cchReturnLength _ As Long, ByVal hwndCallback As Long) As Long Public Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal _ fdwError As Long, ByVal lpszErrorText As String, ByVal cchErrorText As Long) As Long I u modulu 2: Code: Option Explicit Public errcode As Long Public imefajla As String Public ekstenzijafajla As String Public putanja As String Const alias = "mp3muzika" Public Sub PlayMP3(imefajla, ekstenzijafajla) Dim errcode As Long ' MCI error code errcode = mciSendString("close " & alias, "", 0, 0) 'Close errcode = mciSendString("open " & putanja & "\" & imefajla & ekstenzijafajla & " alias " & alias, "", 0, 0) errcode = mciSendString("play " & alias, "", 0, 0) If errcode <> 0 Then DisplayError errcode End Sub Public Sub StopMP3() Dim errcode As Long ' MCI error code errcode = mciSendString("stop " & alias, "", 0, 0) If errcode <> 0 Then DisplayError errcode End Sub Private Sub Form_Unload(Cancel As Integer) Dim errcode As Long ' MCI error code errcode = mciSendString("close " & alias, "", 0, 0) End Sub Private Sub DisplayError(ByVal errcode As Long) Dim errstr As String ' MCI error message text Dim retval As Long ' return value errstr = Space(128) retval = mciGetErrorString(errcode, errstr, Len(errstr)) errstr = Left(errstr, InStr(errstr, vbNullChar) - 1) retval = MsgBox(errstr, vbOKOnly Or vbCritical) End Sub [ GazdaSale @ 02.09.2007. 15:50 ] @
Ja ne znam sta je ovo ali meni opet ne radi :(
Izbaci gresku i pise "The specified device is not open or is not recognized by MCI." [ rgdrajko @ 02.09.2007. 23:38 ] @
Jos jednom sam proverio, kopirao sam zip koji sam okacio u neki folder i starovao. Radi. Probaj da li ovaj program radi na nekom drugom racunaru. Ako stavljas svoje mp3 fajlove umesto fajla demo.mp3 oni moraju biti u istom folderu gde i vb fajlovi, tj. exe fajlovi. Ako su ti fajlovi u nekom drugom folderu unutar foldera gde gde i exe fajl onda moras u programu napisati:
putanja=app.path i & "\imefoldera" [ GazdaSale @ 04.09.2007. 14:18 ] @
E mislim da sam se nekako snasao al mi treba nesto.
Znaci kako bi bio kod da se ucita slika ili mp3 (ne bitno) iz foldera u kom je exe. Ali da ne bude obicna putanja jer ce program koristiti vise korisnika! [ goranvuc @ 04.09.2007. 14:22 ] @
Citat: GazdaSale:Ali da ne bude obicna putanja! A sta ti je to prijatelju "obicna putanja" i kakva bi ti bila "neobicna putanja" koja ti treba? [ GazdaSale @ 04.09.2007. 15:58 ] @
:) Izvini pogresno sam se izrazio!
obivna putanja: C:\Program files\folder\fajl neobicna putanja: Da se nalazi u folderu sa exe kako bi na bilo kom kompu moglo da se ucita... Jasnije? :) [ rgdrajko @ 04.09.2007. 20:58 ] @
Da bi dobio putanju odakle je startovan tvoj VB exe fajl postoji objekat app i on ima svojstvo(osobinu) path tj. putanja.
Da bi se uverio da app.path daje putanju odakle si startovao npr project iz Uefa-Rajko.zip, tj putanju do tog foldera dva puta klikni na uefa.vbp i otvorice ti se vb prozor. Sada u VB prozoru klikni gore na Immediate Window(zuto slovo I) ako ga nemas desnim klikom klikni na prazan prostor desno u meni liniji i stikliraj Debug(mozes i sve ostalo veoma je korisno). Sada u u Immediate Window prozoru koji ti se otvorio pri dnu otkucaj: Code: Print app.path i dobices nesto slicno ovome: npr. c:\temp Ako prekopiras ceo tvoj project Uefa-Rajko.zip na osnovni folder diska i startujes duplim klikom Uefa.vbp sa osnovnog foldera diska videces da putanja odakle je startovan tvoj program izgleda ovako: C:\ i primecujes da ima kosu crtu ulevo(beksles) za oznaku foldera i to stvara problem(u gornjem primeru je nije bilo) pa sam i zbog toga morao napisati kraci kod za putanju, ako bi koristio app.path bez tog dodatka koda program bi ti pukao jer bi putanja imala "\\" tj dve kose crte ulevo. Nauci se da cesto koristis ovaj prozor Immediate window(u starijim verzijama Debug prozor)mnogo ce ti pomoci. Ja sam ti vec gore dao primer koriscenja app.path svojstva Code: putanja = App.Path If Right(putanja, 1) = "\" Then putanja = Left(putanja, Len(putanja) - 1) End If 'Imefajla, ekstenzija imefajla = "demo" ekstenzijafajla = ".mp3" Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|