php擷取mp3檔案資訊時間長度修改

來源:互聯網
上載者:User
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秒

謝謝,搞定了!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.