微信オーディオ回転mp 3フォーマット
4913 ワード
現在でも、Webページでオーディオを再生するための基準は存在しません.HTML 5は、audio要素によってオーディオを含む標準的な方法を規定している.audio要素は、音声ファイルまたはオーディオストリームを再生することができる.現在、audio要素は、MP 3、Wav、Ogg Vorbisの3つのオーディオフォーマットをサポートしています.微信録音のオーディオはamr形式で、ホームページの再生をサポートせず、アップロードの音声有効期間は3日間で、微信マルチメディアインターフェースで音声を自分のサーバーにダウンロードし、コードをMP 3形式に変換する方法は2種類ある.サーバー上でffmpegを構築する多くのプロジェクトは必ずしも自分のサーバー上に置くとは限らないし、多くの私たちはサーバーの配置に慣れていないので、ffmpegを構築することはできませんが、ネットワークインタフェースの呼び出しにはよく知られていないので、私は7牛PHPフレームを使って微信amrオーディオをmp 3に転送することを再説明します.二.七牛クラウドストレージフレームワークトランスコードストレージ(1)を使用して七牛SDKをダウンロードし、アドレスをダウンロードする:https://developer.qiniu.com/sdk(2)ダウンロードしたSDKパッケージ全体を解凍してプロジェクトに入れる(3)エントリファイルを導入し、使用するモジュールのネーミングスペースを書く
(4)微信録音amrファイルをローカル(自分のサーバ)にダウンロードする
(5)ローカルamrオーディオファイルを七牛雲にアップロードし、トランスコードしてMP 3ファイルを生成する
(5)ローカルamrオーディオファイルを七牛雲にアップロードし、トランスコードしてMP 3ファイルを生成する
require_once 'qiniusdk/autoload.php';
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
use Qiniu\Storage\BucketManager;
(4)微信録音amrファイルをローカル(自分のサーバ)にダウンロードする
function upload($serverid){
$media_id = $serverid;
$access_token = M('accesstoken')->getField('access_token');
$path = './'.C("UPLOADPATH").'audio/'.date('Ymd',time());
if(!is_dir($path)){
mkdir($path);
}
//
$url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token}&media_id={$media_id}";
$mediaid = "wxupload_".time().rand(1111,9999);
$filename = $mediaid . ".amr";
$this->downAndSaveFile($url,$path."/".$filename);
$res = 'audio/'.date('Ymd',time()).'/'.$filename;
$data = array();
$data['res'] = $res;
$data['filename'] = $filename;
$data['mediaid'] = $mediaid;
return $data;
}
(5)ローカルamrオーディオファイルを七牛雲にアップロードし、トランスコードしてMP 3ファイルを生成する
private function upchange($filePath,$mediaid){
$accessKey = trim($reply['accessKey']); //
$secretKey = trim($reply['secretKey']); //
$auth = new Auth($accessKey, $secretKey);
$bucket = trim($reply['bucket']);
// , , 。
$pipeline = trim($reply['pipeline']);
// '|saveas' , bucket key
// ,bucket ,
$savekey = Qiniu\base64_urlSafeEncode($bucket.':'.$mediaid.'.mp3');
//
$fops = "avthumb/mp3/ab/320k/ar/44100/acodec/libmp3lame";
$fops = $fops.'|saveas/'.$savekey;
if(!empty($pipeline)){ //
$policy = array(
'persistentOps' => $fops,
'persistentPipeline' => $pipeline
);
}else{ //
$policy = array(
'persistentOps' => $fops
);
}
//
$uptoken = $auth->uploadToken($bucket, null, 3600, $policy);
$key = $mediaid.'.amr'; // amr
$uploadMgr = new UploadManager();
// $filePath
list($ret, $err) = $uploadMgr->putFile($uptoken, $key, $filePath);
if ($err !== null) {
return false;
}else {
// amr MP3
$bucketMgr = new BucketManager($auth);
// , amr
$bucketMgr->delete($bucket, $key);
return $ret['key'];
}
}
(5)ローカルamrオーディオファイルを七牛雲にアップロードし、トランスコードしてMP 3ファイルを生成する
function downAndSaveFile($url, $savePath) {
ob_start();
readfile($url);
$img = ob_get_contents();
ob_end_clean();
$size = strlen($img);
$fp = fopen($savePath, 'a');
fwrite($fp, $img);
fclose($fp);
}
function downchange($mediaid) {
$bucket = 'shuiliju';
$accessKey = $this->ak;
$secretKey = $this->sk;
$auth = new Auth($accessKey, $secretKey);
//baseUrl /key
$baseUrl = 'http://os4top2ks.bkt.clouddn.com/' . $mediaid;
$authUrl = $auth->privateDownloadUrl($baseUrl);
//
$filename = $mediaid;
$path = './' . C("UPLOADPATH") . 'audio/' . date('Ymd', time());
$this->downAndSaveFile($authUrl, $path . "/" . $filename);
$res = 'audio/' . date('Ymd', time()) . '/' . $filename;
$data = array();
$data['res'] = $res;
$data['filename'] = $filename;
$data['mediaid'] = $mediaid;
$bucketMgr = new BucketManager($auth);
$bucketMgr->delete($bucket, $mediaid);
return $data;
}