不能听命于自己者,就要受命于他人。网站首页学海无涯

通过PHP,JS两种方式获取语音的长度

陈佚2018-12-13 22:51:363人围观暂无分类
简介最近做一些功能有涉及到需要获取音乐的长度,这个确实比较困难。PHP我们通过第三方插件可以实现

语音信息.jpg

今天将PHP和JS获取语音长度的两种方式分享给大家

首先是第一种通过JS来获取语音的长度

function getTime() {  
    setTimeout(function () {  
        var duration = $('audio')[0].duration;  
        if(isNaN(duration)){  
            getTime();  
        }else{  
            console.log("该歌曲的总时间为:"+$("audio")[0].duration+"秒")  
        }  
    }, 10);  
}

然后我们可以通过一个函数将语音转换时分秒的形式

function formatSeconds(value) {
    var secondTime = parseInt(value);// 秒
    var minuteTime = 0;// 分
    var hourTime = 0;// 小时
    if(secondTime > 60) {//如果秒数大于60,将秒数转换成整数
        //获取分钟,除以60取整数,得到整数分钟
        minuteTime = parseInt(secondTime / 60);
        //获取秒数,秒数取佘,得到整数秒数
        secondTime = parseInt(secondTime % 60);
        //如果分钟大于60,将分钟转换成小时
        if(minuteTime > 60) {
            //获取小时,获取分钟除以60,得到整数小时
            hourTime = parseInt(minuteTime / 60);
            //获取小时后取佘的分,获取分钟除以60取佘的分
            minuteTime = parseInt(minuteTime % 60);
        }
    }
    var result = "" + parseInt(secondTime) + "秒";
    if(minuteTime > 0) {
        result = "" + parseInt(minuteTime) + "分" + result;
    }
    if(hourTime > 0) {
        result = "" + parseInt(hourTime) + "小时" + result;
    }
    return result;
}
console.log(formatSeconds(10000002));

下面我们通过PHP的方式来获取语音的信息,这里我我们要用到一个第三方的插件就是getid3

getid3分享:https://pan.baidu.com/s/1Q1JQ3K1EuL3GtDqtlIQHVg 提取码:smu5

<?php
require_once('/getid3/getid3.php');
$audioServPath="201208151633466674.mp3";
$getID3 = new getID3;  
$audioInfo = $getID3->analyze($audioServPath);  
//print_r($audioInfo);//打印语音的所有信息
// $duration = $audioInfo['playtime_seconds'];//语音长度(秒为单位)
$duration = $audioInfo['playtime_string'];//语音长度(分秒为单位)
echo $duration;
exit;
?>

两种方式都是我自己在项目中使用过的,分享大家。有好的建议希望在下面留言评论!

文章评论

    共有0条评论来说两句吧...