IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

probleme d'utilisation directx sous vs2010 framework 4.0


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut probleme d'utilisation directx sous vs2010 framework 4.0
    tout d'abord bonjour a tous et merci des nombreux renseignements (et enseignement) mis à disposition sur le forum
    voila mon soucis
    utilisation de Microsoft.DirectX.AudioVideoPlayback sous vs 2010
    en effet je n'avais pas de problème particulier sous studio 2008 avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Imports System.IO
    Imports Microsoft.DirectX.AudioVideoPlayback
     
    Public Class Form1
        Private path_musik As String = ""
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            path_musik = Application.StartupPath & "\song.mid"
            IO.File.WriteAllBytes(path_musik, My.Resources.muzik)
                    zik()
        End Sub
     
        Sub zik()
            Dim playaudio As New Microsoft.DirectX.AudioVideoPlayback.Audio(path_musik)
            playaudio.Play()
        End Sub
    bon ce n'est peut être pas du grand code je ne suis pas pro juste "bricoleur"
    mais ca marche du moins sur mon vieux pc

    donc sous mon seven avec vs2010 j'ai installé le dernier sdk directx (june2010)
    mais après reboot les composants directx n'apparaissent pas dans les références .NET ???
    j'ai rajouté MicrosoftDirectXAudioVideoPlayback en manuel par parcourir
    ce qui déjà me parait être une mauvaise solution...
    mais mon code et reconnu par l'intellisense
    mais la j'ai une exception
    fileloadexception:

    l'assembly en mode mixte est créé avec la version 'v1.1.4322 du runtime et ne peut pas être chargé dans le runtime 4.0 sans d'autres informations de configuration.
    donc problème de compatibilité ...
    et la je bloque merci de votre aide

    ps: par contre l'exe crée sous vs 2008 fonctionne sous mon seven

  2. #2
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut
    merci a buns pour les corrections de présentation
    j'y ferais attention la prochaine fois
    et en attendant d'avoir réponse a la question: pourquoi je ne retrouve pas les composants directx dans les références .net de vb studio 2010 après installation du dernier sdk ?
    je vous souhaite a tous un joyeux réveillon et une heureuse année 2011

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut
    snif ... les réponses ne se bousculent pas

    décidément jouer un .mid sous vs 2010 me pose pas mal de soucis
    j'ai essayer avec le code suivant (fonctionne sous vs 2008 fram 3.5)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand As String) As Long
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            path_musik = Application.StartupPath & "\song.mid"
            IO.File.WriteAllBytes(path_musik, My.Resources.muzik)
    mciExecute("play " & path_musik)
    End Sub
    et la encore exception ...

    le périphérique spécifié n'est pas ouvert ou n'est pas reconnu par MCI
    maintenant j'essaie d'utiliser bassMod.net.dll
    mais je n'y arrive pas ...
    pour ca je vais surement ouvrir un autre post
    enfin je vais d'abord réessayer
    si vous avez d'autres solutions je suis preneur
    merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 28
    Par défaut
    Salut,

    merci! Bonne année à toi également!
    C'est drôle, j'ai proposé hier une réponse à Mario
    qui voulait connaitre la longueur d'un .wav, c'est ici :

    http://www.developpez.net/forums/d10...-longueur-wav/

    L'API mciSendString va faire exactement ce que tu veux, du coup
    plus besoin d'avoir DirectX installé sur l'ordinateur. Concernant mciExecute
    je ne connais pas donc ne peut d'aiguiller. Voici ce que tu peux utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, _
        ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer
     
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
    Dim Musik = Chr(34) & "C:\song.mid") & Chr(34)
    mciSendString("open " & Musik & " alias SongMid", Nothing, 0, 0)
    mciSendString("play SongMid", Nothing, 0, 0) 
    mciSendString("close SongMid", Nothing, 0, 0)
     
    End Sub
    Voilà, çà devrait fonctionner, a plus

    Cz

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut
    un grand merci pour ta méthode ca marche impeccable
    j'ai juste cafouille un peu avec les double quote
    indispensables pour mciSendString
    mais gênant pour système IO pour copier ma ressource sur le disque

    mais même si mon problème est résolu je laisse le post comme ca car ca ne répond pas à la question de base : pourquoi pas de directX sous studio 2010 ?

    une autre petite question existe il une méthode du style :

    mciSendString("playloop SongMid", Nothing, 0, 0)

    pour jouer en boucle
    autrement je me débrouillerais avec un timer et la récupération de la longueur du .mid
    encore merci pour ton aide

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut
    après un peu de recherche sur msdn
    il existe bien une méthode ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mciSendString("play SongMid repeat", Nothing, 0, 0)
    mais ca ne fonctionne pas ???

    autrement avec un timer ca marche mais avec une latence d'environ 1 a 2 secondes entre chaque reprise
    alors c'est pas top ...

Discussions similaires

  1. Utiliser DirectX 9 avec C++Builder
    Par Olivier Constans dans le forum DirectX
    Réponses: 2
    Dernier message: 27/06/2005, 11h30
  2. Probleme d'utilisation de directX 9 avec visual studio.net
    Par cranedoeuf dans le forum DirectX
    Réponses: 1
    Dernier message: 24/05/2004, 04h33
  3. probleme GRAVE avec directx 9
    Par l'arbre en plastique dans le forum DirectX
    Réponses: 3
    Dernier message: 02/09/2003, 23h59
  4. Problème montage partition Win sous RedHat ??
    Par baba dans le forum Administration système
    Réponses: 6
    Dernier message: 18/01/2003, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo