Ergebnis 1 bis 4 von 4

Thema: Abspielen von Musik CD's in Access (Office 2016)

  1. #1
    Office-Hilfe.com - Neuling
    Registriert seit
    02.01.2019
    Beiträge
    10

    Abspielen von Musik CD's in Access

    Ich habe in einer Datenbank ca. 4500 Audio Dateien abgelegt. Hier kann ich mir eine beliebige Anzahl von Liedern und deren Abspielreihenfolge auswählen.
    Wenn ich alle ausgewählten Lieder abspielen will, verwende ich folgende Prozedur:
    Private Sub BSFAlle_Click()

    Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone
    rs.MoveFirst
    Do While Not rs.EOF
    Shell ("C:\Programme\Windows Media Player\wmplayer.exe" & " """ & rs!Pfad & """")
    DoEvents
    Sleep rs!Länge_Millisek
    rs.MoveNext
    Loop

    End Sub
    Das problem dabei ist aber, dass ich dabei nur die ganze Auswahl abspielen kann. Wenn ich dazwischen abbrechen möchte, stürzt Access ab und muss neu gestartet werden. Wie kann ich dass verhindern ???
    Das zweite Problem ist, wenn ich nur ein bestimmtes Lied der Auswahl abspielen möchte, gibt es folgende Prozedur:
    Private Sub cmdStarten_Click()

    Dim objMediaPlayer As WindowsMediaPlayer
    Set objMediaPlayer = MediaPlayer.Object

    With objMediaPlayer
    Me!MediaPlayer.URL = Me.Pfad
    End With

    End Sub
    Danach kommt aber eine Fehlermeldung: Methode oder Datenobjekt nicht gefunden (Verweis auf den eintrag "MediaPlayer.Object".
    Was kann hier die Ursache sein ???
    Kann mir dabei jemand helfen ???
    Vielen Dank Herbert2241

  2. #2
    Office-Hilfe.com - Neuling
    Registriert seit
    22.08.2020
    Ort
    Bayer in Berlin
    Beiträge
    4
    Hallo Herbert 2241,
    ein sehr komplexes Thema.

    Zum Abspielen einer Liste.
    Du kannst es über eine Fehlerabfangroutine probieren.
    Ich finde es aber sehr instabil und auch unflexibel, über SHELL angestossene WMP Prozesse aus einem Recordset heraus steuern zu wollen.
    Du kannst einen Song weder pausieren, sauber stoppen, noch noch etc.
    Ich würde die Soundpfade aus den Windowsordnern in eine Tabelle einlesen, diese in einem Listenfeld im Formular anzeigen
    und dieses ebenso mit dem ActiveX des WindowsMediePlayers (WMP) steuern.
    Man kann dann auch über Formularbuttons auf alle Eigenschaften des WMP zugreifen (Level, Zeitzähler, PlayStati, etc.)
    Du musst ein ActiveX Element des (WMP) im Formular haben.
    Dein ActiveX Element des (WMP) muss in den Eigenschaften...Andere
    den Namen "Mediaplayer" haben.
    Ein Looping Beispiel mit dem Auslesen des ListIndex in einer Schleife und dem Übergang von Sound zu Sound über einen Timer.
    Code:
    Private Sub btnListplayLoop_Click()
    Dim a As Long
    On Error GoTo Fehler
    Dim Start, pausenlänge, Ende
      For a = Me!LstOrdner.ListIndex + 1 To LstOrdner.ListCount - 1
        Me!LstOrdner.Selected(a) = True
        Me.MediaPlayer.URL = Me!LstOrdner.Column(2)
        pausenlänge = 0.5    'Dauer festlegen.
        Start = Timer        'Anfangszeit setzen.
        Do While Timer < Start + pausenlänge
          DoEvents         'Steuerung an andere Prozesse abgeben.
        Loop
        Ende = Timer         'Ende festlegen.
        DoEvents
        
        If Me.txtStatus = "single playing" Then
          If MediaPlayer.playState = WMPLib.WMPPlayState.wmppsStopped Then
            DoEvents
            a = 0
          End If
          DoEvents
          Exit For
        End If
    1:
        If MediaPlayer.playState = WMPLib.WMPPlayState.wmppsPlaying Then
          DoEvents                      'Gibt die Steuerung wieder an den Computer ab
          a = a
          pausenlänge = 0.5     'Dauer festlegen damit der Player stoppt
          Start = Timer        'Anfangszeit setzen.
          Do While Timer < Start + pausenlänge
            DoEvents         'Steuerung an andere Prozesse abgeben.
          Loop
          Ende = Timer         'Ende festlegen.
    3:
         If MediaPlayer.playState = WMPLib.WMPPlayState.wmppsPaused Then
           DoEvents
           GoTo 3
          End If
          DoEvents
          GoTo 1
         End If
      Next a
    
    '2:
    Exit Sub
    exit_Fehler:
    Exit Sub
    Fehler:
    'MsgBox "Bitte ein Lied aus der Liste wählen..."
    'Me.MediaPlayer.Object.Controls.stop
    
    Resume exit_Fehler
    End Sub
    Code:
    Private Sub Form_Timer()
    On Error GoTo Fehler
      If Me.MediaPlayer.URL = "" Then
        Me.DeinTextfeld = "00:00:00"
       Else
        DoEvents
        Me.DeinTextfeld = DateAdd("s", -(Me.MediaPlayer.Object.Controls.currentPosition), strDauer)
        DoEvents
      End If
    Exit Sub
    exit_Fehler:
    Exit Sub
    Fehler:
    Resume exit_Fehler
    End Sub
    Zum Einzel-Abspielen:
    Du musst ein ActiveX Element des (WMP) im Formular haben.
    Dein ActiveX Element des (WMP) muss in den Eigenschaften...Andere
    den Namen "Mediaplayer" haben.
    Dann geht Folgendes
    Code:
    Private Sub cmdStarten_Click()
    Dim objMediaPlayer As WindowsMediaPlayer
      Set objMediaPlayer = Me.MediaPlayer.Object
    
      With objMediaPlayer
        .URL = Me.Pfad
      End With
    End Sub
    Oder noch kürzer, indem Du das Object direkt ansprichst

    Code:
    Private Sub cmdStarten_Click()
      With Me.MediaPlayer.Object
        .URL = Me.Pfad
      End With
    End Sub
    Weiteres ist dann einfach
    Code:
    Private Sub btnStop_Click()
      Me.MediaPlayer.URL = ""
      Me.MediaPlayer.Object.Controls.stop
    End Sub
    Code:
    Private Sub btnPausePlayerON_Click()
      Me.MediaPlayer.Object.Controls.pause
    End Sub
    Code:
    Private Sub btnPausePlayerOFF_Click()
      Me.MediaPlayer.Object.Controls.play
    End Sub

    Ich halte im folgenden Link immer eine kostenlose und aktualisierte Version meines in Access programmierten Players (WindowsPlayer) für jeden Interessenten vor,
    der sich daraus auch nur Teile aus den VBA-Codes "herausschneiden" will. Alles ist erlaubt.

    http://www.office-loesung.de/p/viewt...93438#p3293438
    Du kannst mich auch per PN oder Email erreichen.
    Da kann ich Dir auch (per email) kleiner gestaltete Beispiel-Datenbanken geben, welche ich für diverse User gestaltet habe.
    Du kannst mir aber auch Deine DB per Email schicken und ich analysiere sie für Dich

    Hier eine Beispiel DB miniVersion
    Angehängte Dateien Angehängte Dateien
    Geändert von derArb (05.09.2020 um 14:02 Uhr) Grund: jpg als Anhang zugefügt

  3. #3
    Office-Hilfe.com - Neuling
    Registriert seit
    22.08.2020
    Ort
    Bayer in Berlin
    Beiträge
    4
    Hallo,
    ...Du kannst mich auch per PN oder Email erreichen....
    Bisher kam nichts an bei mir. Das mag auch richtig sein.
    Trotzdem frag ich vorsichtshalber nochmal nach und hülle mich dann in abwartendes Schweigen.

  4. #4
    Office-Hilfe.com - Neuling
    Registriert seit
    02.01.2019
    Beiträge
    10
    Habe mich in letzter Zeit nicht mehr mit diesem Thema befasst. Danke trotzdem für Deine Hilfe. Wenn ich wieder in dieser Richtung aktiv werde, gebe ich Dir Bescheid.
    Lg Herbert

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Excel Ticker - News, Tipps und Tricks zu Microsoft Excel