溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP微信開發(fā)之微信錄音臨時轉(zhuǎn)永久存儲的示例分析

發(fā)布時間:2021-08-11 11:19:11 來源:億速云 閱讀:121 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“PHP微信開發(fā)之微信錄音臨時轉(zhuǎn)永久存儲的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“PHP微信開發(fā)之微信錄音臨時轉(zhuǎn)永久存儲的示例分析”這篇文章吧。

1、通過調(diào)用微信媒體資源下載接口將微信錄音下載到本地

@params
String access_token 微信公眾號access_token
String serverId 通過錄音上傳接口獲取到的serverId
http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token}&media_id={$serverId}

2、從微信方下載到本地的錄音文件格式是amr,而微信網(wǎng)頁瀏覽器并不支持amr文件的音頻文件播放。所以我們需要將amr 轉(zhuǎn)換成
網(wǎng)頁能夠識別的mp3格式。

怎么轉(zhuǎn)換呢?我找到了一個平臺可以支持這種轉(zhuǎn)換,七牛云存儲平臺.通過七牛云存儲我們可以將amr轉(zhuǎn)換成mp3

require("./extension/autoload.php");//官方開發(fā)包 可在官方下載 php版本 載入其中的autoload.php extension 是隨意 起的名字

/**
 * @param
 * String $filepa 本地amr文件路徑
 * @return
 * String 解析后存儲在七牛存儲空間中的mp3遠程地址
 */
function upchange($filepa){
  $accessKey="七牛accessKey 在七牛后臺獲取";
  $secretKey="七牛secretKey 在七牛后臺獲取";
  $httpUrl ="七牛分配的訪問地址 在七牛后臺獲取";
  $bucket = "存儲空間對象bucket 在七牛后臺創(chuàng)建";
  //轉(zhuǎn)碼時使用的隊列名稱
  $pipeline = '轉(zhuǎn)碼隊列名稱 在七牛后臺創(chuàng)建';
  $auth = new \Qiniu\Auth($accessKey, $secretKey);
  $rand_name = getRandChar__(6).time().'.mp3';
  //要進行轉(zhuǎn)碼的轉(zhuǎn)碼操作
  $fops = "avthumb/mp3/ab/64k/ar/22050";
  //$fops = "mp3";
  //可以對轉(zhuǎn)碼后的文件進行使用saveas參數(shù)自定義命名,當然也可以不指定文件會默認命名并保存在當間
  $savekey = Qiniu\base64_urlSafeEncode('kepei:'.$rand_name);
  $fops = $fops.'|saveas/'.$savekey;

  $policy = array(
    'persistentOps'   => $fops,
    'persistentNotifyUrl' => 'http://',
  );
  $uptoken = $auth->uploadToken($bucket, null, 3600, $policy);

  //上傳文件的本地路徑
  $filePath = $filepa;
  $key = $rand_name;
  //$key = '';
  $uploadMgr = new \Qiniu\Storage\UploadManager(); 
  list($ret, $err) = $uploadMgr->putFile($uptoken, $key, $filePath);

  if ($err !== null) {
    return false;
  } else {
    return $httpUrl.$rand_name;
  }
}

function getRandChar__($length){
  $str = null;
  $strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
  $max = strlen($strPol)-1;
  for($i=0;$i<$length;$i++){
    $str.=$strPol[rand(0,$max)];//rand($min,$max)生成介于min和max兩個數(shù)之間的一個隨機整數(shù)
  }
  return $str;
}

$amrToMp3 = upchange('本地amr文件路徑');
//mp3 在七牛上的訪問地址
var_dump($amrToMp3);
/**
 * 如果你希望將這個mp3 存儲在本地而不是在七牛上,那么你需要在程序上等待幾秒,因為這時七牛在轉(zhuǎn)換改amr的格式
 */
 sleep(10);
$res = curlHttp($amrToMp3);    //curlHttp 就是 php  curl 機制 不懂的可以看下我下面文章機制
$open = fopen('demo.mp3','w');
fwrite($open,$res);
fclose($open);

以上是“PHP微信開發(fā)之微信錄音臨時轉(zhuǎn)永久存儲的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI