Dotclear

Changeset 2767:7fd79e763135


Ignore:
Timestamp:
11/06/14 09:55:37 (9 years ago)
Author:
franck <carnet.franck.paul@…>
Branch:
default
Message:

HTML5 audio and video basic support (further improvements should coming next)

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • admin/media.php

    r2764 r2767  
    645645     $lst .= ($act != '' ? '<li class="media-action">&nbsp;'.$act.'</li>' : ''); 
    646646 
    647      if ($f->type == 'audio/mpeg3') { 
    648           $lst .= '<li>'.dcMedia::mp3player($f->file_url,$core->adminurl->get("admin.home",array('pf' => 'player_mp3.swf'))).'</li>'; 
     647     // Show player if relevant 
     648     $file_type = explode('/',$f->type); 
     649     if ($file_type[0] == 'audio') 
     650     { 
     651          $lst .= '<li>'.dcMedia::audioPlayer($f->type,$f->file_url,$core->adminurl->get("admin.home",array('pf' => 'player_mp3.swf'))).'</li>'; 
    649652     } 
    650653 
  • admin/media_item.php

    r2751 r2767  
    248248} 
    249249 
     250# Get major file type (first part of mime type) 
     251$file_type = explode('/',$file->type); 
     252 
    250253# Insertion popup 
    251254if ($popup) 
     
    323326          '</div>'; 
    324327     } 
    325      elseif ($file->type == 'audio/mpeg3') 
     328//   elseif ($file->type == 'audio/mpeg3') 
     329     elseif ($file_type == 'audio') 
    326330     { 
    327331          $media_type = 'mp3'; 
     
    346350 
    347351          $public_player_style = unserialize($core->blog->settings->themes->mp3player_style); 
    348           $public_player = dcMedia::mp3player($file->file_url,$core->blog->getQmarkURL().'pf=player_mp3.swf',$public_player_style); 
     352//        $public_player = dcMedia::mp3player($file->file_url,$core->blog->getQmarkURL().'pf=player_mp3.swf',$public_player_style); 
     353          $public_player = dcMedia::audioPlayer($file->type,$file->file_url,$core->blog->getQmarkURL().'pf=player_mp3.swf',$public_player_style); 
    349354          echo form::hidden('public_player',html::escapeHTML($public_player)); 
    350355          echo '</p>'; 
    351356          echo '</div>'; 
    352357     } 
    353      elseif ($file->type == 'video/x-flv' || $file->type == 'video/mp4' || $file->type == 'video/x-m4v') 
     358//   elseif ($file->type == 'video/x-flv' || $file->type == 'video/mp4' || $file->type == 'video/x-m4v') 
     359     elseif ($file_type == 'video') 
    354360     { 
    355361          $media_type = 'flv'; 
     
    386392 
    387393          $public_player_style = unserialize($core->blog->settings->themes->flvplayer_style); 
    388           $public_player = dcMedia::flvplayer($file->file_url,$core->blog->getQmarkURL().'pf=player_flv.swf',$public_player_style); 
     394//        $public_player = dcMedia::flvplayer($file->file_url,$core->blog->getQmarkURL().'pf=player_flv.swf',$public_player_style); 
     395          $public_player = dcMedia::videoPlayer($file->type,$file->file_url,$core->blog->getQmarkURL().'pf=player_flv.swf',$public_player_style); 
    389396          echo form::hidden('public_player',html::escapeHTML($public_player)); 
    390397          echo '</p>'; 
     
    468475} 
    469476 
    470 if ($file->type == 'audio/mpeg3') 
    471 { 
    472      echo dcMedia::mp3player($file->file_url,$core->adminurl->get("admin.home",array('pf' => 'player_mp3.swf'))); 
    473 } 
    474  
    475 if ($file->type == 'video/x-flv' || $file->type == 'video/mp4' || $file->type == 'video/x-m4v') 
    476 { 
    477      echo dcMedia::flvplayer($file->file_url,$core->adminurl->get("admin.home",array('pf' => 'player_flv.swf'))); 
     477// Show player if relevant 
     478if ($file_type[0] == 'audio') 
     479{ 
     480     echo dcMedia::audioPlayer($file->type,$file->file_url,$core->adminurl->get("admin.home",array('pf' => 'player_mp3.swf'))); 
     481} 
     482if ($file_type[0] == 'video') 
     483{ 
     484     echo dcMedia::videoPlayer($file->type,$file->file_url,$core->adminurl->get("admin.home",array('pf' => 'player_flv.swf'))); 
    478485} 
    479486 
  • inc/core/class.dc.media.php

    r2763 r2767  
    10511051 
    10521052     /** 
     1053     Returns HTML code for audio player (HTML5 and if possible fallback Flash player) 
     1054 
     1055     @param  type   <b>string</b>       audio mime type 
     1056     @param    url       <b>string</b>       audio URL to play 
     1057     @param    player    <b>string</b>       Player URL (flash player fallback) 
     1058     @param    args <b>array</b>        Player parameters (flash player fallback) 
     1059     @return   <b>string</b> 
     1060     */ 
     1061     public static function audioPlayer($type,$url,$player=null,$args=null) 
     1062     { 
     1063          $audio = 
     1064               '<audio controls preload="auto">'."\n". 
     1065               '<source src="'.$url.'">'."\n"; 
     1066 
     1067          if ($type == 'audio/mpeg3') { 
     1068               // Include Flash player fallback 
     1069               if (!$player) { 
     1070                    $player = 'player_mp3.swf'; 
     1071               } 
     1072 
     1073               if (!is_array($args)) 
     1074               { 
     1075                    $args = array( 
     1076                         'showvolume' => 1, 
     1077                         'loadingcolor' => 'ff9900', 
     1078                         'bgcolor1' => 'eeeeee', 
     1079                         'bgcolor2' => 'cccccc', 
     1080                         'buttoncolor' => '0066cc', 
     1081                         'buttonovercolor' => 'ff9900', 
     1082                         'slidercolor1' => 'cccccc', 
     1083                         'slidercolor2' => '999999', 
     1084                         'sliderovercolor' => '0066cc' 
     1085                    ); 
     1086               } 
     1087 
     1088               $args['mp3'] = $url; 
     1089 
     1090               if (empty($args['width'])) { 
     1091                    $args['width'] = 200; 
     1092               } 
     1093               if (empty($args['height'])) { 
     1094                    $args['height'] = 20; 
     1095               } 
     1096 
     1097               $vars = array(); 
     1098               foreach ($args as $k => $v) { 
     1099                    $vars[] = $k.'='.$v; 
     1100               } 
     1101 
     1102               $audio .= 
     1103                    '<object type="application/x-shockwave-flash" '. 
     1104                    'data="'.$player.'" '. 
     1105                    'width="'.$args['width'].'" height="'.$args['height'].'">'. 
     1106                    '<param name="movie" value="'.$player.'" />'. 
     1107                    '<param name="wmode" value="transparent" />'. 
     1108                    '<param name="FlashVars" value="'.implode('&amp;',$vars).'" />'. 
     1109                    __('Embedded Audio Player'). 
     1110                    '</object>'."\n"; 
     1111          } 
     1112 
     1113          $audio .= 
     1114               '</audio>'."\n"; 
     1115 
     1116          return $audio; 
     1117     } 
     1118 
     1119     /** 
     1120     Returns HTML code for video player (HTML5 and if possible fallback Flash player) 
     1121 
     1122     @param  type   <b>string</b>       video mime type 
     1123     @param    url       <b>string</b>       video URL to play 
     1124     @param    player    <b>string</b>       Player URL (flash player fallback) 
     1125     @param    args <b>array</b>        Player parameters (flash player fallback) 
     1126     @return   <b>string</b> 
     1127     */ 
     1128     public static function videoPlayer($type,$url,$player=null,$args=null) 
     1129     { 
     1130          $video = ''; 
     1131          if ($type != 'video/x-flv') { 
     1132               $video = 
     1133                    '<video controls preload="auto">'."\n". 
     1134                    '<source src="'.$url.'">'."\n"; 
     1135          } 
     1136 
     1137          if ($type == 'video/x-flv' || $type == 'video/mp4' || $type == 'video/x-m4v') 
     1138          { 
     1139               // Include Flash player fallback 
     1140               if (!$player) { 
     1141                    $player = 'player_flv.swf'; 
     1142               } 
     1143 
     1144               if (!is_array($args)) 
     1145               { 
     1146                    $args = array( 
     1147                         'margin' => 1, 
     1148                         'showvolume' => 1, 
     1149                         'showtime' => 1, 
     1150                         'showfullscreen' => 1, 
     1151                         'buttonovercolor' => 'ff9900', 
     1152                         'slidercolor1' => 'cccccc', 
     1153                         'slidercolor2' => '999999', 
     1154                         'sliderovercolor' => '0066cc' 
     1155                    ); 
     1156               } 
     1157 
     1158               $args['flv'] = $url; 
     1159 
     1160               if (empty($args['width'])) { 
     1161                    $args['width'] = 400; 
     1162               } 
     1163               if (empty($args['height'])) { 
     1164                    $args['height'] = 300; 
     1165               } 
     1166 
     1167               $vars = array(); 
     1168               foreach ($args as $k => $v) { 
     1169                    $vars[] = $k.'='.$v; 
     1170               } 
     1171 
     1172               $video .= 
     1173                    '<object type="application/x-shockwave-flash" '. 
     1174                    'data="'.$player.'" '. 
     1175                    'width="'.$args['width'].'" height="'.$args['height'].'">'. 
     1176                    '<param name="movie" value="'.$player.'" />'. 
     1177                    '<param name="wmode" value="transparent" />'. 
     1178                    '<param name="allowFullScreen" value="true" />'. 
     1179                    '<param name="FlashVars" value="'.implode('&amp;',$vars).'" />'. 
     1180                    __('Embedded Video Player'). 
     1181                    '</object>'."\n"; 
     1182          } 
     1183 
     1184          if ($type != 'video/x-flv') { 
     1185               $video .= 
     1186                    '</video>'."\n"; 
     1187          } 
     1188 
     1189          return $video; 
     1190     } 
     1191 
     1192     /** 
    10531193     Returns HTML code for MP3 player 
    10541194 
     
    11071247     } 
    11081248 
     1249     /** 
     1250     Returns HTML code for FLV player 
     1251 
     1252     @param    url       <b>string</b>       FLV URL to play 
     1253     @param    player    <b>string</b>       Player URL 
     1254     @param    args      <b>array</b>        Player parameters 
     1255     @return   <b>string</b> 
     1256     */ 
    11091257     public static function flvplayer($url,$player=null,$args=null) 
    11101258     { 
  • inc/prepend.php

    r2742 r2767  
    255255unset($u_max_size); unset($p_max_size); 
    256256 
     257# Register supplemental mime types 
     258files::registerMimeTypes(array( 
     259     // Audio 
     260     'aac'     => 'audio/aac', 
     261     'ogg'     => 'audio/ogg', 
     262     'weba'    => 'audio/webm', 
     263     'm4a'     => 'audio/mp4', 
     264     // Video 
     265     'mp4'     => 'video/mp4', 
     266     'm4p'     => 'video/mp4', 
     267     'webm'    => 'video/webm' 
     268     )); 
     269 
    257270# Shutdown 
    258271register_shutdown_function('__shutdown'); 
Note: See TracChangeset for help on using the changeset viewer.

Sites map