
Security News
npm Adopts OIDC for Trusted Publishing in CI/CD Workflows
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
pcm-player
Advanced tools
A minimalist javascript audio player for PCM streaming data for the browsers.
浏览器端简单的PCM数据流播放器
var player = new PCMPlayer(options);
Available options are:
可配置项如下:
Name | Parameter | Default | Type | Remark |
---|---|---|---|---|
inputCodec | Int8 / Int16 / Int32 / Float32 | Int16 | string | 编码格式 |
channels | 1 | number | 声道数 | |
sampleRate | 8000 | number | 采样率 | |
flushTime | 1000 | number | flushing interval of PCM data to be played in milisecond(PCM数据缓冲多久进行播放) | |
fftSize | 2048 | number | a power of 2 between 2^5 and 2^15 |
install by CDN or npm
CDN
<script src="https://unpkg.com/pcm-player"></script>
ES6
npm i pcm-player
// in your js/ts file
import PCMPlayer from 'pcm-player'
var player = new PCMPlayer({
inputCodec: 'Int16',
channels: 2,
sampleRate: 8000,
flushTime: 2000
});
// Now feed PCM data into player getting from websocket or ajax whatever the transport you are using.Accept ArrayBuffer or TypedArray
// 接收PCM格式的原始数据,ArrayBuffer 类型或者 TypedArray 类型
player.feed(pcm_data);
Name | Parameter | Remark |
---|---|---|
feed | raw PCM data | Usually get from ajax or websocket |
volume | decimal value 0 to +∞ () | For controlling volume of the player, default is 1 |
destroy | - | Destroy the player instance and release the resources |
pause | - | pause playing |
continue | - | resume playing |
Name | Remark |
---|---|
audioCtx | current AudioContext |
gainNode | AudioContext gainNode |
analyserNode | AudioContext AnalyserNode |
Name | Parameter | Remark |
---|---|---|
onstatechange | (node, event, type) | node: AudioContext, event: Event, type: AudioContextState |
onended | (node, event) | node: AudioBufferSourceNode, event: Event |
An example with simple node server script is available that include some raw pcm data that will be served by websocket and at the client end, it will be played through PCM player.
open server directory (进入到server目录)
cd example/server
run a local server (把本地的服务端跑起来,会起一个websocket服务,用来发送数据)
node server.js
then, just open example/index.html page.(直接双击example里面的index.html)
Safari only allow to play large than 22050Hz voice.
Safari浏览器播放的音频数据,采样率不能低于22050Hz。
更多webaudio经验可以在此查看:websocket pcm webaudio 经验
Inspired by pcm-player
FAQs
A minimalist javascript audio player for PCM streaming audio
The npm package pcm-player receives a total of 1,022 weekly downloads. As such, pcm-player popularity was classified as popular.
We found that pcm-player demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.