{
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秒
谢谢,搞定了!
