Heim  >  Artikel  >  Backend-Entwicklung  >  php获取mp3文件信息时长修改

php获取mp3文件信息时长修改

WBOY
WBOYOriginal
2016-06-23 13:04:271647Durchsuche

  function djinfo($dir)
  {
            if(!file_exists($dir)) return '';
        if(substr(php_uname('s'),0,7)=="Windows"){ //LINUX系统暂时不支持
        $player= new COM("WMPlayer.OCX");
        $media = $player->newMedia($dir);
        $time = $media->duration; //获取持续时间
        @$s_bitrate = $media->getItemInfo(Bitrate); //获取位速
        @$size=$media->getItemInfo(FileSize);//大小 
        $time = sprintf("%01.0f", $time);
        $s_duration = strftime("%H时%M分%S秒",$time-28800);
        $s_bitrate = str_replace(substr($s_bitrate,-3),"",$s_bitrate)." Kbps";
        $s_size=$this->formatsize($size);
ob_flush();flush();
           return $s_size.'|'.$s_bitrate.'|'.$s_duration;
        }else{
       return '';
        }
          }

原来的代码是这样,比如原来获取时间为 1时08分05秒  想改为 68分05秒   
各位大神如何改啊,谢谢


回复讨论(解决方案)

希望大家帮帮忙,谢谢

你是要编辑mp3文件么?从微软定义看,media应该只能读数据,不能修改mp3文件的?
https://msdn.microsoft.com/en-us/library/windows/desktop/dd563869(v=vs.85).aspx#
Bitrate和FileSize的isReadOnlyItem都是true,filesize的定义页:https://msdn.microsoft.com/en-us/library/windows/desktop/dd562991(v=vs.85).aspx

以及这个问题感觉不如直接去问vb之类的开发他们用WMPlayer.OCX能不能改文件?

我是扫描入库,不是修改MP3文件,以上的入库时间样式是  1时08分05秒   我想转换为68分05秒  

那就只是个时间显示的问题了?
$media->duration结果是秒,所以是$time/60分,$time%60秒,这样?

那就只是个时间显示的问题了?
$media->duration结果是秒,所以是$time/60分,$time%60秒,这样?



$time = 4085;
echo sprintf("%dmin,%02dsec", floor($time/60), $time%60);
这种感觉

$time = $time-28800;$s_duration = date('H', $time) * 60 + date('i', $time) . date("分s秒",$time);echo $s_duration;
68分05秒  

谢谢,搞定了!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn