- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个小型 express 服务器,可以下载或流式传输 mp3 文件,如下所示:
const express = require('express');
const fs = require('fs');
const app = express();
app.use('/mp3', express.static(__dirname + '/mp3'));
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
app.get('/stream', (req, res) => {
const file = __dirname + '/mp3/trololol.mp3';
fs.exists(file, (exists) => {
if (exists) {
const rstream = fs.createReadStream(file);
rstream.pipe(res);
} else {
res.send('Error - 404');
res.end();
}
});
});
app.get('/download', (req, res) => {
const file = __dirname + '/mp3/trololol.mp3';
res.download(file);
});
app.listen(3000, () => console.log('Example app listening on port 3000!'));
html:
<audio controls="controls">
<source src="http://localhost:3000/stream" type="audio/ogg" />
<source src="http://localhost:3000/stream" type="audio/mpeg" />
Your browser does not support the audio element.
</audio>
这可行,但是,音频流不会倒带或快进。我是否必须更改请求 header 中的某些内容才能允许这种情况发生?也许我需要设置范围并添加开始和结束时间或其他内容。任何提示将不胜感激。谢谢。
最佳答案
找到答案 here .
const express = require('express'),
bodyParser = require('body-parser'),
path = require('path'),
fs = require('fs'),
app = express();
// app.use('/mp3', express.static(__dirname + '/mp3'));
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
app.get('/stream', (req, res) => {
const file = __dirname + '/mp3/trololol.mp3';
const stat = fs.statSync(file);
const total = stat.size;
if (req.headers.range) {
}
fs.exists(file, (exists) => {
if (exists) {
const range = req.headers.range;
const parts = range.replace(/bytes=/, '').split('-');
const partialStart = parts[0];
const partialEnd = parts[1];
const start = parseInt(partialStart, 10);
const end = partialEnd ? parseInt(partialEnd, 10) : total - 1;
const chunksize = (end - start) + 1;
const rstream = fs.createReadStream(file, {start: start, end: end});
res.writeHead(206, {
'Content-Range': 'bytes ' + start + '-' + end + '/' + total,
'Accept-Ranges': 'bytes', 'Content-Length': chunksize,
'Content-Type': 'audio/mpeg'
});
rstream.pipe(res);
} else {
res.send('Error - 404');
res.end();
// res.writeHead(200, { 'Content-Length': total, 'Content-Type': 'audio/mpeg' });
// fs.createReadStream(path).pipe(res);
}
});
});
app.get('/download', (req, res) => {
const file = __dirname + '/mp3/trololol.mp3';
res.download(file);
});
app.listen(3000, () => console.log('Example app listening on port 3000!'));
关于javascript - 具有快进/快退功能的流式 mp3 文件 express 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49524238/
我正在使用 just_audio而且效果很好。 但似乎找不到快进或倒带的方法。 更新:原来 just_audio 是 audio_service 的一部分包,使用 audio_service 为我解决
我让它快进了,但我想在快进时听到音乐。我怎样才能做到这一点?这是我的代码: if node.name == "left" { var time = musicPlayer.cu
可以假设快进意味着所有提交都在目标分支上重播并且 HEAD 设置为该分支上的最后一次提交吗? 最佳答案 当您尝试将一个提交与一个可以通过跟踪第一个提交的历史记录到达的提交 merge 时,Git 会通
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 8年前关闭。 Improve this questi
我有一个音频播放器,可以播放从 Core Date 检索到的音频。播放和暂停工作正常。我正在尝试实现“向前跳转 30 秒”按钮,并寻求有关我将如何实现的任何指示。 “播放/暂停”按钮的代码 @IBAc
Git merge 允许我们执行快进和非快进分支 merge 。什么时候使用快进 merge 以及什么时候不使用快进 merge 有什么想法吗? 最佳答案 --no-ff 选项在您想要清楚地了解您的功
我有这种情况:在一些 testBranch 上工作了一段时间,我想与 master 同步所以我做了git checkout testBranch 和git merge master/testBranc
所以我正在做一个项目,我有很长的 for 循环,当接近循环结束时我通常会遇到问题,但是通过进入循环数百万次手动到达那里几乎是不可能的。我知道我可以只更改计数器变量,但在这种情况下它不起作用,因为每次迭
我正在我的 Mp3 播放器中制作快进按钮。我已经为此编写了代码,但是有问题如何实现计时器向前跳 5%?我的意思是,当我按下按钮时,计时器应该比总长歌曲向前跳 5%。这是我的 fastForward 方
MediaPlayer 的 pause() 方法使 Media 稍微“寻找”一下。确实很烦人,但是没找到问题出在哪里。 private void playPauseClicked()
我有一个包含两个分支 master 和 entidades 的 GIT 存储库。我需要将 entidades 分支中的一些内容 merge 到 master 分支。看一下图像,标记为 EntityBu
假设有一个功能分支'my-feature'。在我开发该功能时,有人将它从“我的功能” merge 到“主控”中。因为这是一个快进 merge ,所以没有提交。我所做的一些更改还没有准备好用于 mast
换句话说,快进 merge 是否能保证生成与要 merge 的源分支的 HEAD 相同的 GIT SHA? 我在终端中测试了此行为,它适用于我的测试场景: $ git rev-parse some-b
换句话说,快进 merge 是否能保证生成与要 merge 的源分支的 HEAD 相同的 GIT SHA? 我在终端中测试了此行为,它适用于我的测试场景: $ git rev-parse some-b
这个关于 git 的陈述是真的吗,merge(其中快进是可能的)基本上与使 git reset --hard 到 HEAD 相同要 merge 到的分支? (当merge不是fast-forward时
最近,我创建了newbranch,并创建了一个到Master分支的 merge 请求。在 TeamLead 接受 merge 请求到 Master 分支之前,另一个团队成员向同一个分支(新分支)提交了
我是一名优秀的程序员,十分优秀!