Dieser Artikel stellt hauptsächlich die von PHP WeChat entwickelte temporäre Konvertierung von WeChat-Aufzeichnungen vor. Ich hoffe, dass er allen helfen kann.
Ich bin kürzlich während der Entwicklung auf dieses Problem gestoßen. Party A hofft, dass die Aufzeichnungen der Benutzer auf WeChat immer gültig sind. Öffnen Sie einfach jederzeit die Freigabe Ihres Freundes und Sie können sich die Aufnahme Ihres Freundes anhören. Im offiziellen WeChat-Entwicklungshandbuch ist zu finden, dass die WeChat-Aufzeichnungsdatei nach dem Hochladen nur 3 Tage lang auf WeChat gespeichert werden kann und nach 3 Tagen ungültig wird. Was zu tun?
1. Laden Sie die WeChat-Aufzeichnung lokal herunter, indem Sie die WeChat-Medienressourcen-Download-Schnittstelle aufrufen
@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 Seite zur lokalen Seite Das Aufnahmedateiformat ist AMR, und der WeChat-Webbrowser unterstützt die Audiodateiwiedergabe von AMR-Dateien nicht. Daher müssen wir AMR in ein MP3-Format konvertieren, das von
Webseiten erkannt werden kann.
Wie konvertiert man? Ich habe eine Plattform gefunden, die diese Konvertierung unterstützen kann, Qiniu Cloud Storage Platform. Über Qiniu Cloud Storage können wir AMR in MP3 konvertieren
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
Verwandte Empfehlungen:
Empfohlenes Video Ressourcen für die PHP-WeChat-Entwicklung
Praktische Sharing-Funktion der WeChat-Entwicklung
Das obige ist der detaillierte Inhalt vonPHP realisiert die vorübergehende Konvertierung der WeChat-Aufzeichnung in eine permanente Speicherinstanzfreigabe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!