none
Utilizzo oggetto WindowsMediaPlayer RRS feed

  • Domanda

  • Sto sviluppando un applicazione per riprodurre musica
    L'ambiente di sviluppo è Visual Studio 2015 Visual Basic
    Oggetto utilizzato AxWindosMediaPlayer
    Riunisco tutti i titoli con relativi indirizzi in un DataGridView [GRD]
    due le modalità di riproduzione
    1 ) Tutti i Brani    (esegue tutti i brani di GRD spostandosi di una riga ogni volta che un brano è terminato)
    2 ) Il brano selezionato (esegue il brano della riga del GRD sulla quale si clicca)
    Utilizzando le 3 semplici routines documentate di seguito


    Problemi
    Modalità 1
    Nell'evento PlayStateChange non sempre lo stato 8 viene generato
    Per cui l'applicazione esegue 2/3 brani poi si ferma ..............................???

    Modalità 2
    Cliccando sul DataGrid la sub esegui da l'errore :
    An exception of type 'System.Runtime.InteropServices.COMException' occurred in AT.exe but was not handled in user code

    Additional information: Eccezione da HRESULT: 0xC00D1054

    .........................??????????????????????????

    Private Sub AxWindowsMediaPlayer1_PlayStateChange(sender As Object, e As _WMPOCXEvents_PlayStateChangeEvent) _
                Handles AxWindowsMediaPlayer1.PlayStateChange
       Dim nStato As Integer = e.newState
       Select Case nStato
          Case 8, 10 ' esecuzione terminata , ready
             GRDDET.Rows(nRigaAttiva).Selected = False
             If nRigaAttiva = GRDDET.RowCount - 1 Then
                nRigaAttiva = 0
             Else
                nRigaAttiva += 1
             End If
             GRDDET.Rows(nRigaAttiva).Selected = True
             Esegui()
       End Select
    End Sub
    
    Private Sub GRDDET_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles GRDDET.CellClick
         nRigaAttiva = e.RowIndex
         Esegui()
    End Sub
    
    Private Sub Esegui()
       Dim sFile As String = GRD.Item(0, nRigaAttiva).Value.ToString
       AxWindowsMediaPlayer1.URL = sFile
       AxWindowsMediaPlayer1.Ctlcontrols.play()
    End Sub

    sabato 4 giugno 2016 07:28