首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用react-native-video获取视频流?

如何使用react-native-video获取视频流?
EN

Stack Overflow用户
提问于 2021-08-05 13:22:04
回答 1查看 126关注 0票数 0

我在nodejs上有后端,代码如下,其中我使用基于范围的视频流:

代码语言:javascript
复制
router.get('/video/:id', authenticateToken, (req, res) => {
  const range = req.headers.range;
  if (!range) {
    res.status(400).send("Requires Range header");
  }

  // get video stats (about 61MB)
  const videoPath = `uploads/${req.params.id}`;
  const videoSize = fs.statSync(videoPath).size;

  // Parse Range
  // Example: "bytes=32324-"
  const CHUNK_SIZE = 10 ** 6; // 1MB
  const start = Number(range.replace(/\D/g, ""));
  const end = Math.min(start + CHUNK_SIZE, videoSize - 1);

  // Create headers
  const contentLength = end - start + 1;
  const headers = {
    "Content-Range": `bytes ${start}-${end}/${videoSize}`,
    "Accept-Ranges": "bytes",
    "Content-Length": contentLength,
    "Content-Type": "video/mp4",
  };

  // HTTP Status 206 for Partial Content
  res.writeHead(206, headers);

  // create video read stream for this particular chunk
  const videoStream = fs.createReadStream(videoPath, { start, end });

  // Stream the video chunk to the client
  videoStream.pipe(res);
});

但是react-native-video不发送任何范围标头,当我试图从服务器获取mp4视频时,我得到了错误:

代码语言:javascript
复制
{"error": {"extra": -2147483648, "what": 1}}

使用react-native-video包:

代码语言:javascript
复制
<Video
  source={{
    uri: `http://*server ip*/video/${exercise.content}`,
    type: 'mp4',
  }}
/>

我应该用什么来代替呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-06 03:40:24

快速静态解决我的问题。感谢@SilvanBregy

代码语言:javascript
复制
app.use('/video', express.static('uploads'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68667421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档