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

Silverlight Discussion :

sauvegarde sans passer par saveFileDialog


Sujet :

Silverlight

  1. #1
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut sauvegarde sans passer par saveFileDialog
    bonjour,
    (je sais que c'est trés simple , mais j'ai pas trouvé :s)
    j'ai créé une application qui enregsitre et sauvegarde l'audio.
    le traitement actuel de l'applciation c'est qu'elle donne la main pour enregistrer ,stop, et sauvegarder.
    >> dans la partie sauvegardé elle donne la main a l'utlisateur de choisir ou ca va etre sauvagarde avec " saveFileDialog " .
    >ce que je veux moi ,c'est de ne pas lui donné la main pour choisir et que ca s'enregistre directement dans un chemin que je choisi du genre :"d:/dossier/"

    voici tout mon code , surtout celui de sauvegarde .

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    // le reste du code
    .
    .  
    .
    private SaveFileDialog saveFileDialog = new SaveFileDialog() { Filter = "Audio files (*.wav)|*.wav" };
     
     
     // le reste du code
    .
    .  
    .
     
          protected void SaveFile()
            {
                if (saveFileDialog.ShowDialog() == false)
     
                {
                    return;
                }
     
     
                StatusText = "encours...";
     
     
                Stream stream = saveFileDialog.OpenFile();
     
                WavManager.SavePcmToWav(_sink.BackingStream, stream, _sink.CurrentFormat);
     
     
                stream.Close();
     
                MessageBox.Show("votre voix est bien enrgistrer sur votre poste");
     
     
     
     
     
                GoToStartState();
            }
    merci pour votre aide

  2. #2
    Membre confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Décembre 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Décembre 2010
    Messages : 126
    Par défaut
    En silverlight il n'est pas possible de sauvegarder sur le disque de l'utilisateur sans passer par un saveFileDialog, je sais c'est bête mais c'est comme ça

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par NTIC13 Voir le message
    c'est bête mais c'est comme ça
    Ce n'est pas bête, c'est une mesure de sécurité sachant que ton application tourne dans un navigateur (et donc, que tu ne peux pas faire confiance à la source)

  4. #4
    Membre confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Décembre 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Décembre 2010
    Messages : 126
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Ce n'est pas bête, c'est une mesure de sécurité sachant que ton application tourne dans un navigateur (et donc, que tu ne peux pas faire confiance à la source)
    Je pense qu'ils auraient pu mettre une fonctionnalité ou une alerte qui demande à l'utilisateur si il a confiance dans l'application à son demarage et si il repond "oui" dans ce cas permettre de stocker sur son disque sans lui demander...

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Citation Envoyé par NTIC13 Voir le message
    Je pense qu'ils auraient pu mettre une fonctionnalité ou une alerte qui demande à l'utilisateur si il a confiance dans l'application à son demarage et si il repond "oui" dans ce cas permettre de stocker sur son disque sans lui demander...
    Hum vu l'utilité d'un message d'alert ou 90% des gens répondent sans lire... Microsoft se serait fait tapé sur les doigts!

  6. #6
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    bonjour,

    mais au moins est ce possible de sauvegardé sur un serveur, ou quelque chose comme ça !

    parce que le client refuse de sauvegardé puis uploader, et je suis perdu un peux.

    au moins s'il est possible de sauvegardé directement sans donné la main pour choisir l'emplacement ça serai mieux

    !!!

  7. #7
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Sauvegarder sur le disque dur parce que tu veux Uploader sur le server cela n'est pas logique.

    Ce que tu enregistre, tu le fais directement sur le server... en plus tu as pas besoin de SaveFileDialog...

    Au final c'est un Stream, je suis sur que cela se fait avec des web services

  8. #8
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    Citation Envoyé par Lapinpanda Voir le message

    Ce que tu enregistre, tu le fais directement sur le server...
    oui c'est exactement ce que je veux faire, enregistrer sur le serveur directement.
    mais comment !!
    et quoi mettre a la place du "SaveFileDialog."
    si vous avez des ides !!!


    merci
    Cdt

  9. #9
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Bah un bouton Save ?

    Et quand le User clic, tu fais un save sur le server via des web services...

  10. #10
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    j'avoue que je suis pas trés "web service" , c'est pour cela que je me pose cette question.

    c'est a dire comment !
    aprés je continue seul, mais il me faut juste la premiere partie du fil et je conitnu !!

    merci

  11. #11
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    En fait je crois que tu as pas compris Silverlight...

    Parce que la, t'aurais 0% de chance de faire autrement

    Edit : il est quand même possible au cas ou tu fais un mix ASP.NET Silverlight avec la partie ASP.NET pour faire des submits sur le server

  12. #12
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    oui c'est le cas, tu n'a pas tor .
    c'est ma premiere utlisation.je suis fasse a la demande d'un module avec slivelight que je doit realisé.
    c'est comme ça , on ne peux dire non a un client.
    et c'est pour cela que je demande votre aide, sinon j'aurai pas posté ici

    alors votre aide serai laquel ??

  13. #13
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Tu peux mettre ton application en OOB Elevated Trust.

    Dans ce mode tu peux écrire dans les dossiers "My *" (My Documents, My Music...). Tu peux aussi écrire ailleurs avec l'AutomationCom.

  14. #14
    Membre confirmé Avatar de wil4linux
    Inscrit en
    Février 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 205
    Par défaut
    Si tu dois enregistrer à la volée sur un disque, mieux vaut le faire côté client.

    Donc je rejoins Skyounet sur la méthode à utiliser, en Mode Out Of Browser (voir direct faire ça en WPF... ça dépend bien sûr de tes contraintes projet...).

  15. #15
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    oui vraiment merci,
    là c'est une vrais aide


    si vous avez un tuto ou quelque chose comme ça les amis , ça serais super,

    merci

    Cdt

  16. #16
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    les amis je crois que j'ai trouvé une solution,

    je veux juste que vous me dite (coorigé) ou j'ai oublié un truc !!


    une petite analyse des pro et dites mois ce que j'ai oyblié pour qu'il cree le fichie .

    voila :
    ça c'est la methode qui sauvegarde :
    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
    16
    17
    18
     
     
     
            protected void SaveFile()
            {
     
                StatusText = "encours...";
     
     
     
    WavManager.SavePcmToWav(_sink.BackingStream,  _sink.CurrentFormat);
     
     
     
                MessageBox.Show("votre voix est bien enrgistrer sur votre poste, ");
     
                GoToStartState();
            }
    ça c'est la class qui sauvegarde
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    public class WavManager
        {
            public static void SavePcmToWav(Stream rawData, AudioFormat audioFormat)
            {
                if (audioFormat.WaveFormat !=  WaveFormatType.Pcm)
                    throw new ArgumentException("Only PCM coding is supported.");
                FileStream output;
                output = File.Create(@"d:\nouv\toto.wav");
                BinaryWriter bwOutput = new BinaryWriter(output);
     
                // Write down the WAV header.
                // Refer to http://technology.niagarac.on.ca/courses/ctec1631/WavFileFormat.html
                // for details on the format.
     
                // Note that we use ToCharArray() when writing fixed strings
                // to force using the char[] overload because
                // Write(string) writes the string prefixed by its length.
     
                // -- RIFF chunk
     
                bwOutput.Write("RIFF".ToCharArray());
     
                // Total Length Of Package To Follow
                // Computed as data length plus the header length without the data
                // we have written so far and this data (44 - 4 ("RIFF") - 4 (this data))
                bwOutput.Write((uint)(rawData.Length + 36));
     
                bwOutput.Write("WAVE".ToCharArray());
     
                // -- FORMAT chunk
     
                bwOutput.Write("fmt ".ToCharArray());
     
                // Length Of FORMAT Chunk (Binary, always 0x10)
                bwOutput.Write((uint)0x10);
     
                // Always 0x01
                bwOutput.Write((ushort)0x01);
     
                // Channel Numbers (Always 0x01=Mono, 0x02=Stereo)
                bwOutput.Write((ushort)audioFormat.Channels);
     
                // Sample Rate (Binary, in Hz)
                bwOutput.Write((uint)audioFormat.SamplesPerSecond);
     
                // Bytes Per Second
                bwOutput.Write((uint)(audioFormat.BitsPerSample * audioFormat.SamplesPerSecond * audioFormat.Channels / 8));
     
                // Bytes Per Sample: 1=8 bit Mono, 2=8 bit Stereo or 16 bit Mono, 4=16 bit Stereo
                bwOutput.Write((ushort)(audioFormat.BitsPerSample * audioFormat.Channels / 8));
     
                // Bits Per Sample
                bwOutput.Write((ushort)audioFormat.BitsPerSample);
     
                // -- DATA chunk
     
                bwOutput.Write("data".ToCharArray());
     
                // Length Of Data To Follow
                bwOutput.Write((uint)rawData.Length);
     
                // Raw PCM data follows...
     
                // Reset position in rawData and remember its origin position
                // to restore at the end.
                long originalRawDataStreamPosition = rawData.Position;
                rawData.Seek(0, SeekOrigin.Begin);
     
                // Append all data from rawData stream into output stream.
                byte[] buffer = new byte[4096];
                int read;       // number of bytes read in one iteration
                while ((read = rawData.Read(buffer, 0, 4096)) > 0)
                {
     
                    bwOutput.Write(buffer, 0, read);
     
                }
     
                rawData.Seek(originalRawDataStreamPosition, SeekOrigin.Begin);
            }
        }

  17. #17
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    je crois que là ou il y a l'erreur c'est la partie ou je cree le stream !!!

    j'attend vos idé

  18. #18
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Et c'est quoi ton probleme ?

    Tu as une application Out of Browser maintenant ? Parce que sinon ca va toujours pas fonctionner.

  19. #19
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    mem avec le filestream que je vien d'ajouter ??


    parce que ca doit resté une applciation web, c'est pour ça que j'essaye de gardé la meme et d'y modifier!

  20. #20
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par mvc_dev Voir le message
    mem avec le filestream que je vien d'ajouter ??


    parce que ca doit resté une applciation web, c'est pour ça que j'essaye de gardé la meme et d'y modifier!
    On te l'a deja dit. Tu ne peux pas ecrire sur le disque client. C'est interdit et tu n'arrivera pas a passer cette restriction !!!

Discussions similaires

  1. Imprimer un TIFF sans passer par PostScript
    Par iubito dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 22/03/2004, 20h44
  2. Réponses: 10
    Dernier message: 24/02/2004, 12h28
  3. Réponses: 4
    Dernier message: 05/02/2004, 18h18
  4. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13
  5. [Kylix] Débrider Kylix sans passer par le Net
    Par BXDSPORT dans le forum EDI
    Réponses: 1
    Dernier message: 23/03/2003, 10h52

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