ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して WeChat 録音を一時的に永久ストレージに変換する手順の詳細な説明

PHP を使用して WeChat 録音を一時的に永久ストレージに変換する手順の詳細な説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-19 14:08:432184ブラウズ

今回は、PHP を使用して WeChat 録音を一時的に永久ストレージに変換する手順について詳しく説明します。PHP で WeChat 録音を一時的に永久ストレージに変換するための 注意事項 は何ですか?見て。

最近開発中にこの問題に遭遇しました。当事者 A は、WeChat でのユーザーの録音が常に有効であることを望んでいます。いつでも友達の共有を開くだけで、友達の録音を聞くことができます。 WeChat 録画

ファイルは、WeChat 公式開発マニュアルに記載されています。このファイルはアップロード後 3 日間のみ WeChat に保存でき、3 日を過ぎると無効になります。どうやってするの? 1. WeChat メディア リソース ダウンロード インターフェイスを呼び出して、WeChat 録音をローカルにダウンロードします

@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. WeChat からローカルにダウンロードされた録音ファイルの形式は amr ですが、WeChat Web ブラウザーは音声ファイルの再生をサポートしていません。 amr ファイルの。したがって、amr を

Web ページで認識できる 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' => '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);

phpcurlHttp

この記事の事例を読んだ後は、この方法を習得したと思います。 php 中国語 Web サイトの他の関連記事にもご注目ください。

推奨書籍:

PHP を操作して訪問者の閲覧情報を記録する方法


PHP が foreach を使用して配列を変換する手順の詳細な説明

以上がPHP を使用して WeChat 録音を一時的に永久ストレージに変換する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。