Code-Beispiel
MID, WAV und MP3 Audiodateien abspielen
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
k. A. | Eternal_Pain | 13.06.2007 |
Quelle:fb@rchive
Autor:Volta
Das Programm spielt MID, WAV und MP3 Audiodateien ab.
Es ist so kompakt, das es in dein Programm direkt einkopiert oder
als #Include eingebaut werden kann.
Es lässt dem Anwender alle Freiheiten seine Audiodateien einfach im Programmablauf
zu starten, stoppen, wiederholen oder abzubrechen.
Warnung: Das Programm hat keine Fehlerabfrrage, bei Fehlaufrufen kann es
abstürzen oder sich aufhängen.
Aufrufe:
öffnen eines Audiofiles zum Abspielen:
FB_MCI_open (AudioFILENAME als String, AliasName als String)
Mit dem AliasName wird der Aufruf sehr einfach.
zuerst Audiofile öffnen und AliasName vergeben zB.: FB_MCI_open "Musik.mid", "Volta"
dann FB_MCI "play","volta" und nicht vergessen FB_MCI "close","Volta" zum Schluss.
Sartet die Wiedergabe des Audiofiles
FB_MCI ("play"["on"]["an"],AliasName als String)
Beendet das Abspielen des Audiofiles
FB_MCI ("close"["off"]["aus"],AliasName als String)
Stopt das Abspielen des Audiofiles
FB_MCI ("Stop",AliasName als String)
nach einem Startbefehl wird vom Anfang an abgespielt
Spieldauer des Audiofiles abfragen (Rückgabewert in Millisekunden)
x = FB_MCI ("length"["len"],AliasName als String)
aktuelle Abspielposition abfragen (Rückgabewert in Millisekunden)
x = FB_MCI ("position"["pos"],AliasName als String)
Einige Beispiele zeigen wie man Hintergrundmusik und gleichzeitig akustische Effekte
erzielen kann.
Viel Spass damit wünscht euch Volta.
#include once "windows.bi"
#include once "win/mmsystem.bi"
'[ FREEBASE[IC] AUDIO WRAPPER BY EINLANDER]
'Freebasic specific audio wrapper for the windows mmsystem
'Die Orginalversion von EINLANDER ist leider im Internet nicht mehr zu finden?
'(fixed for FB 0.15b by Volta)
Function FB_MCI(ByVal FB_MCICOMMAND As String, ByVal f_Alias As String) As Integer
Dim temp As String *256
f_Alias = UCase(f_Alias)
Select Case LCase(Trim(FB_MCICOMMAND))
Case "play","on","an"
mciSendString("play " & f_Alias &" from " & 0, NULL, 0, 0)
Case "close","off","aus"
mciSendString("close " & f_Alias, NULL, 0, 0)
Case "stop"
mciSendString("stop " & f_Alias, NULL, 0, 0)
Case "length","len"
mciSendString("status " & f_Alias & " length", temp, 256,0)
FB_MCI = Val(temp)
Case "position","pos"
mciSendString("status " & f_Alias & " position", temp, 256, 0)
FB_MCI = Val(temp)
End Select
End Function
Function FB_MCI_open(ByVal FILENAME As String, ByVal f_Alias As String) As Integer
f_Alias = UCase(f_Alias)
FB_MCI ("close",f_Alias)
FB_MCI_open = mciSendString("open " & Chr(34) & FILENAME & Chr(34) & " alias " & f_Alias, NULL, 0, 0)
mciSendString ("set " & f_Alias & " time format milliseconds", NULL, 0, 0)
End Function
'Einige Beispiele zeigen wie man Hintergrundmusik und gleichzeitig
'akustische Effekte erzielen kann.
Dim Hintergrundmusik as string
Dim Effekt1 as string
Dim Effekt2 as string
Hintergrundmusik = "music.mp3" 'Hier den Dateinamen der Hintergrundmusik angeben
Effekt1 = "effekt1.mp3" 'hier den Dateinamen fuer Effekt1 angeben
Effekt2 = "effekt2.wav" 'hier den Dateinamen fuer Effekt2 angeben
Dim t As Integer
FB_MCI_open Hintergrundmusik, "Volta"
t = FB_MCI ("LEN","volta")
FB_MCI "an","volta"
Print "abspielen (" & t\1000 & " sek)"
Sleep 4000
Print "ein paar Effekte dazu"
FB_MCI_open Effekt1, "HiVolta"
FB_MCI_open Effekt2, "Voltage"
For i as integer= 1 To 7
FB_MCI "an","HiVolta"
Sleep (FB_MCI ("LEN","HiVolta"))+500
Sleep 1000
FB_MCI "an","Voltage"
Sleep (FB_MCI ("LEN","Voltage"))+500
Next
FB_MCI "aus","HiVolta"
FB_MCI "aus","Voltage"
Sleep 1000
Print "stop ";
FB_MCI "stop","Volta"
Print "3 "; : Sleep 1000
Print "2 "; : Sleep 1000
Print "1" : Sleep 1000
Print "an als Endlosschleife (Tastedruck bricht hier ab)"
FB_MCI "an","volta"
Do
If FB_MCI ("pos","volta")> t-10 Then FB_MCI "an","volta"
Sleep 99
Loop While InKey = ""
FB_MCI "aus","Volta"
End
Zusätzliche Informationen und Funktionen |
- Das Code-Beispiel wurde am 13.06.2007 von Eternal_Pain angelegt.
- Die aktuellste Version wurde am 13.06.2007 von Eternal_Pain gespeichert.
|
|