I'm streaming recorded PCM audio from a browser with web audio api.
I'm streaming it with binaryJS (websocket connection) to a nodejs server and I'm trying to play that stream on the server using the speaker npm module.
This is my client. The audio buffers are at first non-interleaved IEEE 32-bit linear PCM with a nominal range between -1 and +1. I take one of the two PCM channels to start off and stream it below.
var client = …Run Code Online (Sandbox Code Playgroud) 我想将流式录制的音频从浏览器直播到服务器并进行播放.服务器最终将成为播放这些音频流的嵌入式设备.
到目前为止,我已成功录制音频并将其编码为WAVE文件,并使用网络音频API在浏览器上播放,并按照本教程进行操作.
现在我有一个.WAV编码的blob流.我试图找到使用web套接字连接将这些流传输到nodejs后端并使用npm模块播放它们的方法.但我没有运气.
有谁知道我应该遵循的任何资源或模块?也许我应该尝试不同的方法?由于在浏览器上录制,因此需要在服务器上相对快速地播放音频.
我想从我的麦克风录制音频。我的操作系统是 ubuntu。我尝试了以下操作并出现错误
$ ffmpeg -f alsa -ac 2 -i hw:1,0 -itsoffset 00:00:00.5 -f video4linux2 -s 320x240 -r 25 /dev/video0 out.mpg
ffmpeg version 0.8.8-4:0.8.8-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav
developers
built on Oct 22 2013 12:31:55 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release.
Please use avconv instead.
ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library
libasound_module_conf_pulse.so
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM hw:1,0
[alsa @ 0xbda7a0] …Run Code Online (Sandbox Code Playgroud) 我试图在点击文档时触发点击事件,除非点击我拥有某个类名的div.
我尝试过以下但事件不会发生.
$(document).not(".class").click(function(){
//code
});
$(document).not("div.class").click(function(){
//code
});
$("body").not(".class").click(function(){
//code
});
Run Code Online (Sandbox Code Playgroud)
谁知道我做错了什么?
谢谢
*更新
我尝试了以下内容
$(document).on("click", ":not(.class)", function(){
$('*:not(.class)',document).click(function(){
$(document).find(':not(.class)').click(function(){
$("body:not(.thisclass)").doAction();
Run Code Online (Sandbox Code Playgroud)
但它并没有对我试图排除的.class的div赋予任何区别.任何单击文档时都会触发该事件.
这是我的HTML的div
<div class="pictureBox" id="pictureBox2"> <!--content--></div>
Run Code Online (Sandbox Code Playgroud) 我在 Float32Arrays 中获取 PCM 音频样本。但我的应用程序只能支持 16 位长度的数据,所以我需要转换。
我不知道如何做到这一点,因为 Float16Array 没有类型化数组,而且我从未处理过位级别的数据。有人可以解释或展示如何做到这一点吗?
根据我对嵌入式 SIM (eSIM) 技术的研究,它是消费者拥有的 SIM 卡,能够下载和在 3rd 方订阅之间切换。我还读到,预计大多数 eSIM 将运行 Java 运行时并支持 Java 小程序 [1]。
是否可以将 Java 小程序编程到 eSIM 上,类似于对 Java 智能卡进行编程?
[1]“EUICC45”,https: //www.gsma.com/newsroom/wp-content/uploads/SGP.21_v2.1.pdf
我的地图(Mapbox)占据了网站的整个背景,因此中心位于网站的中间.但是用户的地图焦点在右侧,因为我的内容与左侧的地图重叠.当传单抓取位置时,它来自地图的中心,但是如果我可以将其设置为从站点的右三分之一的中心抓取位置将更方便,这样用户将不会居中在与网站左半部分内容接壤的目标上的地图.
有没有办法可以为地图设置传单API的中心或位置焦点?
这是我目前如何设置,
mapOptions: {
maxZoom: 18,
zoomControl: false,
worldCopyJump: true
},
createMap: function() {
Map.map = L.map('map', Map.mapOptions);
Map.layer = L.mapbox.tileLayer(Map.mapID, {
unloadInvisibleTiles: true,
}).addTo(Map.map);
Map.map.locate({setView: true});
Map.map.addControl(L.mapbox.geocoderControl(Map.mapID));
new L.Control.Zoom({ position: 'topright' }).addTo(Map.map);
},
Run Code Online (Sandbox Code Playgroud) 我希望能够在Django的内置用户模块中使用创建用户的日期.
有没有办法访问它或我必须添加它?
我正在尝试从字符串中获取数字,然后删除该数字.例如,我将有一个像'42Xmessage'这样的字符串,其中42是我想要的数字(它可以是任意数字的数字),它由X终止.
如何获取变量中的数字,然后在另一个变量中获取消息部分(没有数字和X)?
我目前有一个nginx服务器设置与rtmp插件的视频流.我正在使用ffmpeg进行流式传输,然后使用adobe flash player在Web浏览器上显示流.
我有成功的视频流,但我无法获得音频.
这是我用来启动流的ffmpeg命令
ffmpeg -f video4linux2 -s 320x240 -r 16 -i /dev/video0 -f alsa -i hw:0 -an -f flv rtmp://123.456.789.51:31002/rover/mystream
Run Code Online (Sandbox Code Playgroud)
然后流转到运行在此conf文件上的nginx
worker_processes 1;
error_log logs/user/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
listen 31002;
application rover {
live on;
#meta copy;
#interleave on;
allow publish all;
allow play all;
hls on;
#record keyframes;
#record_path /tmp;
#record_max_size 128K;
#record_interval 30s;
#record_suffix .this.is.flv;
#on_publish http://localhost:8080/publish;
#on_play http://localhost:8080/play;
#on_record_done http://localhost:8080/record_done;
}
}
}
http {
server {
listen …Run Code Online (Sandbox Code Playgroud) 这是我的代码
var map = L.mapbox.map('map', 'examples.map-20v6611k').setView([37.9, -77],4);
var marker = L.marker(new L.LatLng(37.9, -77), {
icon: L.mapbox.marker.icon({'marker-color': 'CC0033'}),
draggable: true
});
marker.bindPopup('This marker is draggable! Move it around.');
marker.addTo(map);
//my code
marker.on('mousedown', function(e){
location = marker.getLatLng();
document.getElementById('locationBox').innerHTML = "poop";
});
Run Code Online (Sandbox Code Playgroud)
地图上的标记可以拖动到任何地方.我正在尝试在标记被拖动到某处之后获取标记的经度和纬度,这就是为什么我使用marker.on('mousedown',function(e){事件处理程序.我有两个问题.我我试图嵌套另一个事件处理程序
marker.on('mouseup', function(e){
Run Code Online (Sandbox Code Playgroud)
在内部,所以一旦标记被拖走就抓住了位置但是'mouseup'方法不起作用.
第二个问题
location = marker.getLatLng();
Run Code Online (Sandbox Code Playgroud)
不存储lat/lon的位置,而只是打开我尚未配置的新URL.
如何在拖动然后删除标记之后使用Javascript或Jquery来获取标记的位置,以及如何将lat/lon适当地存储在变量中?
谢谢!
audio ×5
stream ×3
ffmpeg ×2
javascript ×2
node.js ×2
16-bit ×1
attributes ×1
browser ×1
centering ×1
django ×1
events ×1
flash ×1
javacard ×1
jquery ×1
leaflet ×1
linux ×1
location ×1
lte ×1
mapbox ×1
maps ×1
marker ×1
methods ×1
mobile ×1
module ×1
nginx ×1
pcm ×1
python ×1
regex ×1
sim-card ×1
smartcard ×1
string ×1
ubuntu ×1