Gambas: Sound

Aus Wikibooks
Zur Navigation springen Zur Suche springen


zurück zu Gambas


Zur Soundprogrammierung braucht man die Datei gb.sdl und natürlich eine funktionierende Soundkarte, die in Linux eingebunden ist. Siehe zB http://www.binara.com/gambas-wiki/bin/view/Gambas/GbSdl Siehe auch: http://www.binara.com/gambas-wiki/bin/view/Gambas/FutureSDLComponent

Zum Thema Sound in Gambas gibt es ein ganz gutes Beispiel : In den Beispielen die mit Gambas geliefert werden ist ein MusicPlayer im Quelltext dabei. zb

' Gambas class file 
 
STATIC PRIVATE $bDoNotMove AS Boolean 
 
PUBLIC SUB btnOpen_Click() 
 
  IF Dialog.OpenFile() THEN RETURN 
 
  lblTitle.Text = File.Name(Dialog.Path) 
  ' Approximation... 
  sldPos.MaxValue = 600 
 
  Music.Load(Dialog.Path) 
  btnPlay_Click 
 
END 
 
PUBLIC SUB btnPlay_Click() 
 
  timMusic.Enabled = TRUE 
  Music.Play 
 
END 
 
PUBLIC SUB btnPause_Click() 
 
  Music.Pause 
 
END 
 
PUBLIC SUB btnStop_Click() 
 
  Music.Stop 
  timMusic.Enabled = FALSE 
  lblPos.Text = "" 
  sldPos.Value = 0 
 
END 
 
PUBLIC SUB timMusic_Timer() 
 
  DIM iPos AS Integer 
  DIM iVal AS Integer 
  DIM sPos AS String 
  DIM iInd AS Integer 
 
  iPos = Music.Pos 
 
  IF NOT $bDoNotMove THEN 
    Object.Lock(sldPos) 
    IF iPos > sldPos.MaxValue THEN 
      sldPos.MaxValue = sldPos.MaxValue * 2 
    ENDIF 
    sldPos.Value = iPos 
    Object.Unlock(sldPos) 
  ENDIF 
 
  FOR iInd = 0 TO 2 
 
    iVal = iPos MOD 60 
    iPos = iPos \ 60 
    IF iInd THEN 
      sPos = Format(iVal, "00") & ":" & sPos 
    ELSE 
      sPos = Format(iVal, "00") 
    ENDIF 
 
  NEXT 
 
  lblPos.Text = sPos 
 
END 
 
PUBLIC SUB sldPos_Change() 
 
  Music.Pos = sldPos.Value 
 
END 
 
PUBLIC SUB sldPos_MouseDown() 
 
  $bDoNotMove = TRUE 
 
END 
 
PUBLIC SUB sldPos_MouseUp() 
 
  $bDoNotMove = FALSE 
 
END 
 
PUBLIC SUB sldVolume_Change() 
 
  Music.Volume = 1 - sldVolume.Value / sldVolume.MaxValue 
 
END