下面是所做的工作 获取WAV文件=>确定
The following are done work Get WAV file => OK
private function renderWav(src, convertToMp3 = false) {
WaveFile.writeBytesToWavFile(myWavFile, myWavData, 44100, 2, 16)
}
转换为MP3 =>确定
private function makeIntoMp3(wav) {
mp3Encoder = new ShineMP3Encoder(wav);
mp3Encoder.start();
}
保存MP3文件,客户端=>确定
private function onWavClick(e:MouseEvent) {
new FileReference().save(mp3Encoder.mp3Data, "MyAudio.mp3");
}
以上,我可以在客户端,但是,我的问题一个MP3文件保存到服务器端(PHP)
Above, I can get a MP3 file in client side but on my problem that save to Server side(PHP)
保存到服务器端=>失败
public function makeMP3File() {
var urlVariables:URLVariables = new URLVariables;
urlVariables.mp3Data = mp3Encoder.mp3Data;
var req:URLRequest = new URLRequest('upload.php');
req.data = urlVariables;
req.method = URLRequestMethod.POST;
var loader:URLLoader = new URLLoader();
loader.load(req);
}
我的PHP code
function strean2audio($audioStream, $filename)
{
$file = fopen($filename . '.mp3', "wb");
fwrite($file, $audioStream);
fclose($file);
}
我是个菜鸟动作,不知道是哪个部分的错误, 感谢您的帮助!的
I was a ActionScript rookie, don't know which part error, thanks for your help!
我找到解决我的问题(仅供参考)的方式
I find the way to solve my problem ( For your reference )
// FLASH化妆MP3文件到服务器
// FLASH make MP3 file to server
public function makeMP3File() {
var sba:ByteArray = mp3Encoder.mp3Data; **//to ByteArray**
var req:URLRequest = new URLRequest('upload.php');
req.contentType = 'application/octet-stream';
req.method = URLRequestMethod.POST;
req.data = sba;
var loader:URLLoader = new URLLoader(req);
}
// PHP服务器端
// PHP server side
function strean2audio($name, $spec, $userId=0) {
$audio_content = file_get_contents("php://input"); **//get RAW POST**
$file = fopen($audio_file_name . '.mp3', "wb");
fwrite($file, $audio_content);
fclose($file);
}
结论
recorder.MP3 - >的ByteArray - >的URLRequest - >的URLLoader - > PHP - >的ByteArray - > MP3
refrence链接:录音机+服务器上传
refrence link : Voice Recorder + Server Upload