>  기사  >  백엔드 개발  >  PHP WeChat 개발: WeChat 녹음은 일시적으로 영구 저장 장치로 변환됩니다.

PHP WeChat 개발: WeChat 녹음은 일시적으로 영구 저장 장치로 변환됩니다.

jacklove
jacklove원래의
2018-05-22 16:12:501716검색

이 기사에서는 WeChat 녹음을 영구 저장소로 임시 변환하는 것과 관련된 지식 포인트를 설명합니다.

최근 개발 중에 이 문제가 발생했습니다. 당사자 A는 사용자의 WeChat 녹음이 항상 유효하기를 바랍니다. 언제든지 친구의 공유를 열어서 친구의 녹음 내용을 들을 수 있습니다. 위챗 공식 개발 매뉴얼에 따르면 위챗 녹음 파일은 업로드 후 3일 동안만 위챗에 보관할 수 있으며, 3일이 지나면 무효가 됩니다.

1. WeChat 미디어 리소스 다운로드 인터페이스

@params 
String access_token 微信公众号access_token 
String serverId 通过录音上传接口获取到的serverId 
https://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token}&media_id={$serverId}


를 호출하여 WeChat 녹음을 로컬로 다운로드합니다. 2. WeChat에서 로컬로 다운로드한 녹음 파일의 형식은 amr입니다. WeChat 웹 브라우저 amr 파일 오디오 파일 재생에서는 지원되지 않습니다. 그래서 amr을

웹페이지에서 인식할 수 있는 mp3 형식으로 변환해야 합니다.

이 변환을 지원할 수 있는 플랫폼인 Qiniu Cloud Storage Platform을 찾았습니다. Qiniu Cloud Storage를 통해 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' => 'https://', 
); 
$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(&#39;本地amr文件路径&#39;); 
//mp3 在七牛上的访问地址
var_dump($amrToMp3); 
/** 
* 如果你希望将这个mp3 存储在本地而不是在七牛上,那么你需要在程序上等待几秒,因为这时七牛在转换改amr的格式 
*/
sleep(10);
$res = curlHttp($amrToMp3); //curlHttp 就是 php curl 机制 不懂的可以看下我下面文章机 
$open = fopen(&#39;demo.mp3&#39;,&#39;w&#39;);
fwrite($open,$res); 
fclose($open);

이 기사에서는 PHP WeChat 개발에 대해 설명합니다: WeChat 녹음의 임시 변환 관련 작업 영구 저장이 가능하므로 더 많은 관련 콘텐츠를 보려면 PHP 중국어 웹사이트를 참조하세요.

관련 권장사항:

php는 반투명 워터마크 방법을 생성하기 위해 imagecopymerge() 함수를 사용합니다.

Discuz! 튜토리얼: 간단한 PHP 파일을 통해 테마 보기를 수정하는 방법은 무엇입니까?

시간을 가져오는 PHP 메소드

위 내용은 PHP WeChat 개발: WeChat 녹음은 일시적으로 영구 저장 장치로 변환됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.