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

Windows Presentation Foundation Discussion :

MediaTimeline source path


Sujet :

Windows Presentation Foundation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 13
    Points
    13
    Par défaut MediaTimeline source path
    Bonjour,

    J'ai créé une fenêtre qui doit me lire un élément audio en boucle.

    Hors celui-ci ne fonctionne que dans le cas ou je mets le chemin absolu, le relatif ne fonctionne pas.

    Voici le code fonctionnel :

    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
     
    <MediaElement Name="myMediaElement"
                          Visibility="Hidden">
                <MediaElement.Triggers>
                    <EventTrigger RoutedEvent="MediaElement.Loaded">
                        <EventTrigger.Actions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <MediaTimeline Source="C:\Users\username\Documents\Visual Studio 2013\Projects\TestOpenXML\Lion\Ressources\Audio\chimes.wav" Storyboard.TargetName="myMediaElement"  RepeatBehavior="Forever" />
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger.Actions>
                    </EventTrigger>
                </MediaElement.Triggers>
            </MediaElement>

    Le fichier est dans le dossier Ressources/Audio/chimes.wav que j'ai créer. Le build action est setter sur Ressource.


    Ma question est comment viser le chemin de la ressource ?

    ps : J'ai déjà mis un chemin vers les ressources dans mon application via Ressources/Images/Background.jpg sans problème mais dans le cas de la MediaTimeline il ne se passe rien (même pas d'erreur dans la console de sortie)

  2. #2
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 895
    Points : 1 911
    Points
    1 911
    Par défaut
    Je n'ai pas de réponse toute prête en tête à te fournir, mais je pense que l'information que tu recherches est la description des pack uri, que tu pourras trouver à cette adresse sur la MSDN.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Au final j'ai aussi essayé ceci : /Lion;component/Ressources/Audio/chimes.wav

    Mais toujours rien...

    Cette histoire renvoi d'une certaine façon au topic suivant : https://www.developpez.net/forums/d1...x/#post8978216

    Pour lequel je n'ai pas eu de réponse.


    Edit :

    Je me permet de rajouter les points suivants,

    Mes vues sont dans un dossier View.
    Mes ressources dans Ressources/Audio/Name.wav
    Nom : t.PNG
Affichages : 65
Taille : 4,5 Ko

    Donc mon image s'affiche quand je mets source ="../Ressources/Images/Background.jpg" mais pas ma musique/son non alors que j'ai mis : source ="../Ressources/Audio/chimes.wav"

  4. #4
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 895
    Points : 1 911
    Points
    1 911
    Par défaut
    Quelle est l'action de compilation associée à tes fichiers audio ? Je pense qu'il faut les mettre en "Ressources incorporée" afin qu'ils soit insérés dans l'assembly. Sinon il te faudra mettre à "Toujours copier" (ou "Copier si plus récent") la propriété "Copier dans le répertoire de sortie" et t'assurer à la publication de ton application que les fichiers sont bien compris dans la distribution.

    L'uri absolue de ton fichier audio devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "pack://application,,,/Ressources/Audio/chimes.wav"
    Et son raccourcis relatif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "/Ressources/Audio/chimes.wav"
    À noter que Ressources est le mot français, le mot anglais est Resources (un seul 's').

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Après de plus ample recherche j'ai ce genre d'erreur en utilisant "pack://application,,,/Ressources/Audio/chimes.wav" :

    URI non valide : Impossible de déterminer le format de l'URI.


    Je suis donc allé voir MediaElement sur msdn qui dit :

    When distributing media with your application, you cannot use a media file as a project resource. In your project file, you must instead set the media type to Content and set CopyToOutputDirectory to PreserveNewest or Always.

    Je dois donc soit réécrire le fichier à partir du flux des ressources, soit le copier par défaut.


    Ce qui m'amène à la question suivante : Comment protéger les fichiers mp3 perso de mon projet ?

  6. #6
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 895
    Points : 1 911
    Points
    1 911
    Par défaut
    Effectivement j'ai mal orthographié l'uri, il manquait les ':' après "application" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "pack://application:,,,/Ressources/Audio/chimes.wav"
    Mais l'uri relative ne fonctionnait pas, elle ? Parce-que les uri pack permettent également de cibler des éléments portés en contenu et pas en ressources incorporées.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    L'uri relative fonctionne à condition de mettre en build action l'option contenu avec copy...

    Mais justement mon problème est que je voulais intégrer le fichier wav / mp3 dans mon exe pour le protéger un minimum...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "pack://application:,,,/Ressources/Audio/chimes.wav"
    Ne fonctionne pas si je mets mon fichier en build action Resource.

  8. #8
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 895
    Points : 1 911
    Points
    1 911
    Par défaut
    Tu peux mettre tes fichiers audio dans un zip cypté, tu crées un ViewModel qui récupère ces fichiers au chargement de l'application et met leur uri à disposition de l'interface par des propriété ; si tu ne veux pas les copier sur l'ordinateur, même temporairement, tu peux les stocker dans un MemoryMappedFile.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Je pensais vraiment qu'y aurai une solution simple avec des ressources embarqués dans le .exe ...

    Merci pour ton aide, je vais regarder les infos avec MemoryMappedFile .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Visual Studio 2005 + Relative Source Path
    Par hassaneo dans le forum Visual C++
    Réponses: 19
    Dernier message: 12/11/2009, 12h32
  2. [Sources] modifier le path
    Par zais_ethael dans le forum Vos Contributions VBScript
    Réponses: 3
    Dernier message: 24/08/2007, 11h31
  3. Source not found - Edit source lookup path
    Par Widiwi dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/08/2007, 16h27
  4. Réponses: 5
    Dernier message: 07/08/2007, 20h29
  5. [Eclipse 3.2]Eclipse oublie le source lookup path!
    Par BugFactory dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 30/07/2007, 23h28

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