Javascript 无法在客户端上抛出音频文件(Node.js+;heroku)
我在我的web应用程序上有一个小问题 server.jsJavascript 无法在客户端上抛出音频文件(Node.js+;heroku),javascript,html,node.js,heroku,socket.io,Javascript,Html,Node.js,Heroku,Socket.io,我在我的web应用程序上有一个小问题 server.js var express = require("express"); var app = express(); var http = require("http").Server(app); var io = require("socket.io")(http); var Log = require('log'), log = new Log('debug'); // set port var port = process.env.P
var express = require("express");
var app = express();
var http = require("http").Server(app);
var io = require("socket.io")(http);
var Log = require('log'),
log = new Log('debug');
// set port
var port = process.env.PORT || 3000
//allow all the static files
app.use(express.static(__dirname + "/public"));
//routes
app.get("/", function(req,res){
res.render("index.html");
//res.sendHeader(200,{"Content-type": "video/mp4"});
})
io.on('connection',function(socket){
//this is how to deliver the data
socket.on('stream',function(image){
socket.broadcast.emit('stream',image);
})
})
http.listen(port, function(){
console.log("App is runnin")
})
Teacherlive.html
<!DOCTYPE html>
<html lang ="en">
<head>
<meta charset="UTF-8">
<title>Teacher Live</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js">
</script>
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
</head>
<body>
<video src="" id="video" style="width:680px;height:320px;" autoplay="true">
</video>
<canvas style = "display:none;" id="preview"></canvas>
<div id="logger"></div>
<script type="text/javascript">
var canvas = document.getElementById("preview");
var context = canvas.getContext("2d");
canvas.width = 800;
canvas.height = 600;
context.width = canvas.width;
context.height = canvas.height;
var video = document.getElementById("video");
var socket = io();
function logger(msg){
$("#logger").text(msg);
}
function loadCam(stream){
video.src = window.URL.createObjectURL(stream);
logger("Camera successfully loads");
}
function loadFail(){
logger("Camera can't be loaded");
}
function viewVideo(video,context){
context.drawImage(video,0,0,context.width,context.height);
socket.emit('stream',canvas.toDataURL('image/webp'));
}
$(function(){
navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msgGetUserMedia);
if(navigator.getUserMedia){
navigator.getUserMedia(
{
video : true,
audio : true
},
loadCam,loadFail);
}
setInterval(function(){
viewVideo(video,context);
},70);
});
</script>
</body>
</html>
<!DOCTYPE html>
<html lang ="en">
<head>
<meta charset="UTF-8">
<title>Student Feed</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js">
</script>
<!--<script src="/socket.io/socket.io.js"></script>-->
</head>
<body>
<img id="play">
<div id = "logger"></div>
<script>
var socket = io();
socket.on('stream',function(image){
var img = document.getElementById("play");
img.src = image;
var log = document.getElementById("logger");
log.text(image);
});
</script>
</body>
</html>
教师生活
var canvas=document.getElementById(“预览”);
var context=canvas.getContext(“2d”);
画布宽度=800;
帆布高度=600;
context.width=canvas.width;
context.height=canvas.height;
var video=document.getElementById(“视频”);
var socket=io();
函数记录器(msg){
$(“#记录器”).text(msg);
}
函数loadCam(流){
video.src=window.URL.createObjectURL(流);
记录器(“摄像机成功加载”);
}
函数loadFail(){
记录器(“摄像机无法加载”);
}
功能viewVideo(视频、上下文){
drawImage(视频,0,0,context.width,context.height);
emit('stream',canvas.toDataURL('image/webp'));
}
$(函数(){
navigator.getUserMedia=(navigator.getUserMedia | | navigator.webkitGetUserMedia | | | navigator.mozGetUserMedia | | navigator.msgGetUserMedia);
if(navigator.getUserMedia){
navigator.getUserMedia(
{
视频:没错,
音频:正确
},
loadCam,loadFail);
}
setInterval(函数(){
viewVideo(视频、上下文);
},70);
});
Studentfeed.html
<!DOCTYPE html>
<html lang ="en">
<head>
<meta charset="UTF-8">
<title>Teacher Live</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js">
</script>
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
</head>
<body>
<video src="" id="video" style="width:680px;height:320px;" autoplay="true">
</video>
<canvas style = "display:none;" id="preview"></canvas>
<div id="logger"></div>
<script type="text/javascript">
var canvas = document.getElementById("preview");
var context = canvas.getContext("2d");
canvas.width = 800;
canvas.height = 600;
context.width = canvas.width;
context.height = canvas.height;
var video = document.getElementById("video");
var socket = io();
function logger(msg){
$("#logger").text(msg);
}
function loadCam(stream){
video.src = window.URL.createObjectURL(stream);
logger("Camera successfully loads");
}
function loadFail(){
logger("Camera can't be loaded");
}
function viewVideo(video,context){
context.drawImage(video,0,0,context.width,context.height);
socket.emit('stream',canvas.toDataURL('image/webp'));
}
$(function(){
navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msgGetUserMedia);
if(navigator.getUserMedia){
navigator.getUserMedia(
{
video : true,
audio : true
},
loadCam,loadFail);
}
setInterval(function(){
viewVideo(video,context);
},70);
});
</script>
</body>
</html>
<!DOCTYPE html>
<html lang ="en">
<head>
<meta charset="UTF-8">
<title>Student Feed</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js">
</script>
<!--<script src="/socket.io/socket.io.js"></script>-->
</head>
<body>
<img id="play">
<div id = "logger"></div>
<script>
var socket = io();
socket.on('stream',function(image){
var img = document.getElementById("play");
img.src = image;
var log = document.getElementById("logger");
log.text(image);
});
</script>
</body>
</html>
学生饲料
这是Teacherlive.html。当我打开它时,里面有视频和音频,但问题是。
问题出现在studentfeed.html中,因为teacherlive的音频无法将其发送到studentfeed.html如果没有一行代码,请不要期待任何有用的答案:pI将编辑我的答案,对不起,你是说你的问题:p@JaromandaX对不起,我整整两天没睡觉。哈哈