最近做開發的時候碰到了這個問題,甲方希望用戶在微信端的錄音能夠一直有效。就是隨時打開好友的分享就能聽到好友的錄音??稍谖⑿殴俜介_發手冊上查到微信錄音文件上傳后只能在微信端保留3天時間,3天后就失效了。怎么辦呢?
1、通過調用微信媒體資源下載接口將微信錄音下載到本地
@paramsString access_token 微信公眾號access_tokenString serverId 通過錄音上傳接口獲取到的serverIdhttp://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token} media_id={$serverId}
2、從微信方下載到本地的錄音html' target='_blank'>文件格式是amr,而微信網頁瀏覽器并不支持amr文件的音頻文件播放。所以我們需要將amr 轉換成
網頁能夠識別的mp3格式。
怎么轉換呢?我找到了一個平臺可以支持這種轉換,七牛云存儲平臺.通過七牛云存儲我們可以將amr轉換成mp3
require( ./extension/autoload.php //官方開發包 可在官方下載 php版本 載入其中的autoload.php extension 是隨意 起的名字 * @param * String $filepa 本地amr文件路徑 * @return * String 解析后存儲在七牛存儲空間中的mp3遠程地址function upchange($filepa){ $accessKey= 七牛accessKey 在七牛后臺獲取 $secretKey= 七牛secretKey 在七牛后臺獲取 $httpUrl = 七牛分配的訪問地址 在七牛后臺獲取 $bucket = 存儲空間對象bucket 在七牛后臺創建 //轉碼時使用的隊列名稱 $pipeline = 轉碼隊列名稱 在七牛后臺創建 $auth = new /Qiniu/Auth($accessKey, $secretKey); $rand_name = getRandChar__(6).time(). .mp3 //要進行轉碼的轉碼操作 $fops = avthumb/mp3/ab/64k/ar/22050 //$fops = mp3 //可以對轉碼后的文件進行使用saveas參數自定義命名,當然也可以不指定文件會默認命名并保存在當間 $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兩個數之間的一個隨機整數 return $str;$amrToMp3 = upchange( 本地amr文件路徑 //mp3 在七牛上的訪問地址var_dump($amrToMp3); * 如果你希望將這個mp3 存儲在本地而不是在七牛上,那么你需要在程序上等待幾秒,因為這時七牛在轉換改amr的格式 sleep(10);$res = curlHttp($amrToMp3); //curlHttp 就是 php curl 機制 不懂的可以看下我下面文章機制$open = fopen( demo.mp3 , w fwrite($open,$res);fclose($open);
php curlHttp
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持php 。
您可能感興趣的文章:PHP設計模式之注冊樹模式分析php技
win10 apache配置虛擬主機后localhost無法使用的解決方法php技巧
Laravel中unique和exists驗證規則的優化詳解php實例
以上就是PHP微信開發之微信錄音臨時轉永久存儲php技巧的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答