| 
				
					|  | Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
 |  
 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |  
		| Autor | Nachricht |  
		| QBMaik 
 
 
 Anmeldungsdatum: 17.09.2004
 Beiträge: 67
 Wohnort: 25899 Niebüll
 
 | 
			
				|  Verfasst am: 28.06.2005, 16:04    Titel: Midi, XM, MOD, MP3, WAV |   |  
				| 
 |  
				| Ist es schon möglich, mit FreeBASIC Musik abzuspielen? Wie? |  |  
		| Nach oben |  |  
		|  |  
		| Michael712 aka anfänger, programmierer
 
 
 Anmeldungsdatum: 26.03.2005
 Beiträge: 1593
 
 
 | 
			
				|  Verfasst am: 28.06.2005, 16:35    Titel: |   |  
				| 
 |  
				| Hallo. Hier wurde das schonmal besprochen
 
 Damit kann man wave dateien abspielen. Mit der WINAPI kann man auch mp3 und andere abspielen. Wie das geht weiß ich auch nicht.
 
 Mfg
 Michael
 |  |  
		| Nach oben |  |  
		|  |  
		| Sebastian Administrator
 
  
 Anmeldungsdatum: 10.09.2004
 Beiträge: 5969
 Wohnort: Deutschland
 
 | 
			
				|  Verfasst am: 28.06.2005, 18:20    Titel: |   |  
				| 
 |  
				| Hallo. 
 WAV ist wohl erst mal am einfachsten zu handlen. Wenn ich mal Zeit finde, schreibe ich auch noch ein Beispiel für andere Formate. Wenn dir die Dateigröße wichtig ist, kannst du die WAV-Dateien ja RLE komprimieren und entpackst sie bei der Installation. Überhaupt lassen sich WAVs ganz gut mit ZIP komprimieren.
 
 Viele Grüße!
 Sebastian
 
 //edit: 1111
  _________________
 
   Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
 |  |  
		| Nach oben |  |  
		|  |  
		| volta 
 
 
 Anmeldungsdatum: 04.05.2005
 Beiträge: 1876
 Wohnort: D59192
 
 | 
			
				|  Verfasst am: 28.06.2005, 19:58    Titel: FMOD |   |  
				| 
 |  
				| Hallo, wenn es nicht darum geht " das Rad neu zu erfinden" dh. alle Routinen selbst zu schreiben, sollte man sich mal FMOD ansehen.
 http://www.fmod.de/
 
 FreeBASIC hat schon eine "Schnittstelle" für die fmod.dll.
 http://www.freebasic.net/index.php/link
 
 Allerdings muß man sich die DLL hier laden
 http://www.fmod.org/files/fmodapi374win.zip fast 2MB.
 
 Aber dann macht es richtig Spaß mit FMod zu experimentieren.
 Beispiel für Hintergrundmusik:
 
  	  | Code: |  	  | '$INCLUDE: 'fmod.bi' ' Initialisieren FMOD with 44000Hz, 8 channels.
 FSOUND_Init(44000, 8, 0)
 Dim HintergrundMusik As Integer
 
 HintergrundMusik = FMUSIC_LoadSong("gangsta.mid")
 If HintergrundMusik = 0 Then
 Print "Fehler beim laden der MIDI Datei!"
 GoTo FClose
 End If
 
 'FMUSIC_SetLooping(HintergrundMusik, 1)
 FMUSIC_PlaySong(HintergrundMusik)
 While InKey$ = ""
 FSOUND_Update
 Wend
 
 Print "nocheinmal Taste druecken.."
 FClose:
 FSOUND_Close
 sleep
 End
 | 
 
 Beispiel für mp3:
 
  	  | Code: |  	  | '$INCLUDE: 'fmod.bi' ' 48kHz sample rate, 8 channels.
 FSOUND_Init(48000, 8, 0)
 Dim mp3Sound As Integer
 
 mp3Sound = FSOUND_Sample_Load(FSOUND_FREE, "tutut.mp3", 0, 0, 0)
 If mp3Sound = 0 Then
 Print "Fehler beim laden der mp3 Datei!"
 GoTo FClose
 End If
 
 FSOUND_Sample_SetMode(mp3Sound, FSOUND_LOOP_NORMAL)
 FSOUND_PlaySound(FSOUND_FREE, mp3Sound)
 
 While InKey$ = ""
 FSOUND_Update
 Wend
 
 Print "nocheinmal Taste druecken.."
 FClose:
 FSOUND_Close
 sleep
 End
 | 
 
 Gruß
 Volta
 Hier die Beispiele als fmod_bspl.zip
 _________________
 Warnung an Choleriker:
 Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
 Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael712 aka anfänger, programmierer
 
 
 Anmeldungsdatum: 26.03.2005
 Beiträge: 1593
 
 
 | 
			
				|  Verfasst am: 28.06.2005, 21:58    Titel: |   |  
				| 
 |  
				| Das kann man auch mit 3kb lösen: 
 
  	  | Code: |  	  | screen 12
 DIM volume(0 to 1)
 ''
 ''
 dim tmp as string
 
 for i% =1 to LEN(command$)
 tmp$=MID$(command$,i,1)
 if tmp$ <> CHR$(34) THEN datei$=datei$+tmp$
 next i%
 
 select case datei$
 case ""
 INPUT "Welche datei soll gespiel werden??",dateiname$
 case else
 CLS
 PRINT "Die datei ";command$;" wird gespielt."
 dateiname$=TRIM$(datei$)
 end select
 
 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
 Declare Function GetShortPathName Lib "kernel32" _
 Alias "GetShortPathNameA" (ByVal lpszLongPath As String, _
 ByVal lpszShortPath As String, _
 ByVal cchBuffer As Long) As Long
 
 
 Function Mp3Play(sFile As String, sAlias As String) As Integer
 Dim sBuffer As String
 Dim lResult As Long
 Dim sf AS STRING
 sf = Space$(255)
 sBuffer = Space$(255)
 sf = sFile
 lResult = GetShortPathName(sf, sBuffer, Len(sBuffer))
 If lResult <> 0 Then
 sBuffer = RTRIM$(sBuffer)
 If mciSendString("open " + sBuffer + " type MPEGVideo alias "+sAlias , 0, 0, 0) = 0 Then
 mciSendString "play "+sAlias+" from 0", 0, 0, 0
 Exit Function
 End If
 End If
 End Function
 
 '
 '`Hiermit konnte man wave dateien anhalten und stoppen. Mit mp3 klappt
 ''das noch nicht.
 '
 Sub WAVEClose(sAlias As String)
 mciSendString "stop " + sAlias, 0, 0, 0
 mciSendString "close " + sAlias, 0, 0, 0
 End Sub
 
 Sub WAVEPause(sAlias as String)
 mciSendString "stop " + sAlias, 0, 0, 0
 end sub
 
 sub WAVEWeiter(sAlias as string)
 mciSendString "play " + sAlias, 0, 0, 0
 end sub
 
 'Dieser FreeBasic Code spielt einen WAV Sound ganz einfach über die WinAPI ab.
 'Jeder Sound bekommt eine individuelle Kennung zugeordnet. Über diese Kennung, im Beispiel
 '»fbsound« kann das Abspielen des Sounds auch unterbrochen werden. Dazu dient die Sub
 'WAVEStop, der diese Kennung als Argument übergeben wird.
 'Viel Spaß mit dem Code! Sebastian Steiner, sebastian_steiner[ätt]gmx.de
 '
 '
 ''Ergänzung von Michael Laumen(michaellaumen@web.de):
 ''Dieser Code wurde so verändert, dass er jetzt mp3
 ''dateien spielen kann. Der Grundcode stammt aber von sebastiasn steiner.
 ''Das spielen kann man leider noch nicht unterbrechen, da ein fehler von der lib gemeldet wird.
 '
 
 
 nummer$="soundnr1"
 resultat = Mp3Play(dateiname$,nummer$)
 
 
 do
 sleep 1
 a$=inkey$
 if a$=CHR$(27) then exit do
 loop
 
 END
 | 
 
 Ich hab mir mal 15min Zeit genommen und im inet was gesucht. Ich hab sebastians code verändert. Ich habe auch einen kommentar hinzugefügt. Mit dem Programm kann man mp3 dateien verknüpfen, die werden dann damit abgespielt(man muss keinen dateiname mehr eintippen)
 
 @sebastian: Guck dir das mal an und mach auch so, dass man dateien stoppen kann. Das bekomme ich nciht hin.(dein kommentar hab ich noch erhalten. Ist ja hauptsächlich von dir)
 
 Mfg
 Michael
 |  |  
		| Nach oben |  |  
		|  |  
		| Sebastian Administrator
 
  
 Anmeldungsdatum: 10.09.2004
 Beiträge: 5969
 Wohnort: Deutschland
 
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael712 aka anfänger, programmierer
 
 
 Anmeldungsdatum: 26.03.2005
 Beiträge: 1593
 
 
 | 
			
				|  Verfasst am: 29.06.2005, 14:01    Titel: |   |  
				| 
 |  
				| Geil!! Ich guck mir den code mal an und probier das alles zu verstehen.
  THX 
 
 Mfg
 Michael
 |  |  
		| Nach oben |  |  
		|  |  
		| Tomtitom 
 
  
 Anmeldungsdatum: 20.09.2004
 Beiträge: 308
 
 
 | 
			
				|  Verfasst am: 29.06.2005, 19:12    Titel: |   |  
				| 
 |  
				| also denke erstmal für den Code Sebi, aber scheinbar scheint das nicht so 100% zu klappen, ich habe ein paar mp3s durchprobiert und bei einerhat man nur komische Geräusche gehört, irgendwie verzerrt und bei einigen anderen kamen so komische Klopfgeräusche zwischendurch!? |  |  
		| Nach oben |  |  
		|  |  
		| Michael712 aka anfänger, programmierer
 
 
 Anmeldungsdatum: 26.03.2005
 Beiträge: 1593
 
 
 | 
			
				|  Verfasst am: 29.06.2005, 19:49    Titel: |   |  
				| 
 |  
				| Bei mir klappt bei allen getesteten songs alles zu 100%. Komisch. Vielleicht hast du nciht die richtigen mp3 codecs instaliert. Das Programm greift ja auf windows zu. Oder hängt das mit der bitrate zusammen?? Ich habe nur mp3s mit 192kbit/sek. Vielleicht hört sich das bei weniger bits/sek schlechter an. 
 Mfg
 Michael
 |  |  
		| Nach oben |  |  
		|  |  
		| Mecki Igel
 
  
 Anmeldungsdatum: 10.09.2004
 Beiträge: 985
 Wohnort: Niederbayern
 
 | 
			
				|  Verfasst am: 29.06.2005, 20:54    Titel: |   |  
				| 
 |  
				| Jau, ich denke auch, dass die WinAPI einfach nicht so dieser ganzen Codec-Welt gewachsen ist, wie es WinAmp oder der WindoofPlayer sind. Oder werden die Codecs vom WMplayer frai zugänglich gespeichert für die API? Eher nicht, denk ich mal   
 Der Code ist jetzt übrigens dank Sebi's Upload-Freudigkeit auch auf www.FreeBASIC.de in den Downloads verfügbar.
 
 @Volta, privat: Probier's doch jetzt nochmal!
 _________________
 » Yodl.de: So sucht man gestern.
   » Geld verdienen im Netz + ICQ.
 » Firefox!
 » 100€ zu gewinnen
 » FreeBASIC.de
 |  |  
		| Nach oben |  |  
		|  |  
		| Sebastian Administrator
 
  
 Anmeldungsdatum: 10.09.2004
 Beiträge: 5969
 Wohnort: Deutschland
 
 | 
			
				|  Verfasst am: 29.06.2005, 21:28    Titel: |   |  
				| 
 |  
				| Hallo. 
 Also bei mir hat der Source auch mit allen getesteten MP3s und WAVs funktioniert. Ich kann mir da eigentlich auch nur ein Codecproblem oder eine unübliche Bitrate o.ä. als Ursache vorstellen. Die Codecs, die du unter Windows installiert hast, stehen der WinAPI in der Regel auch zur Verfügung.
 
 @Tomtitom: Schade, dass es nicht 100% bei dir klappt. Versuch doch mal einen der vielen Audiokoverter, die man im Netz findet, um die MP3s, die Probleme machen, mal in ein Standardformat zu bringen. Vielleicht ist da ja wirklich irgendein exotischer Codec dran schuld. Also das muss eindeutig an den MP3s liegen. Übrigens: Mit dem Rechtemanagement geschützte WMAs wird man mit dem Source nicht abspielen können. Hast du solche Dinger vielleicht versucht?
 
 Viele Grüße!
 Sebastian
 _________________
 
   Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
 |  |  
		| Nach oben |  |  
		|  |  
		| Tomtitom 
 
  
 Anmeldungsdatum: 20.09.2004
 Beiträge: 308
 
 
 | 
			
				|  Verfasst am: 30.06.2005, 15:00    Titel: |   |  
				| 
 |  
				| naja, also ich habe schon mit Absicht vielleicht etwas schwierigere Audiodateien durchprobiert, weil ich eben wissen wollte, wie gut das Programm ist. Ich denke mal auch, dass die meisten Programme normal laufen. Die eine mp3 die überhaupt nicht hörbar war hatte 64 kbps und 22 hz 
 Ich wollte im Prinzip ja nur sagen, dass man eben nicht jede Audiodatei fehlerfrei damit abspielen kann.
 |  |  
		| Nach oben |  |  
		|  |  
		| Sebastian Administrator
 
  
 Anmeldungsdatum: 10.09.2004
 Beiträge: 5969
 Wohnort: Deutschland
 
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael712 aka anfänger, programmierer
 
 
 Anmeldungsdatum: 26.03.2005
 Beiträge: 1593
 
 
 | 
			
				|  Verfasst am: 30.06.2005, 17:59    Titel: |   |  
				| 
 |  
				| Könnte man das ganze auch in eine library umwandel?? 
 So stelle ich mir das dann vor:
 
  	  | Code: |  	  | 'resultat=soundplay(aktion$,[dateiname$],sAlias$)
 
 'und dann ein song öffnen:
 
 resultat=soundplay("OPEN","D:\1.mp3","meinsound")
 if resultat = 0 then
 PRINT "Der song wird jetzt gespielt."
 ELSE
 end
 end if
 
 resultat=soundplay("PLAY","","meinsound")
 
 | 
 
 So ist das idiotensicher und jeder kann das dann einfach in Programme einbauen. Kann man sowas machen oder ist das zuviel arbeit??
 
 Mfg
 Michael
 |  |  
		| Nach oben |  |  
		|  |  
		| Sebastian Administrator
 
  
 Anmeldungsdatum: 10.09.2004
 Beiträge: 5969
 Wohnort: Deutschland
 
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael712 aka anfänger, programmierer
 
 
 Anmeldungsdatum: 26.03.2005
 Beiträge: 1593
 
 
 | 
			
				|  Verfasst am: 30.06.2005, 18:29    Titel: |   |  
				| 
 |  
				| Kompliziert ist das nicht. Nur dadurch wird der quellcode von nem programm größer. Dann sieht das alles viel komplizierter aus. So geht das aber auch sehr gut. War ja nurn vorschlag. 
 Mfg
 Michael
 |  |  
		| Nach oben |  |  
		|  |  
		| Sebastian Administrator
 
  
 Anmeldungsdatum: 10.09.2004
 Beiträge: 5969
 Wohnort: Deutschland
 
 |  |  
		| Nach oben |  |  
		|  |  
		|  |  
  
	| 
 
 | Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten.
 Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
 Du kannst deine Beiträge in diesem Forum nicht löschen.
 Du kannst an Umfragen in diesem Forum nicht mitmachen.
 
 |  |