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

WBOY
リリース: 2016-06-23 13:04:27
オリジナル
1574 人が閲覧しました

  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秒  

谢谢,搞定了!

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!