逢风过山林 2023-05-11 02:18 采纳率: 0%
浏览 87
已结题

提问:使用koa写了一个视频流播放接口,这个接口在pc端浏览器可以播放,但在安卓手机确无法播放,请问这个问题如何解决?

提问:使用koa写了一个视频流播放接口,这个接口在pc端浏览器可以播放,但在安卓手机确无法播放,请问这个问题如何解决?

以下是服务端的接口代码,这段代码是否有问题?

let KoaRouter = require('@koa/router');
let { resolve } = require('path');
let fs = require('fs');

// 访问视频
router.get('/serverVideo', async (ctx) => {
    let { fileName } = ctx.request.query;
    let realFilePath = resolve(__dirname, `../static/videos/${fileName}`);
    let { range } = ctx.request.headers;
    let fileSize = fs.statSync(realFilePath).size;
    ctx.response.set({
        'Content-Type': 'video/mp4',
        'Accept-Ranges': 'bytes',
    });
    if (range) {
        let reg = /bytes=(\d*?)-(\d*?)/ig.exec(range);
        let start = parseInt(reg[1]);
        let end = parseInt(reg[2]);
        end = end ? end : start + 1 * 1024 * 1024;
        end = end <= fileSize - 1 ? end : fileSize - 1;
        ctx.status = 206;
        ctx.response.set({
            'Content-Range': `bytes ${start}-${end}/${fileSize}`,
            'Content-Length': end - start + 1
        });
        let rs = fs.createReadStream(realFilePath, { start, end });
        ctx.body = rs;
    } else {
        ctx.response.set({
            'Content-Length': fileSize
        });
        let rs = fs.createReadStream(realFilePath, { start: 0, end: fileSize - 1 });
        ctx.body = rs;
    }
});

在pc端谷歌浏览器能播放。

img

在安卓手机浏览器确无法播放。

img

  • 写回答

6条回答 默认 最新

  • little stone_3 2023-05-11 13:08
    关注

    这个问题可能是由于安卓手机对于视频流的格式支持不够完善导致的。有些安卓手机可能无法播放MP4格式的视频流,需要使用其他格式的视频流才能正常播放。

    另外,你的代码中似乎没有设置跨域的相关头部信息,这可能会导致一些安卓手机无法正常访问该接口。你可以尝试添加以下代码来设置跨域头部信息:

    复制代码
    ctx.set('Access-Control-Allow-Origin', '*');
    ctx.set('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With');
    ctx.set('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');

    此外,还需要注意一些安卓手机的视频流播放器可能需要在请求头中添加一些特定的参数,才能正常播放视频流。可以参考一些安卓手机的官方文档或者论坛,查看是否有相关的参数需要设置。

    最后,你可以通过在安卓手机端使用一些第三方的视频播放器来尝试播放视频流,以确定是否是安卓手机自带的视频播放器无法播放该视频流。

    评论

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 创建了问题 5月11日

悬赏问题

  • ¥15 ubuntu进不了系统已尝试修改grub未解决
  • ¥15 ER3100G2,路由器固件
  • ¥15 sqlchat 部署后,访问不了在线网络
  • ¥100 yahoo finance api 2024年更改访问限制後的 java串接方法
  • ¥15 节日彩灯电路设计电路图
  • ¥15 esp32cam串口图传
  • ¥15 C# 用partial定义部分类无法快速预览代码
  • ¥15 fastreport 代码无法设置最后一页横线不显示
  • ¥15 stm32u535芯片usb hid custom类接收数据有问题
  • ¥15 ue5.3 pico打包失败 求帮助