require_once APP_ROOT.'/vendor/autoload.php';
require_once APP_ROOT.'/vendor/config.php';
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
use Qiniu\Storage\BucketManager;//删除文件
class QiniuaudioAction extends Action {
function upaudio(){
$ACCESS_TOKEN=$_POST['ACCESS_TOKEN'];
$media_id=$_POST['media_id'];//微信jsdk上传到微信服务器后返回的
$save_audio=APP_ROOT."/audio";//本地暂时存放的文件夹
$audio_name=time().".amr";//暂时存放的文件名称
$qiniu_audio_name=time().".mp3";//上传到七牛的文件名
$filePath="http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=$ACCESS_TOKEN&media_id=$media_id";//音频路径注意报media_id错误的话可能是没有录到声音 建议吧这个链接放到浏览器打开 然后打开下载的文件看看
getFilepapers($filePath,$save_audio,$audio_name);//下载到服务器
$bucket = Config::AUDIO_NAME;
$auth = new Auth(Config::AK, Config::SK);
$file=$save_audio."/".$audio_name;
//转码时使用的队列名称
$pipeline = Config::Peline;
$savekey = Qiniu\base64_urlSafeEncode($bucket.":".$qiniu_audio_name);
$fops='avthumb/mp3/ab/128k/ar/44100/acodec/libmp3lame|saveas/'.$savekey;
$policy = array(
'persistentOps' => $fops,
'persistentPipeline' => $pipeline
);
$uptoken = $auth->uploadToken($bucket, null, 3600, $policy);
$uploadMgr = new UploadManager();
list($ret, $err) = $uploadMgr->putFile($uptoken, $audio_name, $file);
$bucketMgr = new BucketManager($auth);
if($ret['key']){
$err = $bucketMgr->delete($bucket,$ret['key']);//删除amr文件
unlink($save_audio."/".$audio_name);//删除服务器上的amr文件
$this->ajaxreturn(array("type"=>"success","audio_url"=>Config::AUDIO_DOMAIN.$qiniu_audio_name));die();//返回七牛转码完成的MP3文件
}
$this->ajaxreturn(array("type"=>"error"));
}
}
/*获取远程资源*/
function getFilepapers($url,$save_dir='',$filename='',$type=0){
if(trim($url)==''){
return false;
}
if(trim($save_dir)==''){
$save_dir='./';
}
if(0!==strrpos($save_dir,'/')){
$save_dir.='/';
}
//创建保存目录
if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
return false;
}
//删除原来的文件
unlink($save_dir . "/".$filename);
//获取远程文件所采用的方法
if($type){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$content=curl_exec($ch);
curl_close($ch);
}else{
ob_start();
readfile($url);
$content=ob_get_contents();
ob_end_clean();
}
$size=strlen($content);
//文件大小
$fp2=@fopen($save_dir.$filename,'a');
fwrite($fp2,$content);
fclose($fp2);
unset($content,$url);
return array('file_name'=>$filename,'save_path'=>$save_dir.$filename);
}
微信语音下载到服务器 上传到七牛转换为mp3
最新推荐文章于 2022-12-01 11:34:23 发布