Changeset 71837 in spip-zone for _plugins_/getID3


Ignore:
Timestamp:
Apr 9, 2013, 2:12:43 PM (6 years ago)
Author:
kent1@…
Message:

Hop on récupère les infos des vidéos aussi (clap)

A tester et débugguer le cas échéant

Location:
_plugins_/getID3/trunk
Files:
3 added
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/getID3/trunk/action/getid3_infos.php

    r63326 r71837  
    22/**
    33 * GetID3
    4  * Gestion des métadonnées de fichiers sonores directement dans SPIP
     4 * Gestion des métadonnées de fichiers sonores et vidéos directement dans SPIP
    55 *
    66 * Auteurs :
     
    2020        if (!intval($arg)){
    2121                spip_log("action_getid3_infos_dist incompris: " . $arg);
     22                return;
    2223        }
    2324        else{
     
    3132
    3233function action_getid3_infos_post($id_document){
    33         include_spip('inc/documents');
    34         $fichier = sql_fetsel("*", "spip_documents","id_document=".intval($id_document));
    35         $file = get_spip_doc($fichier['fichier']);
    36         if(!file_exists($file))
    37                 return false;
    38        
    39         $recuperer_infos = charger_fonction('audio','metadata');
    40         $infos = $recuperer_infos($file,false);
    41        
    42         if($document['titre'] != ''){
    43                 unset($infos['titre']);
    44         }
    45         if($document['descriptif'] != ''){
    46                 unset($infos['descriptif']);
    47         }
    48         if($document['credits'] != ''){
    49                 unset($infos['credits']);
    50         }
    51         if(is_array($infos) && count($infos)>0){
    52                 include_spip('action/editer_document');
    53                 document_modifier($id_document,$infos);
    54         }
     34        $recuperer_infos = charger_fonction('getid3_recuperer_infos','inc');
     35        $infos = $recuperer_infos($id_document);
    5536        return $infos;
    5637}
  • _plugins_/getID3/trunk/getid3_pipelines.php

    r63253 r71837  
    66 * Auteurs :
    77 * kent1 (http://www.kent1.info - kent1@arscenic.info), BoOz
    8  * 2008-2012 - Distribué sous licence GNU/GPL
     8 * 2008-2013 - Distribué sous licence GNU/GPL
    99 *
     10 * @package SPIP\GetID3\Pipelines
    1011 */
    1112
     
    1314
    1415/**
    15  * Insertion dans le pipeline post_edition
     16 * Insertion dans le pipeline post_edition (SPIP)
     17 *
    1618 * Récupération d'informations sur le document lors de son insertion en base
    1719 *
    18  * @param array $flux Le contexte du pipeline
    19  * @return $flux le $flux modifié
     20 * @param array $flux
     21 *              Le contexte du pipeline
     22 * @return array $flux
     23 *              Le contexte du pipeline ($flux) modifié
    2024 */
    2125function getid3_post_edition($flux){
     
    121125
    122126/**
    123  * Ajouter le lien vers la modifs des id3
     127 * Insertion dans le pipeline post_edition (plugin medias)
     128 *
     129 * Ajouter le lien vers la récupératio et la modif des id3
    124130 *
    125131 * @param array $flux
    126  * @return array
     132 *              Le contexte du pipeline
     133 * @return array $flux
     134 *              Le contexte du pipeline modifié
    127135 */
    128136function getid3_document_desc_actions($flux){
    129         $infos = sql_fetsel('distant,extension','spip_documents','id_document='.intval($flux['args']['id_document']));
    130         $son_recup_id3 = array("mp3","ogg","flac","aiff","aif","wav","m4a","oga");
     137        if(!function_exists('lire_config'))
     138                include_spip('inc/config');
    131139        $son_modif_id3 = lire_config('getid3_write',array('mp3'));
    132         $id_document = $flux['args']['id_document'];
     140        $infos = sql_fetsel('distant,extension,media','spip_documents','id_document='.intval($flux['args']['id_document']));
     141       
    133142        if(($infos['distant'] == 'non') && in_array($infos['extension'],$son_modif_id3)){
    134143                $redirect = self();
    135                 $url = parametre_url(generer_url_ecrire('document_id3_editer','id_document='.intval($id_document)),'redirect',$redirect);
     144                $url = parametre_url(generer_url_ecrire('document_id3_editer','id_document='.intval($flux['args']['id_document'])),'redirect',$redirect);
    136145                $texte = _T('getid3:lien_modifier_id3');
    137                 if($flux['args']['position'] == 'galerie'){
     146                if($flux['args']['position'] == 'galerie')
    138147                        $flux['data'] .= "[<a href='$url' class='ajax'>$texte</a>]";
    139                 }else{
     148                else
    140149                        $flux['data'] .= "<span class='sep'> | </span><a href='$url' target='_blank' class='editbox'>$texte</a>";
    141                 }
    142         }if(($infos['distant'] == 'non') && in_array($infos['extension'],$son_recup_id3)){
    143                 $texte2 = _T('getid3:lien_recuperer_infos');
    144                 $action2 = generer_action_auteur('getid3_infos', "$id_document", $redirect);
    145                 $flux['data'] .= "<span class='sep'> | </span><a href='$action2' class='ajax'>$texte2</a>";
    146150        }
     151        if(($infos['distant'] == 'non') && in_array($infos['media'],array('video','audio')))
     152                $flux['data'] .= recuperer_fond('prive/squelettes/inclure/getid3_document_desc_action',$flux['args']);
    147153        return $flux;
    148154}
     
    174180        if ($flux['args']['fond']=='modeles/document_desc'){
    175181                if(isset($flux['args']['contexte']['id_document']) && ($flux['args']['contexte']['id_document'] > 0)){
    176                         $son_recup_id3 = array("mp3","ogg","flac","aiff","aif","wav","m4a","oga");
    177                         $extension = sql_getfetsel("extension", "spip_documents","id_document=".intval($flux['args']['contexte']['id_document']));
    178                         if(in_array($extension,$son_recup_id3))
     182                        $mode = sql_getfetsel("media", "spip_documents","id_document=".intval($flux['args']['contexte']['id_document']));
     183                        if(in_array($mode,array('audio','video')))
    179184                                $flux['data']['texte'] .= recuperer_fond('prive/inclure/prive_infos_son',$flux['args']['contexte']);
    180185                }
  • _plugins_/getID3/trunk/inc/getid3_recuperer_infos.php

    r64890 r71837  
    22/**
    33 * GetID3
    4  * Gestion des métadonnées de fichiers sonores directement dans SPIP
     4 * Gestion des métadonnées de fichiers sonores et vidéos directement dans SPIP
    55 *
    66 * Auteurs :
    77 * kent1 (http://www.kent1.info - kent1@arscenic.info), BoOz
    8  * 2008-2012 - Distribué sous licence GNU/GPL
     8 * 2008-2013 - Distribué sous licence GNU/GPL
    99 *
    1010 */
     
    1313
    1414/**
    15  * Récupération des informations d'un document ou d'un fichier audio
     15 * Récupération des informations d'un document ou d'un fichier audio ou vidéo
     16 *
    1617 * Si on a un id_document (en premier argument) on enregistre en base dans cette fonction
    1718 * Si on a seulement un chemin de fichier (en second argument), on retourne un tableau des metas
    1819 *
    19  * @param int/null $id_document : id_document duquel on doit récupérer les infos
    20  * @param string/false $fichier : chemin du fichier duquel on doit récupérer les infos
     20 * @param int/bool $id_document
     21 *              Identifiant numérique duquel on doit récupérer les infos
     22 * @param string/bool $fichier
     23 *              Chemin du fichier duquel on doit récupérer les infos
     24 * @param bool $logo
     25 *              Doit on récupérer une vignette
     26 * @param bool $only_return
     27 *              Ne fait t'on que retourner le résultat
     28 * @return array $infos
     29 *              Les infos récupérées
    2130 */
    2231
    23 function inc_getid3_recuperer_infos($fichier=false){
    24         if(!$fichier OR !file_exists($fichier)){
     32function inc_getid3_recuperer_infos($id_document=false,$fichier=null,$logo=false,$only_return=false){
     33       
     34        if((!intval($id_document) && !isset($fichier)))
    2535                return false;
    26         }
    27        
     36       
     37        if(!function_exists('lire_config'))
     38                include_spip('inc/config');
     39       
     40        if(!isset($fichier)){
     41                include_spip('inc/documents');
     42                $document = sql_fetsel("*", "spip_documents","id_document=".intval($id_document));
     43                $fichier = get_spip_doc($document['fichier']);
     44                $extension = $document['extension'];
     45        }else
     46                $extension = strtolower(array_pop(explode('.',basename($fichier))));
     47
    2848        /**
    2949         * Récupération des metas du fichier
    3050         */
    3151        $recuperer_id3 = charger_fonction('recuperer_id3','inc');
    32         $id3 = $recuperer_id3($fichier);
    33        
     52        $infos = $recuperer_id3($fichier);
     53       
     54        /**
     55         * On enlève les infos vides
     56         */
     57        if(strlen($document['titre']) > 0)
     58                unset($infos['titre']);
     59
     60        if(strlen($document['descriptif']) > 0)
     61                unset($infos['descriptif']);
     62
     63        foreach($infos as $key => $val){
     64                if(!$val)
     65                        unset($infos[$key]);
     66        }
     67       
     68        /**
     69         * Si les champs sont vides, on ne les enregistre pas
     70         * Par contre s'ils sont présents dans le $_POST ou $_GET,
     71         * on les utilise (fin de conversion où on récupère le titre et autres infos du document original)
     72         */
     73        if(!function_exists('filtrer_entites'))
     74                include_spip('inc/filtres');
     75        foreach(array('titre','descriptif','credit') as $champ){
     76                if(isset($infos[$champ]))
     77                        $infos[$champ] = filtrer_entites($infos[$champ]);
     78                if(!isset($infos[$champ]))
     79                        $infos[$champ] = '';
     80                if(is_null($infos[$champ]) OR ($infos[$champ]=='')){
     81                        if(_request($champ))
     82                                $infos[$champ] = _request($champ);
     83                        else
     84                                unset($infos[$champ]); 
     85                }
     86        }
     87       
     88        /**
     89         * Filesize tout seul est limité à 2Go
     90         * cf http://php.net/manual/fr/function.filesize.php#refsect1-function.filesize-returnvalues
     91         */
     92        if(($infos['taille'] = @intval(filesize($fichier))) == '2147483647')
     93                $infos['taille'] = sprintf("%u", filesize($fichier));
     94       
     95        /**
     96         * Si on a gis et que les fonctions de récupération de metadonnés nous ont renvoyé :
     97         * -* lat = la latitude;
     98         * -* lon = la longitude;
     99         *
     100         * Deux cas :
     101         * -* Si on a un id_document numérique
     102         * -** On recherche si on a déjà un point lié au document et on le modifie
     103         * -** Sinon on crée de nouvelles coordonnées
     104         * -* Si on n'a pas d'id_document (cas des metadonnées récupérées par les fonctions metadatas/....php)
     105         * -** On crée un point avec les coordonnées et on envoit dans le $_POST id_gis_meta
     106         * pour que le point soit lié dans le pipeline post_edition
     107         */
     108        if(defined('_DIR_PLUGIN_GIS') && is_numeric($infos['latitude']) && is_numeric($infos['longitude'])){
     109                $zoom = lire_config('gis/zoom',4);
     110                $config = @unserialize($GLOBALS['meta']['gis']);
     111                $c = array(
     112                        'titre' => $infos['titre'] ? $infos['titre'] : basename($fichier),
     113                        'lat'=> $infos['latitude'],
     114                        'lon' => $infos['longitude'],
     115                        'zoom' => $zoom
     116                );
     117
     118                if (defined('_DIR_PLUGIN_GISGEOM')) {
     119                        $geojson = '{"type":"Point","coordinates":['.$infos['longitude'].','.$infos['latitude'].']}';
     120                        set_request('geojson',$geojson);
     121                }
     122               
     123                include_spip('action/editer_gis');
     124               
     125                if(intval($id_document)){
     126                        if($id_gis = sql_getfetsel("G.id_gis","spip_gis AS G LEFT  JOIN spip_gis_liens AS T ON T.id_gis=G.id_gis ","T.id_objet=" . intval($id_document) . " AND T.objet='document'")){
     127                                /**
     128                                 * Des coordonnées sont déjà définies pour ce document => on les update
     129                                 */
     130                                revisions_gis($id_gis,$c);
     131                        }else{
     132                                /**
     133                                 * Aucune coordonnée n'est définie pour ce document  => on les crée
     134                                 */
     135                                $id_gis = insert_gis();
     136                                revisions_gis($id_gis,$c);
     137                                lier_gis($id_gis, 'document', $id_document);
     138                        }
     139                }else{
     140                        /**
     141                         * Aucune coordonnée n'est définie pour ce document  => on les crée
     142                         * On ajoute dans le $_POST id_gis_meta qui sera utilisable dans post_edition
     143                         */
     144                        $id_gis = insert_gis();
     145                        revisions_gis($id_gis,$c);
     146                        set_request('id_gis_meta',$id_gis);
     147                }
     148        }
     149
    34150        /**
    35151         * On remplit les champs de base de SPIP avec ce dont on dispose
     
    38154         * -* descriptif
    39155         */
    40         if(isset($id3['title'])){
    41                 $id3['titre'] = preg_replace('/_/',' ',utf8_encode($id3['title']));
    42         }
    43         if(!isset($id3['title'])){
    44                 $titre = strtolower(array_shift(explode('.',basename($son_chemin))));
    45                 $titre = utf8_encode($titre);
    46                 $id3['titre'] = preg_replace('/_/',' ',$titre);
    47         }
    48 
    49         if(!isset($id3['descriptif'])){
     156        if(isset($infos['title']))
     157                $infos['titre'] = preg_replace('/_/',' ',utf8_encode($infos['title']));
     158
     159        else if(!isset($infos['title'])){
     160                $titre = utf8_encode(strtolower(array_shift(explode('.',basename($fichier)))));
     161                $infos['titre'] = preg_replace('/_/',' ',$titre);
     162        }
     163
     164        if(!isset($infos['descriptif'])){
    50165                /**
    51166                 * Ne pas prendre les comments foireux d'itunes
    52167                 */
    53                 if(isset($id3['comments']) && !preg_match('/0000[a-b|0-9]{4}/',$id3['comments']))
    54                         $id3['descriptif'] = utf8_encode($id3['comments']);
     168                if(isset($infos['comments']) && !preg_match('/0000[a-b|0-9]{4}/',$infos['comments']))
     169                        $infos['descriptif'] = utf8_encode($infos['comments']);
    55170                else{
    56                         if(isset($id3['artist']))
    57                                 $id3['descriptif'] .= utf8_encode($id3['artist'])."\n";
    58                         if(isset($id3['album']))
    59                                 $id3['descriptif'] .= utf8_encode($id3['album'])."\n";
    60                         if(isset($id3['year']))
    61                                 $id3['descriptif'] .= utf8_encode($id3['year'])."\n";
    62                         if(isset($id3['genre']))
    63                                 $id3['descriptif'] .= utf8_encode($id3['genre'])."\n";
    64                         if(isset($id3['track_number']))
    65                                 $id3['descriptif'] .= utf8_encode($id3['track_number'])."\n";
    66                         if(isset($id3['comment']) && !preg_match('/0000[a-b|0-9]{4}/',$id3['comment']))
    67                                 $id3['descriptif'] .= "\n".utf8_encode($id3['comment'])."\n";
     171                        if(isset($infos['artist']))
     172                                $infos['descriptif'] .= utf8_encode($infos['artist'])."\n";
     173                        if(isset($infos['album']))
     174                                $infos['descriptif'] .= utf8_encode($infos['album'])."\n";
     175                        if(isset($infos['year']))
     176                                $infos['descriptif'] .= utf8_encode($infos['year'])."\n";
     177                        if(isset($infos['genre']))
     178                                $infos['descriptif'] .= utf8_encode($infos['genre'])."\n";
     179                        if(isset($infos['track_number']))
     180                                $infos['descriptif'] .= utf8_encode($infos['track_number'])."\n";
     181                        if(isset($infos['comment']) && !preg_match('/0000[a-b|0-9]{4}/',$infos['comment']))
     182                                $infos['descriptif'] .= "\n".utf8_encode($infos['comment'])."\n";
    68183                }
    69184        }
     
    76191         */
    77192        $covers = array();
    78         foreach($id3 as $key=>$val){
     193        foreach($infos as $key=>$val){
    79194                if(preg_match('/cover/',$key))
    80195                        $covers[] = $val;
    81196        }
    82197       
    83         $id3['credits'] = $id3['copyright_message']?$id3['copyright_message']:$id3['copyright'];
    84        
    85         /**
    86          * Les valeurs que l'on mettra en base à la fin
    87          */
    88         $valeurs = array(
    89                         'titre'=>filtrer_entites($id3['titre']),
    90                         'descriptif'=>filtrer_entites($id3['descriptif']),
    91                         'duree'=> $id3['duree_secondes'],
    92                         'bitrate' => intval($id3['bitrate']),
    93                         'audiobitrate' => intval($id3['bitrate']),
    94                         'audiobitratemode'=>$id3['bitrate_mode'],
    95                         'audiochannels' => $id3['channels'],
    96                         'audiosamplerate'=>$id3['audiosamplerate'],
    97                         'encodeur'=>$id3['codec'],
    98                         'bits'=>$id3['bits'],
    99                         'credits'=>$id3['credits']
    100                 );
    101        
    102         if((isset($id3['date']) OR isset($id3['original_release_time']) OR isset($id3['encoded_time']))){
    103                 if(preg_match('/[0-9]{4}-[0-9]{2}-[0-9]{2}/',$id3['date']))
    104                         $valeurs['date'] = $id3['date'];
    105                 else if(preg_match('/[0-9]{4}-[0-9]{2}-[0-9]{2}/',$id3['original_release_time']))
    106                         $valeurs['date'] = $id3['original_release_time'];
    107                 else if(preg_match('/[0-9]{4}-[0-9]{2}-[0-9]{2}/',$id3['encoded_time']))
    108                         $valeurs['date'] = $id3['encoded_time'];
     198        $infos['credits'] = $infos['copyright_message']?$infos['copyright_message']:$infos['copyright'];
     199       
     200        if(!$infos['audiobitrate'] && !$infos['hasvideo'])
     201                $infos['audiobitrate'] = intval($infos['bitrate']);
     202       
     203        if(isset($infos['encoded_by']))
     204                $infos['encodeur'] = $infos['encoded_by'];
     205       
     206        if((isset($infos['date']) OR isset($infos['original_release_time']) OR isset($infos['encoded_time']))){
     207                if(preg_match('/[0-9]{4}-[0-9]{2}-[0-9]{2}/',$infos['date']))
     208                        $infos['date'] = $infos['date'];
     209                else if(preg_match('/[0-9]{4}-[0-9]{2}-[0-9]{2}/',$infos['original_release_time']))
     210                        $infos['date'] = $infos['original_release_time'];
     211                else if(preg_match('/[0-9]{4}-[0-9]{2}-[0-9]{2}/',$infos['encoded_time']))
     212                        $infos['date'] = $infos['encoded_time'];
    109213               
    110214                if(isset($valeurs['date']) && (strlen($valeurs['date'])=='10'))
    111                         $valeurs['date'] = $valeurs['date'].' 00:00:00';
     215                        $infos['date'] = $infos['date'].' 00:00:00';
    112216        }
    113217
     
    118222         * Pour l'instant uniquement valable sur les CC
    119223         */
    120         if(defined('_DIR_PLUGIN_LICENCE') && ((strlen($id3['copyright_message']) > 0) OR strlen($id3['copyright']) > 0)){
     224        if(defined('_DIR_PLUGIN_LICENCE') && ((strlen($infos['copyright_message']) > 0) OR strlen($infos['copyright']) > 0)){
    121225                include_spip('licence_fonctions');
    122226                if(function_exists('licence_recuperer_texte')){
    123                         foreach(array($id3['copyright_message'],$id3['copyright']) as $contenu){
    124                                 $valeurs['id_licence'] = licence_recuperer_texte($contenu);
    125                                 if(intval($valeurs['id_licence']))
     227                        foreach(array($infos['copyright_message'],$infos['copyright']) as $contenu){
     228                                $infos['id_licence'] = licence_recuperer_texte($contenu);
     229                                if(intval($infos['id_licence']))
    126230                                        break;
    127231                        }
     
    144248
    145249                        if (is_numeric(reset($ajoute))
    146                           AND $id_vignette = reset($ajoute)){
    147                                 $valeurs['id_vignette'] = $id_vignette;
    148                         }
     250                          AND $id_vignette = reset($ajoute))
     251                                $infos['id_vignette'] = $id_vignette;
    149252                }
    150253        }else if(strlen($cover_defaut = lire_config('getid3/cover_defaut','')) > 1){
     
    171274                        if (is_numeric(reset($ajoute))
    172275                          AND $id_vignette = reset($ajoute)){
    173                                 $valeurs['id_vignette'] = $id_vignette;
     276                                $infos['id_vignette'] = $id_vignette;
    174277                        }
    175278                }
    176279        }
    177280       
    178         return $valeurs;
     281        /**
     282         * Si on a $only_return à true, on souhaite juste retourner les metas, sinon on les enregistre en base
     283         * Utile pour metadatas/video par exemple
     284         */
     285        if(!$only_return && (intval($id_document) && (count($infos) > 0))){
     286                foreach($infos as $champ=>$val){
     287                        if($document[$champ] == $val)
     288                                unset($infos[$champ]);
     289                }
     290                if(count($infos) > 0){
     291                        include_spip('action/editer_document');
     292                        document_modifier($id_document, $infos);
     293                }
     294                return true;
     295        }
     296
     297        return $infos;
    179298}
     299
    180300?>
  • _plugins_/getID3/trunk/inc/recuperer_id3.php

    r62814 r71837  
    66 * Auteurs :
    77 * kent1 (http://www.kent1.info - kent1@arscenic.info), BoOz
    8  * 2008-2012 - Distribué sous licence GNU/GPL
     8 * 2008-2013 - Distribué sous licence GNU/GPL
    99 *
    1010 */
     
    1919 *
    2020 * @param string $fichier
     21 *              Le chemin vers le fichier à analyser
    2122 * @param string $info
    22  * @param string $mime
    23  * @return array Le contenu complet des tags id3 et des données audio
     23 *              Une info spécifique à retourner sinon, on retourne le tableau complet
     24 * @return array $infos
     25 *              Le contenu complet des tags id3 et des données audio ou seulement l'info demandée
    2426 */
    25 function inc_recuperer_id3_dist($fichier,$info=null,$mime=null){
     27function inc_recuperer_id3_dist($fichier,$info=null){
    2628        include_spip('getid3/getid3');
    2729        $getID3 = new getID3;
     
    4446                            $dest = sous_repertoire(_DIR_VAR, 'cache-getid3');
    4547                                        $dest = $dest.$tmp_file;
    46                                         if ($ok = ecrire_fichier($dest, $file_info['id3v2']['APIC'][$cle]['data'])) {
     48                                        if ($ok = ecrire_fichier($dest, $file_info['id3v2']['APIC'][$cle]['data']))
    4749                                                $id3['cover'.$cle] = $dest;
    48                                         }
    4950                                }
    5051                        }
     
    5253                if(isset($file_info['flac']['APIC'])){
    5354                        if (isset($file_info['flac']['APIC']['data']) && isset($file_info['flac']['APIC']['image_mime'])) {
    54                                 spip_log($file_info['flac']['APIC']['image_mime'],'getid3');
    5555                    $extension = strtolower($file_info['flac']['APIC']['extension']);
    5656                    if($extension == 'jpeg')
     
    6464                        }
    6565                }
     66               
     67                /**
     68                 * On passe tous les comments en info
     69                 */
    6670                if(isset($file_info['comments_html'])){
    6771                        foreach($file_info['comments_html'] as $cle=>$val){
     
    6973                        }
    7074                }
     75                if(isset($file_info['tags_html'])){
     76                        foreach($file_info['tags_html'] as $cle=>$val){
     77                                $id3[$cle] = array_pop($val);
     78                        }
     79                }
     80                /**
     81                 * Les pistes vidéos
     82                 */
     83                if(isset($file_info['video'])){
     84                        $id3['hasvideo'] = 'oui';
     85                        $id3['largeur'] = isset($file_info['video']['resolution_x']) ?$file_info['video']['resolution_x'] : false;
     86                        $id3['hauteur'] = isset($file_info['video']['resolution_y']) ?$file_info['video']['resolution_y'] : false;
     87                        $id3['framerate'] = isset($file_info['video']['frame_rate']) ?$file_info['video']['frame_rate'] : false;
     88                }
     89               
     90                /**
     91                 * Les pistes audio
     92                 */
     93                if(isset($file_info['audio'])){
     94                        $id3['hasaudio'] = 'oui';
     95                        $id3['format'] = $file_info['audio']['dataformat'];
     96                        $id3['audiosamplerate'] = $file_info['audio']['sample_rate'] ;
     97                        $id3['bits'] = $file_info['audio']['bits_per_sample'];
     98                        $id3['audiocodec'] = ($file_info['audio']['encoder']) ? $file_info['audio']['encoder'] : $file_info['audio']['codec'];
     99                        $id3['bitrate_mode'] = $file_info['audio']['bitrate_mode'];
     100                        $id3['audiochannels'] = $file_info['audio']['channels'];
     101                        $id3['channel_mode'] = $file_info['audio']['channelmode'];
     102                }
     103               
    71104                /**
    72105                 * Cas des flac et ogg (certainement)
    73106                 */
    74                 if(isset($id3['date']) && !isset($id3['year'])){
     107                if(isset($id3['date']) && !isset($id3['year']))
    75108                        $id3['year'] = $id3['date'];
    76                 }
    77                 $id3['format'] = $file_info['audio']['dataformat'];
    78                 $id3['lossless'] = $file_info['audio']['lossless'];
    79                 $id3['audiosamplerate'] = $file_info['audio']['sample_rate'] ;
    80                 $id3['bits'] = $file_info['audio']['bits_per_sample'];
    81                 if(is_array($file_info['tags']['id3v2']['track'])){
     109               
     110                if(is_array($file_info['tags']['id3v2']['track']))
    82111                        $id3['track'] = array_pop($file_info['tags']['id3v2']['track']);
    83                 }
    84                 $id3['codec'] = ($file_info['audio']['encoder']) ? $file_info['audio']['encoder'] : $file_info['audio']['codec'];
    85                 if(is_array($file_info['tags']['id3v2']['totaltracks'])){
     112               
     113                if(is_array($file_info['tags']['id3v2']['totaltracks']))
    86114                        $id3['totaltracks'] = array_pop($file_info['tags']['id3v2']['totaltracks']);
    87                 }
    88                 $id3['bitrate'] = $file_info['audio']['bitrate'];
    89                 $id3['bitrate_mode'] = $file_info['audio']['bitrate_mode'];
    90                 $id3['duree_secondes'] = $file_info['playtime_seconds'];
    91                 $id3['duree'] = $file_info['playtime_string'];
    92                 $id3['channels'] = $file_info['audio']['channels'];
    93                 $id3['channel_mode'] = $file_info['audio']['channelmode'];
     115               
     116                $id3['bitrate'] = isset($file_info['bitrate']) ? floor($file_info['bitrate']) : floor($file_info['audio']['bitrate']);
     117                $id3['duree_secondes'] = $file_info['playtime_string'];
     118                $id3['duree'] = $file_info['playtime_seconds'];
    94119                $id3['mime'] = $file_info['mime_type'];
    95120        }
    96         if(!$info){
     121
     122        if(!$info)
    97123                return $id3;
    98         }
    99         else{
    100                 return $id3[$info];
    101         }
     124
     125        return $id3[$info];
    102126}
    103127?>
  • _plugins_/getID3/trunk/lang/getid3_fr.php

    r70766 r71837  
    4444        'info_genre' => 'Genre :',
    4545        'info_lossless' => 'Aucune perte de compression',
     46        'info_media' => 'Type de média :',
    4647        'info_mime' => 'Type mime :',
    4748        'info_nom_fichier' => 'Nom du fichier :',
  • _plugins_/getID3/trunk/metadata/audio.php

    r63326 r71837  
    22/**
    33 * GetID3
    4  * Gestion des métadonnées de fichiers sonores directement dans SPIP
     4 * Gestion des métadonnées de fichiers sonores et vidéos directement dans SPIP
    55 *
    66 * Auteurs :
    77 * kent1 (http://www.kent1.info - kent1@arscenic.info), BoOz
    8  * 2008-2012 - Distribué sous licence GNU/GPL
     8 * 2008-2013 - Distribué sous licence GNU/GPL
    99 *
     10 * @package SPIP\GetID3\Metadatas
    1011 */
    1112
     
    1617 * appelée à l'insertion en base dans le plugin medias (inc/renseigner_document)
    1718 *
    18  * @param string $file : le chemin du fichier à analyser
    19  * @return array $metas : le tableau comprenant les différentes metas à mettre en base
     19 * @param string $file
     20 *              Le chemin du fichier à analyser
     21 * @return array $metas
     22 *              Le tableau comprenant les différentes metas à mettre en base
    2023 */
    2124function metadata_audio($file){
    22         $metas = array();
    2325        $recuperer_infos = charger_fonction('getid3_recuperer_infos','inc');
    24         $metas = $recuperer_infos($file);
     26        $metas = $recuperer_infos(false,$file);
    2527        return $metas;
    2628}
  • _plugins_/getID3/trunk/prive/inclure/prive_infos_son.html

    r63324 r71837  
    1515                                        </td>
    1616                                </tr>]
    17 
    1817                                <tr>
    1918                                        <td class="son_left">
     
    3332                                        </td>
    3433                                </tr>
    35 
     34                                <tr>
     35                                        <td class="son_left">
     36                                                <:getid3:info_media:>
     37                                        </td>
     38                                        <td >
     39                                                <strong>#MEDIA</strong>
     40                                        </td>
     41                                </tr>
     42                                [(#LARGEUR|intval|>{0}|et{#HAUTEUR|intval|>{0}}|oui)
     43                                <tr>
     44                                        <td class="son_left">
     45                                                <:getid3:info_format:>
     46                                        </td>
     47                                        <td >
     48                                        <strong>#LARGEUR/#HAUTEUR px</strong>
     49                                        </td>
     50                                </tr>]
    3651                                [<tr>
    3752                                        <td class="son_left">
Note: See TracChangeset for help on using the changeset viewer.