Home > Backend Development > PHP Tutorial > Detailed explanation of the steps to temporarily convert WeChat recordings to permanent storage using PHP

Detailed explanation of the steps to temporarily convert WeChat recordings to permanent storage using PHP

php中世界最好的语言
Release: 2023-03-26 21:32:02
Original
2220 people have browsed it

This time I will give you a detailed explanation of the steps for temporarily converting WeChat recordings to permanent storage using PHP. What are the precautions for temporarily converting WeChat recordings to permanent storage using PHP? Here are practical cases, let’s take a look.

I encountered this problem recently during development. Party A hopes that the user's recording on WeChat will always be valid. Just open your friend's sharing at any time and you can listen to your friend's recording. It can be found in the WeChat official development manual that the WeChat recording

file can only be retained on WeChat for 3 days after uploading , and it will become invalid after 3 days. How to do it?

1. Download the WeChat recording to the local by calling the WeChat media resource download interface

@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}
Copy after login
2. The format of the recording file downloaded from the WeChat side is amr, but the WeChat web browser does not Support audio file playback of amr files. So we need to convert amr into mp3 format that

web pages can recognize.

How to convert? I found a platform that can support this conversion, Qiniu Cloud Storage Platform. Through Qiniu Cloud Storage, we can convert amr to 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);
Copy after login
php curlHttp

I believe you will read the case in this article You have mastered the method. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

How PHP can record visitor browsing information

Detailed explanation of the steps for PHP to use foreach to convert an array

The above is the detailed content of Detailed explanation of the steps to temporarily convert WeChat recordings to permanent storage using PHP. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template