Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24
  1. #11
    Ti ringrazio, ora ho chiarito.
    I fatto è che io usavo direct show nell'applicazione solo per i video perchè quando cercavo di aprire un file audio mi dava un errore semplicemente perchè lo settavo come fosse un video.
    Ora penso sia tutto chiaro.

    Provo e ti faccio, sapere.
    Grazie mille

  2. #12
    Allora ho seguito le tue istruzione e ho inserito questa selezione nela procedura di apertura di un file multimediale:

    codice:
    If Mid$(FileName, InStrRev(FileName, ".") + 1) = "wav" Then
      Set DSControl = New QuartzTypeLib.FilgraphManager
      Set DSAudio = DSControl
      DSAudio.Balance = 0
      DSAudio.Volume = 0
      Set DSPos = DSControl
    
    Else
     ...apre un video...
    End if
    Solo che quando cerco di aprire un video si genera un errore alla linea "DSAudio.Balance = 0" che dice che l'oggetto non supporta questa azione.
    Sai perchè?
    Grazia ancora

  3. #13

  4. #14
    Originariamente inviato da Meldon
    Allora ho seguito le tue istruzione e ho inserito questa selezione nela procedura di apertura di un file multimediale:

    codice:
    If Mid$(FileName, InStrRev(FileName, ".") + 1) = "wav" Then
      Set DSControl = New QuartzTypeLib.FilgraphManager
      Set DSAudio = DSControl
      DSAudio.Balance = 0
      DSAudio.Volume = 0
      Set DSPos = DSControl
    
    Else
     ...apre un video...
    End if
    Solo che quando cerco di aprire un video si genera un errore alla linea "DSAudio.Balance = 0" che dice che l'oggetto non supporta questa azione.
    Sai perchè?
    Grazia ancora
    dsaudio che oggetto è devi scrivere anche le dichiarazioni
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  5. #15
    Ecco qui il codice completo di dichiarazioni:

    codice:
    Global DSAudio As IBasicAudio
    Global DSControl As IMediaControl
    Global DSPos As IMediaPosition
    
    Sub OpenFile(FileName As String...)
    If Mid$(FileName, InStrRev(FileName, ".") + 1) = "mp3" Then
      Set DSControl = New QuartzTypeLib.FilgraphManager
      Set DSAudio = DSControl
      DSAudio.Balance = 0
      DSAudio.Volume = 0
      Set DSPos = DSControl
    
    Else
    ...Etc
    
    End if

  6. #16

  7. #17
    ti manca l'oggetto window

    codice:
    Option Explicit
    
    Private Type RECTANGLE
            Left As Integer
            Top As Integer
            Width As Integer
            Height As Integer
    End Type
    
    
    Private DSAudio As IBasicAudio
    Private DSVideo As IBasicVideo
    Private DSWindow As IVideoWindow
    Private DSControl As IMediaControl
    Private DSPos As IMediaPosition
    Const WS_VISIBLE = &H10000000
    
    Private Sub cmd_Apri_Click()
    Dim r As RECTANGLE
    Dim ls_Filename As String
        r.Top = 0
        r.Left = 0
        r.Width = pic_screen.Width
        r.Height = pic_screen.Height
        cd1.ShowOpen
        ls_Filename = cd1.Filename
        Call OpenFile(ls_Filename, r, pic_screen.hWnd, False)
    End Sub
    
    Private Sub cmd_Play_Click()
        If Not (DSControl Is Nothing) Then
            DSControl.Run
        End If
    End Sub
    
    Private Sub cmd_stop_Click()
        DSControl.Stop
    End Sub
    
    Private Sub OpenFile(Filename As String, _
        Rect As RECTANGLE, _
        FhWnd As Long, fullScreen As Boolean )
        
    On Error Resume Next
        Screen.MousePointer = vbHourglass
        
        Call termina
        
        Set DSControl = New FilgraphManager 'crea il controllo
        Call DSControl.RenderFile(Filename) 'carica il file
        'crea il controllo del volume
        Set DSAudio = DSControl
        DSAudio.Volume = 0 'regola il volume come normale
        DSAudio.Balance = 0 'centra l'audio
        
        Set DSWindow = DSControl
        'finestra visibile
        DSWindow.WindowStyle = WS_VISIBLE
        'dimensioni del controllo
        DSWindow.Top = Rect.Top
        DSWindow.Left = Rect.Left
        DSWindow.Width = Rect.Width
        DSWindow.Height = Rect.Height
        'dove lo mostro
        DSWindow.Owner = FhWnd
        DSWindow.FullScreenMode = fullScreen
        
        Set DSPos = DSControl 'crea il controllo della posizione
        DSPos.Rate = 1
        Screen.MousePointer = vbDefault
        
    End Sub
    
    Private Sub termina()
    On Error Resume Next
    
        DSControl.Stop
        DSWindow.Owner = 0
        
        Set DSAudio = Nothing
        Set DSVideo = Nothing
        Set DSControl = Nothing
        Set DSWindow = Nothing
        Set DSPos = Nothing
    
    End Sub
    questo è un player semplicissimo
    ti serve una picturebox pic_screen
    tre commandbutton (cmd_Apri, cmd_Stop, cmd_Play)
    e una commndialog (CD1)
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  8. #18
    Quello lo ho già fato e ho dichiarato anche Window solo che li uso per il video. Ma se utilizzo la stessa procedura per la'udio mi da un errore.

    Si blocca tutta l'applicazione al RenderFile. Non riesco a capire cosa stia succedendo.

  9. #19
    dovresti essere + preciso
    il rendering del file dipende dal formato e dalla grandezza dello stesso nonchè dalla potenza della macchina.

    a me come l'ho scritto funziona benissimo
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  10. #20
    Queto è tutto il codice della procedura che utilizzo:

    codice:
    Global DSAudio As IBasicAudio
    Global DSVideo As IBasicVideo
    Global DSWindow As IVideoWindow
    Global DSControl As IMediaControl
    Global DSPos As IMediaPosition
    
    Global Const WS_VISIBLE = &H10000000
    
    Sub DS_OpenFile(FileName As String, _
    rectTop As Integer, _
    rectLeft As Integer, _
    rectWidth As Integer, _
    rectHeight As Integer, _
    Fhwnd As Long, Optional fullScreen As Boolean = False)
    
    Call DS_termina 'procedura per resettare il device
    DoEvents
    
    
    Set DSControl = New FilgraphManager
    Call DSControl.RenderFile(FileName)
    'crea il controllo del volume
    Set DSAudio = DSControl
    DSAudio.Volume = 0 'regola il volume come normale
    DSAudio.Balance = 0 'centra l'audio
    
    Set DSWindow = DSControl 
    DSWindow.WindowStyle = &H10000000 
    DSWindow.Top = rectTop 
    DSWindow.Left = rectLeft
    DSWindow.Width = rectWidth
    DSWindow.Height = rectHeight
    DSWindow.Owner = Fhwnd
    DSWindow.FullScreenMode = fullScreen
    
    Set DSPos = DSControl
    DSPos.Rate = 1
    End If
    End Sub
    Finche apro un qualsiasi formato video tutto ok. Riesco a visualizzarlo nella picture. Ma quando cerco di aprire un file audio tutta l'applicazione si arresta e sono constratto a chiudere tutto dal TaskManager di windows.
    Non penso proprio che sia un problema di grandezza di file perchè stò lavorando con video che arrivano fino a 12 Gbyte e il wave che provo ad aprire è di qualche mega.

    Non riesco proprio a capire cosa stia succedendo.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.