0

我正在使用 vanilla js 和 express 构建一个简单的应用程序,它搜索一个 torrent 站点并显示结果,当您选择一个时,它会打开一个视频播放器流式传输 torrent,而无需先下载它。Everyrhing 按预期工作,但我无法单击视频的时间线来向前或向后跳过。只有播放/暂停有效。

这是代码

前端:

<div id="video" class="hide">
    <video src="" class="hide" controls></video>
</div>
<script>
    const video = document.querySelector('video');
    video.setAttribute('src', `/api/play/${el.id}`);
</script>

后端:

const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const torrentStream = require('torrent-stream');
const PirateBay = require('thepiratebay');
let magnets = {};
const app = express();

app.get('/api/play/:id', (req, res) => {
    const id = req.params.id;
    const engine = torrentStream(magnets[id]);

    engine.on('ready', function () {
        file = engine.files.find(f => path.extname(f.name).includes('.mp4') || 
        path.extname(f.name).includes('.mkv') || 
        path.extname(f.name).includes('.avi') ||
        path.extname(f.name).includes('.xvid') ||
        path.extname(f.name).includes('.divx'));
        stream = file.createReadStream();
        stream.pipe(res)
    });
});

您还可以查看我正在使用的软件包。那么有人知道某些软件包是否不允许这样做还是我的代码有问题?我还尝试更改 iframe 的视频标签,但它不起作用,浏览器开始下载磁铁链接,而不是流式传输视频。

提前谢谢了!

4

0 回答 0