如何使用视频js和精细上传器保存视频和音频

时间:2016-07-13 19:00:07

标签: javascript html5 video video.js fine-uploader

我正在尝试使用以下代码上传视频(音频+视频)。在本地我能够录制和观看视频,但不会上传到服务器。以下是我的代码。

// initialize Fine Uploader
var uploader = new qq.FineUploaderBasic({
    debug: true,
    autoUpload:true,
    request: {
        endpoint: 'https://192.168.0.104/rrtc/save.php'
    },
    validation: {
        allowedExtensions: ['webm']
    }
});
// setup videojs-record
var player = videojs('myAudio',
    {
        controls: true,
        width: 600,
        height: 300,
        plugins: {
            wavesurfer: {
                src: 'live',
                waveColor: 'black',
                progressColor: '#2E732D',
                cursorWidth: 1,
                msDisplayMax: 20,
                hideScrollbar: true
            },
            record: {
                audio: true,
                video: true,
                maxLength: 5,
                debug: true
            }
        }
    });

// player error handling
player.on('deviceError', function()
{
    console.warn('device error:', player.deviceErrorCode);
});
player.on('error', function(error)
{
    console.log('error:', error);
});

// data is available
player.on('finishRecord', function()
{
    // the blob object contains the audio data
    var audioFile = player.recordedData;

    console.log('finished recording: ', audioFile);

    // upload data to server
    var filesList = [audioFile];
    console.log("F Lengh :"+filesList.length);
    uploader.addFiles(filesList);
});

如果我将记录插件(音频和视频)中的任何1个选项更改为false,那么我可以将文件上传到服务器。但是,如果我尝试两个真正的选项,即视频:true,音频:true然后它没有上传。 控制台的屏幕截图添加到帖子。会出现什么问题?

Chrome console output

编辑1:

- 请将this link作为我正在使用的原始来源。

- 视频标记<video id="myAudio" class="video-js vjs-default-skin"></video>

1 个答案:

答案 0 :(得分:0)

根据您的控制台输出,您将数组传递给addFiles,其中包含一个本身包含video属性的对象,该属性为Blob。几件事:

  1. 如果您只向addFiles添加一个文件,则无需传递数组。
  2. 根据您的控制台输出,您没有传递Blob。相反,您传递的对象包含Blob作为其属性之一。因此,您应该将audioFile.audio(我假设)或videoFile.video传递给addFiles