thinkphp5 利用七牛雲 將amr格式語音文件轉爲mp3

$card_id 是個人本地的文件  將問價名字的後綴名去掉

注意access_token的有效期

public function ceshi1($card_id)
{
    $mediaid = substr($card_id, 0, -4);
    $accessKey = config('ACCESSKEY');      //七牛公鑰
    $secretKey = config('SECRETKEY');      //七牛私鑰
    $auth = new Auth($accessKey, $secretKey);
    $filePath = './radio/' . $card_id;
    $bucket = 'radio';
    //數據處理隊列名稱,不設置表明不使用私有隊列,使用公有隊列。
    $pipeline = 'mingpianradio';

    //經過添加'|saveas'參數,指定處理後的文件保存的bucket和key
    //不指定默認保存在當前空間,bucket爲目標空間,後一個參數爲轉碼以後文件名
    $savekey = \Qiniu\base64_urlSafeEncode($bucket.':'.$mediaid.'.mp3');
    //設置轉碼參數
    $fops = "avthumb/mp3/ab/320k/ar/44100/acodec/libmp3lame";
    $fops = $fops.'|saveas/'.$savekey;
    if(!empty($pipeline)){  //使用私有隊列
        $policy = array(
            'persistentOps' => $fops,
            'persistentPipeline' => $pipeline
        );
    }else{                  //使用公有隊列
        $policy = array(
            'persistentOps' => $fops
        );
    }

    //指定上傳轉碼命令
    $uptoken = $auth->uploadToken($bucket, null, 3600, $policy);
    $key = $mediaid.'.amr'; //七牛雲中保存的amr文件名
    $uploadMgr = new UploadManager();

    //上傳文件並轉碼$filePath爲本地文件路徑
    list($ret, $err) = $uploadMgr->putFile($uptoken, $key, $filePath);
    if ($err !== null) {
        return false;
    }else {
        //此時七牛雲中同一段音頻文件有amr和MP3兩個格式的兩個文件同時存在
        $bucketMgr = new BucketManager($auth);
        //爲節省空間,刪除amr格式文件
        $bucketMgr->delete($bucket, $key);
        return $ret['key'];
    }
}
相關文章
相關標籤/搜索