Как выбрать определенный блок в потоке для игры с Ax ios и nodejs - PullRequest
0 голосов
/ 20 апреля 2020

Итак, я создал сервер express для потоковой передачи аудио на тег <audio> в документе HTML. Звук воспроизводится без проблем, но я не могу выбрать конкретную точку в аудио, если я это сделаю, она остановится играть, если я не загрузил все куски к этой точке.

index. html

const axios = require("axios");
const httpAdapter = require("axios/lib/adapters/http");
const fs = require("fs");
const express = require("express");

const app = express();

const INPUT =
  "https://dcs.megaphone.fm/ADV3183643348.mp3?key=c3dc25ae82cc18218902aa6a0675798a";

app.get("/audio", (req, res) => {
  axios
    .get(INPUT, { responseType: "stream", adapter: httpAdapter })
    .then((Response) => {
      const stream = Response.data;

      res.set("content-type", "audio/mp3");
      res.set("accept-ranges", "bytes");
      res.set("content-length", Response.headers["content-length"]);
      console.log(Response);

      stream.on("data", (chunk) => {
        res.write(chunk);
      });

      stream.on("error", (err) => {
        res.sendStatus(404);
      });

      stream.on("end", () => {
        res.end();
      });
    })
    .catch((Err) => {
      console.log(Err.message);
    });
});

app.listen(4000, () => {
  console.log("Server is running");
});
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Node Streaming prototype</title>
</head>
<body>
    <audio controls src="http://localhost:4000/audio"></audio>
</body>
</html>

Я новичок в Ax ios, поэтому я не знаю, как я могу отправить конкретный кусок и подать его на аудиотэг.

...