我正在尝试使用Laravel项目中的RecordRTC(https://github.com/muaz-khan/RecordRTC)技术中的示例PHP-and-FFmpeg。
有一个js函数:
function xhr(url, data, callback) {
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200) {
callback(request.responseText);
}
};
request.open('POST', url);
request.send(data);
}
调用以下函数:
function PostBlob(audioBlob, videoBlob, fileName) {
var formData = new FormData();
formData.append('filename', fileName);
formData.append('audio-blob', audioBlob);
formData.append('video-blob', videoBlob);
xhr('/upload/store', formData, function(ffmpeg_output) {
document.querySelector('h1').innerHTML = ffmpeg_output.replace(/\\n/g, '<br />');
preview.src = 'uploads/' + fileName + '-merged.webm';
preview.play();
preview.muted = false;
});
}
数据发送到save.php以便将视频下载到服务器。
我使用“存储”方式代替文件,将其添加到web.php中:
Route::post('/upload/store', 'UploadController@store')->name('store');
在控制器中,我tenprorary进行了以下操作:
public function store(Request $request)
{
dd($request);
}
但是在控制台中,firefox写道:
无效的URI。媒体资源加载失败
请告诉我我在哪里弄错了?
最佳答案
问题出在此行的PostBlob
函数中,该函数使用了错误的URI:
xhr('save.php', formData, function(ffmpeg_output) {
将
save.php
更改为/upload/store
。关于javascript - Laravel中的RecordRTC,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45078226/