Audioplayer

Anfängerfragen zum Programmieren mit PureBasic.
Yoshi
Beiträge: 95
Registriert: 09.01.2007 16:42

Beitrag von Yoshi »

Ihr werdets nicht glauben, aber ich habs tatsächlich geschaftt!


EDIT:

Naja doch nicht ganz, egal was ich drücke, ich soll immer die Datei aussuchen die ich laden möchte ^^
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

tasten kannst du per Addkeyboardshortcut() einem fenster zuweisen und
ne dateiauswahl findest du hinter dem ok knopf im ff beispiel

Code: Alles auswählen

;pb4.1
;Windowkonstanten
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants

Enumeration
  #Button_0
  #Button_1
  #Text_0
  #Text_1
EndEnumeration

;shortcutevents
Enumeration
  #shortcutA
  #shortcutB
  #shortcutC
  #shortcutD
  #shortcutE
  
EndEnumeration

#shortcutAtext$=" Taste A gedrückt. Hänschen klein..."
#shortcutBtext$=" Taste B gedrückt. geht allein"
#shortcutCtext$=" Taste C gedrückt. in die weite welt.."
#shortcutDtext$=" Taste D gedrückt. Stock und so weiter.."
#shortcutEtext$=" Taste E gedrückt. juhu hallo.."


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      ButtonGadget(#Button_0, 160, 40, 130, 30, "ok")
      TextGadget(#Text_0,300,45,100,20,"<- zur Dateiauswahl")
      ButtonGadget(#Button_1, 380, 70, 150, 30, "ko")
      TextGadget(#Text_1,280,80,100,20,"zum beenden -->")

    EndIf
  EndIf
  AddKeyboardShortcut(#window_0,#PB_Shortcut_A,#shortcutA) ; hier wird ein Tastenshortcut dem Fenster zugewiesen
  AddKeyboardShortcut(#window_0,#PB_Shortcut_B,#shortcutB) ; hier wird ein Tastenshortcut dem Fenster zugewiesen
  AddKeyboardShortcut(#window_0,#PB_Shortcut_A,#shortcutC) ; hier wird ein Tastenshortcut dem Fenster zugewiesen
  AddKeyboardShortcut(#window_0,#PB_Shortcut_A,#shortcutD) ; hier wird ein Tastenshortcut dem Fenster zugewiesen
  AddKeyboardShortcut(#window_0,#PB_Shortcut_A,#shortcutE) ; hier wird ein Tastenshortcut dem Fenster zugewiesen
EndProcedure

Open_Window_0()

Repeat ; Start of the event loop
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
  GadgetID = EventGadget() ; Is it a gadget event?
  EventType = EventType() ; The event type
  ;You can place code here, and use the result as parameters for the procedures
  If event=#PB_Event_Menu
  Select EventMenu()
  Case #shortcutA
        MessageRequester("siehste","aha ..  "+#shortcutAtext$+" gedrückt")
  Case #shortcutB
        MessageRequester("siehste","aha ..  "+#shortcutBtext$+" gedrückt")
  Case #shortcutC
        MessageRequester("siehste","aha ..  "+#shortcutCtext$+" gedrückt")
  Case #shortcutD
        MessageRequester("siehste","aha ..  "+#shortcutDtext$+" gedrückt")
  Case #shortcutE
        MessageRequester("siehste","aha ..  "+#shortcutEtext$+" gedrückt")
EndSelect
  EndIf
  
  If Event = #PB_Event_Gadget
    If GadgetID = #Button_0
      Pattern$ = "Text (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Alle Dateien (*.*)|*.*"
      Pattern = 0  
      File$ = OpenFileRequester("Bitte Datei zum Laden auswählen", StandardFile$, Pattern$, Pattern)
      MessageRequester("Soso","Du hast also"+#CRLF$+File$+#CRLF$+" ausgewählt",0)
    ElseIf GadgetID = #Button_1
      End
    EndIf
  EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Yoshi
Beiträge: 95
Registriert: 09.01.2007 16:42

Beitrag von Yoshi »

Danke bobobo.


Aber mit dem Quelltext weiß ich immer noch nicht, warum es noch nicht so recht geht, wie ich es mir vorstelle.

Das Problem ist, dass in der Menü-Leiste egal ist, auf was ich klicke, es kommt immer dieses "Datei-laden" Fenster.

Code: Alles auswählen

#WindowWidth = 300
#WindowHeight = 150

If InitMovie() = 0
  MessageRequester("Error", "Da geht was nicht!", 0)
  End
EndIf


If OpenWindow(0, 110, 110, #WindowWidth, #WindowHeight, "Player", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered )
  If CreateMenu(0, WindowID(0))
    MenuTitle("Datei")
      MenuItem(0, "Musikdatei laden")
      MenuItem(1, "Beenden")
    MenuTitle("Status")
      MenuItem(2, "Wiedergabe")
      MenuItem(3, "Pause")
      MenuItem(4, "Stopp")
    MenuTitle("Lautstärke")
      MenuItem(5, "0%")
      MenuItem(6, "10%")
      MenuItem(7, "20%")
      MenuItem(8, "25%")
      MenuBar()
      MenuItem(9, "30%")
      MenuItem(10, "40%")
      MenuItem(11, "50%")
      MenuBar()
      MenuItem(12, "60%")
      MenuItem(13, "70%")
      MenuItem(14, "75%")
      MenuBar()
      MenuItem(15, "80%")
      MenuItem(16, "90%")
      MenuItem(17, "100%")
  EndIf
  
  HideWindow(0, 0)
  Volume= 100
  Repeat
    Select WindowEvent()
      Case #PB_Event_Menu
        Select EventMenu
          Case 0
            MovieName$ = OpenFileRequester("Bitte wöhlen sie die zu ladene Datei!", "", "Audiodateien|*.wma;*.mp3;*.ram;*.wav|Alle Dateien|*.*", 0)
            If MovieName$
              If LoadMovie(0, MovieName$)
                MovieLoaded = 1
                MovieState = 0
                
                If MovieHeight(0) > 0  ; Not an audio only file..
                  ResizeWindow(0, #PB_Ignore, #PB_Ignore, MovieWidth(0), MovieHeight(0)+70)
                Else
                  ResizeWindow(0, #PB_Ignore, #PB_Ignore, #WindowWidth, #WindowHeight)
                EndIf
                
                StatusBarText(0, 0, "Datei wurde geladen", 0)
              Else
                StatusBarText(0, 0, "Datei kann nicht geladen werden", 0)
              EndIf
            EndIf
            
          Case 1
            End
            
          Case 2
            If MovieLoaded
              If MovieState = 2
                ResumeMovie(0)
              Else
                PlayMovie(0, WindowID(0))
              EndIf
              MovieState = 1  
            EndIf
            
          Case 3
            If MovieLoaded And MovieState = 1
              PauseMovie(0) 
              MovieState = 2  
              
           EndIf
           
          Case 4
            If MovieLoaded And MovieState = 1
              StopMovie(0)
              MovieState = 3 
              
           EndIf
           
          Case 5
            Volume = 0
            
          Case 6
            Volume = 10
          
          Case 7
            Volume = 20
            
          Case 8
            Volume = 25
            
          Case 9
            Volume = 30
            
          Case 10
            Volume = 40
            
          Case 11
            Volume = 50
            
          Case 12
            Volume = 60
            
          Case 13
            Volume = 70
            
          Case 14
            Volume = 75
            
          Case 15
            Volume = 80
            
          Case 16
            Volume = 90
            
          Case 17
            Volume = 100
            
        EndSelect
        
        Case #PB_Event_CloseWindow
        End
        
      Case #PB_Event_SizeWindow
        If IsMovie(0)
          ResizeMovie(0, 0, 27, WindowWidth(0), WindowHeight(0)-70)
        EndIf
        
      Case 0
        Delay(20)
        
        
    EndSelect
  ForEver
EndIf
End                  
Benutzeravatar
D@nte
Beiträge: 324
Registriert: 24.04.2007 15:33
Wohnort: Berlin

Beitrag von D@nte »

Zeile 43...

Und du solltest dir schon mal angewöhnen Konstanten für die GadgetIDs zu benutzen...
Yoshi
Beiträge: 95
Registriert: 09.01.2007 16:42

Beitrag von Yoshi »

Danke, jetzt spint er immer noch rum, aber mal schaun.
Yoshi
Beiträge: 95
Registriert: 09.01.2007 16:42

Beitrag von Yoshi »

Also jetzt habe ich bei Zeile 43

Code: Alles auswählen

Select EventMenu()
statt

Code: Alles auswählen

Select EventMenu
gemacht und jetzt kommt nicht mehr das nervige Fenster, aber ich kann die datei nicht wiedergeben.


EDIT:

Wave macht er, aber keine Mp3s.
Benutzeravatar
D@nte
Beiträge: 324
Registriert: 24.04.2007 15:33
Wohnort: Berlin

Beitrag von D@nte »

>Wave macht er, aber keine Mp3s.
Geht beides
Yoshi
Beiträge: 95
Registriert: 09.01.2007 16:42

Beitrag von Yoshi »

Komisch auf einmal gehts bei mir auch... vielleicht lags aber auch an der Datei, dass er die nicht abspielen konnte!



EDIT:

Das Thema wäre hiermit, denke ich, beendet!
Antworten