我正在尝试使用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/

10-09 17:31