首页 > 解决方案 > Electron JS 从流中设置视频源

问题描述

我正在尝试使用 Electron JS 创建一个桌面应用程序。该应用程序应该使用特定标头请求视频(mp4)文件,然后将视频源设置为我得到的响应。

我的 render.js 文件:

var request = require("request");

const video = document.querySelector("video");

const options = {
    url: 'http://somesite.site/resource.mp4',
    headers: {
      'Referer': 'https://somereferrer.site/'
    }
};

request(options).pipe(video.srcObject);

我的 index.html 文件:

<script defer src="render.js"></script>
<video controls></video>

我的 main.js 文件:

const { app, BrowserWindow } = require('electron')

app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors');

function createWindow () {
    const win = new BrowserWindow({
        title: "Anime Viewer",
        width: 800,
        height: 600,
        webPreferences: {
            nodeIntegration: true,
            webSecurity: false
        }
    })
    win.removeMenu();
    win.webContents.openDevTools();
    win.loadFile('index.html')
}

app.whenReady().then(createWindow)

但是,我在控制台上收到以下错误,并且视频元素保持不变:

Uncaught TypeError: Cannot read property 'on' of null
    at Request.Stream.pipe (internal/streams/legacy.js:32:8)
    at Request.pipe

Uncaught TypeError: Cannot read property 'headers' of null
    at Request.pipeDest

Uncaught Error: Parse Error: User callback error
    at Socket.socketOnData

有谁知道我做错了什么?

标签: javascriptnode.jselectron

解决方案


推荐阅读