Bass Dll Problem: BASS_ChannelSetPosition
Übersicht

![]() |
JeanBetreff: Bass Dll Problem: BASS_ChannelSetPosition |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Zusammen
Für meinen Portable Audio Player (Screenshot in der Galerie) sollte die Position in einem beliebigen Audiofile mittels eines Sliders verschoben werden können. Nur leider habe ich damit einige Probleme: 1. Wenn ich den Slider verschiebe geht dieser sofort zur Anfangsposition zurück. 2. Die Byteposition scheint nicht mir der von "BASS_ChannelSetPosition" erwarteten Position übereinzustimmen. Kann mir jemand sagen, was ich ändern soll? Code: [AUSKLAPPEN] Include "bass.bb"
Global datei$ = RequestFile$ () Global size = FileSize (datei$) Global main_window = CreateWindow ("Music Player",0,0, 270, 132,0,1) Global main_rahmen = CreatePanel (5, 27, 252, 73, main_window, 1) Global main_slider = CreateSlider (5, 5, 238, 35, main_rahmen,1) SetSliderRange main_slider, 2, size ;Die Dateigrösse wird als Gesamtlänge interpretiert Global error = BASS_Init(-1,44100,0,0,BASS_NULL) Global mhandle = BASS_StreamCreateFile(0,datei$,0,0,BASS_MUSIC_FLOAT) BASS_ChannelPlay(mhandle,BASS_TRUE) ;Sounddatei abspielen Repeat pos = BASS_StreamGetFilePosition (mhandle,BASS_FILEPOS_CURRENT) ;Aktuelle Abspielposition auslesen... SetSliderValue main_slider, pos ;... und mit dem Slider darstellen event = WaitEvent (1) If event = $803 Then ;Wird das Fenster gschlossen... BASS_Free% () ;...wird der Channel gelöscht... End ;...und das Programm beendet Else If event = $401 And EventSource () = main_slider Then ;Wird der Slider verschoben... BASS_ChannelSetPosition(mhandle,SliderValue (main_slider)) ;...wird die Abspielposition geändert <---PROBLEM! End If Forever ![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] CLen#=BASS_ChannelGetLength(BassHandle)
CPos#=BASS_ChannelGetPosition(BassHandle) ...zum ermitteln der Daten. Aus diesen kann u.a. auch die Apspielposition angezeigt werden. Um eine neue Position zu setzen, kann folgendes gemacht werden. Code: [AUSKLAPPEN] BASS_ChannelSetPositionQ%(BassHandle,PositionInProzent/100.0*CLen,0)
P.S.: - Mit der Variable PositionInProzent wird eben dann die Position festgelegt. - Nur zum setzen brauchst du die CPos -Zwischenvariable nicht. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Jean |
![]() Antworten mit Zitat ![]() |
---|---|---|
1000 Dank! Es ist wirklich erfreulich, wie gut die Bass Dll supportet wird! ![]() |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
öhm..bitte nicht BASS_ChannelSetPositionQ% sondern BASS_ChannelSetPosition% , sonst umgeht Ihr meinen QWORD Schutz. *g* (böser hectic, umgeht einfach meine mühsam und mit Liebe geproggten Schutzfunktionen). lol
Code: [AUSKLAPPEN] Function BASS_ChannelSetPosition%(Han_dle,pos%) Local temp temp = BASS_ChannelSetPositionQ%(Han_dle,pos%,0) Return temp End Function Ok, beides geht natürlich, ich habe es halt gemacht damit die Dokumentation auch dem Code entspricht. Also der selbe Befehl, dafür fällt die ,0 hinten weg. Deswegen ist die Q Variante auch nicht dokumentiert. cu |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aha, schön zu wissen *amkopfkratz* dachte dass grad die nicht 'Q'-Variante nicht funktionieren würde, da ich (bei nutzen der Funktion) und du (beim erstellen dieser) damals ja Probleme damit hatten.
Hab's bei meinem Dreamplayer grad mal ausprobiert, und funktioniert jetzt auch ohne 'Q' wunderbar. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group