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

C++Builder Discussion :

connaitre les information d'un fichier flash


Sujet :

C++Builder

  1. #1
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut connaitre les information d'un fichier flash
    salut à tous,

    voila, je voudrais connaitre les information d'un fichier video ,
    en particulier flash .swf ou .flv

    le composant shockwave permet la lecture des video flash MAIS aucun
    contrôle ou propriété !!

    je voudrais récupérer la durée de la vidéo ou connaitre sa fin, afin de l'ancer
    la 2iem.

    je pense qu'il serait possible de jouer avec le composant cppwebrowser
    en créant un code php

    j'ai trouver ceci mais comment le tester ou récupérer la durée ?

    c'est un code php ou flash ?

    duree_txt.text ( plus bas )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    • // Declaration objet NetConnection
    • // La classe NetConnection permet de lire des fichiers FLV en #
    • // flux continu à partir d'un lecteur local ou d'une adresse HTTP#
    • var netConn:NetConnection = new NetConnection();
    • // Affectation de la connection a une connection locale streamee
    • this.netConn.connect(null);
    • // Declaration oblet NetStream
    • // La classe NetStream fournit des méthodes et des propriétés permettant de lire des fichiers Flash Video (FLV)
    • var netStream:NetStream = new NetStream(netConn);
    • // Association de la video NetStream a un objet Video
    • this.zonevideo_as.attachVideo(netStream);
    • // Reglage du Buffer en secondes
    • this.netStream.setBufferTime(5);
    • Fonctions des boutons et durée
    • // Affectation des boutons
    • this.btn1.onRelease = function() {
    • this._parent.netStream.play("video.flv");}; // lance la video
    • this.btn2.onRelease = function() {
    • this._parent.netStream.pause();}; // met la video en pause/relance la video
    • this.btn3.onRelease = function() {
    • this._parent.netStream.close();}; // arrete la video, en realite : coupure de la connection
    • this.btn4.onPress = function() {
    • this.onEnterFrame = function() {
    • netStream.seek(netStream.time+0.2); // avance rapide de la video
    • };
    • };
    • this.btn4.onRelease = function() {
    • delete this.onEnterFrame; // supprime le onEnterFrame
    • };
    • this.btn5.onRelease = function() {
    • netStream.seek(0); // retourne a la premiere image de la video
    • };
    • // Affichage de la duree de la video
    • var interval:Number = setInterval(duree, 500, netStream);
    • function duree(netStream)
    • {
    • var netStream_secondes:Number = netStream.time;
    • var minutes:Number = Math.floor(netStream_secondes/60);
    • var heures:Number = Math.floor(minutes/60);
    • var secondes = Math.floor(netStream_secondes%60);
    • if (secondes<10)
    • { secondes = "0"+secondes; }
    • duree_txt.text = heures+":"+minutes+":"+secondes;
    • }
    Merci à tous.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Points : 713
    Points
    713
    Par défaut
    çà c est plutot de l action script 2 ou 3 utilisable selon la version avec flash mx2004 , flash 8 ou flex

    combien as tu de videos à jouer ?

    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
    netConn = new NetConnection();
    netConn.connect(null);
    var i = 1;
    this["netStream"+i] = new NetStream(netConn);
    maVideo.attachVideo(this["netStream"+i]);
    this["netStream"+i].play("laVideoFile"+i+".flv");
    netStream1.onStatus = function(infoObject) {
    if (infoObject.code == "NetStream.Buffer.Empty") {
    jouencore();
    }
    };
    jouencore = function () {
    trace("fini"+i);
    i++;
    this["netStream"+i] = new NetStream(netConn);
    maVideo.attachVideo(this["netStream"+i]);
    this["netStream"+i].play("laVideoFile"+i+".flv");
    this["netStream"+i].onStatus = function(infoObject) {
    if (infoObject.code == "NetStream.Buffer.Empty") {
    jouencore();
    } else if (infoObject.code == "NetStream.Play.StreamNotFound") {
    trace("Plus de FLV disponibles !");
    }
    };
    };


    source : http://jeanphiblog.media-box.net/dot...avec-netstream



    aussi ceci de tres interessant
    http://www.inwayvideo.com/phpflvplayer/index.html

  3. #3
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut
    salut Cedni,

    merci pour ton code, je comprend mais pas vraiment , ce que tu as mis entre
    "..." sont des variables paramétré ?

    je fais un projet, qui mélange c++builder/mysql/flash.

    mon projet affichera tout ce qui se trouvera sur mon ftp,
    mon code sera dynamique.

    mon trouve des photos ou vidéo, il les affichera ou jouera,
    et par la suite création un diaporama, il affiche ou joue ce qu'il a trouvé.

    Puis je trierai selon la date/nom etc..Recherche, genre une bibliotheque
    de mon espace ftp.

    le nombre de video est inconnue. mais en c++ je dois savoir lancer 1 video puis lancer la 2iem lorsque la 1er est terminer etc..

    pour le moment je voudrais récupérer la durée d'une video sans que je soie obliger de la jouer ! afin de remplir mes base de donnée des fichiers flash

    Table : Index | Swf_Name | Swf_Time | Swf_Path


    as tu une idée pour récupérer le temps via php
    ( communication entre php et action script )

    merci pour ton code

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Points : 713
    Points
    713
    Par défaut
    pour la durée ce sera de l action script

    une fois "duration" obtenue , tu la copies avec flash dans le clipboard

    tu la recuperes avec javascript ou c++

    mais bon pas besoin de recuperer le temps

    etudies le 2e lien il en vaut la peine et fais :

    la playlist est en xml donc tu peux la creer avec c++
    en listant les liens de la page ( il suffit de pas mettre d index dans ton repeertoire distant ) contenant uniquement tes medias videos ( c dans la faq )
    ensuite avec ceci , tu crees un fichier text tout normal bien formaté selon selon le xml d origine , tu le renommes en .xml , tu l upload sur le serveur via ftp à aprtir de c++

    tu charges la page contenant le player swf dans un ccpwebbrowser et ca roule

  5. #5
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut
    Merci , pour t explication.

    si tu as une exemple ca serait super téra cool.

    mais c plus complexe, les video ne devront pas tt être jouer chez tout le monde. et entre les vidéo parfois j'affiche des informations.

    du le pourquoi de l'importance de la connaissance du temp d'une video.

    tout le reste je sais le faire en c++ acces à distance sur ms bd lecture
    etc..

    serait tu faire un exemple en php avec ou sans javascript ou avec builder
    qui sera prendre l'information du temps d'une video flash ?


    Merci cedni

  6. #6
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut mciSendString !??
    j'ai pu trouver un code en vb , mais je comprend pas la fonction !!

    je l'ai traduit, ca compile mais rien !?

    comment elle fontionne cette fonction mciSendString ?

    VB et c++ ne paramettre pas identiquement cette API ?

    j'ai trouver SUPERBE classe qui traite les fichier audio ! voir pièce jointe

    je voudrais récupérer les durée des fichier .flv !

    Merci pour vos aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    • Option Explicit
    • 'API Windows Multmedia à laquelle on envoit des commandes
    • Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
    • Private Sub Form_Load()
    • Dim sFichierTest As String
    • Dim sDureeTrouvee As String
    • 'Pour tester, indiquez un nom de fichier multimédia (vidéo et son)
    • sFichierTest = "D:\Documents\Mes Vidéos\MOV029.MOD"
    • 'on récupère la durée du fichier
    • sDureeTrouvee = DureeFichier(sFichierTest)
    • 'on affiche le tout
    • MsgBox "Fichier :" & vbTab & sFichierTest & vbCrLf & _
    • "Durée :" & vbTab & sDureeTrouvee
    • End Sub
    • Private Function DureeFichier(sFichier As String) As String
    • 'On crée un buffer de 128
    • Dim sRetString As String * 128
    • On Error Resume Next
    • 'on ferme fichier au cas où il serait ouvert
    • mciSendString "close fichier", 0, 0, 0
    • 'on ouvre le fichier passé en paramètre
    • mciSendString "open """ & sFichier & """ type MPEGVideo alias fichier", 0, 0, 0
    • 'on règle le format temporel sur milliseconde
    • mciSendString "set fichier time format ms", 0, 0, 0
    • 'on récupère la durée du fichier dans le buffer
    • mciSendString "status fichier length", sRetString, 128, 0
    • 'on passe cette durée à la fonction FormatTemps et on l'affecte à la valeur de notre fonction
    • DureeFichier = FormatTemps(CDbl(Replace(sRetString, Chr(0), "") / 1000))
    • 'et enfin on ferme fichier
    • mciSendString "close fichier", 0, 0, 0
    • End Function
    • 'Fonction qui renvoie la durée formatée ainsi 00:00:00
    • Private Function FormatTemps(dTemps As Double) As String
    • Dim lHeure As Long
    • Dim lMinute As Long
    • Dim lSeconde As Long
    • Dim lTemps As Long
    • lTemps = Round(dTemps)
    • lHeure = Int(lTemps / 3600)
    • lMinute = Int((lTemps - 3600 * lHeure) / 60)
    • lSeconde = lTemps - 3600 * lHeure - 60 * lMinute
    • FormatTemps = Format(lHeure, "00") & ":" & Format(lMinute, "00") & ":" & Format(lSeconde, "00")
    • End Function
    Fichiers attachés Fichiers attachés

  7. #7
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut
    merci cedni

    pour le moment j'ai trouver comment faire pour savoir quant se termine la vidéo grâce à : flash->IsPlaying()

    je n'ai plus besoin de savoir la durée mais ca me derange je v essaye de voir ca.

    en créant une formule me donnant la durée :

    Flash->CurrentFrame(); // est le nombre d'image en cours

    (nbr image_total / nbr_image_sec) = durée

    y a encore du chemin a faire ....

    Merci @+

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/01/2009, 23h00
  2. Récupération les informations d'un fichier
    Par Makki dans le forum Langage
    Réponses: 2
    Dernier message: 17/08/2007, 17h31
  3. Connaitre les informations identifiant le disque dur
    Par iutcien dans le forum Langage
    Réponses: 2
    Dernier message: 02/03/2007, 14h53
  4. Réponses: 10
    Dernier message: 28/10/2006, 15h45
  5. connaitre les informations d'un processus
    Par hiko-seijuro dans le forum Windows
    Réponses: 16
    Dernier message: 24/10/2005, 20h49

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