Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pcm-player

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pcm-player

A minimalist javascript audio player for PCM streaming audio

  • 0.0.18
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.5K
increased by14.61%
Maintainers
1
Weekly downloads
 
Created
Source

PCMPlayer

A minimalist javascript audio player for PCM streaming data for the browsers.
浏览器端简单的PCM数据流播放器

How to use?(使用说明)

var player = new PCMPlayer(options);

Available options are:
可配置项如下:

NameParameterDefaultTypeRemark
inputCodecInt8 / Int16 / Int32 / Float32Int16string编码格式
channels1number声道数
sampleRate8000number采样率
flushTime1000numberflushing interval of PCM data to be played in milisecond(PCM数据缓冲多久进行播放)
fftSize2048numbera power of 2 between 2^5 and 2^15

Complete example(使用示例):

Install(安装)

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'

use(使用)

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);

Available Methods(方法)

NameParameterRemark
feedraw PCM dataUsually get from ajax or websocket
volumedecimal 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

Available Attributes(属性)

NameRemark
audioCtxcurrent AudioContext
gainNodeAudioContext gainNode
analyserNodeAudioContext AnalyserNode

Available Event(事件)

NameParameterRemark
onstatechange(node, event, type)node: AudioContext, event: Event, type: AudioContextState
onended(node, event)node: AudioBufferSourceNode, event: Event

How to run example?(体验example里的文件)

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.

  1. open server directory (进入到server目录)

    cd example/server
    
  2. run a local server (把本地的服务端跑起来,会起一个websocket服务,用来发送数据)

    node server.js
    
  3. then, just open example/index.html page.(直接双击example里面的index.html)

Thoubleshooting(常见问题)

Safari only allow to play large than 22050Hz voice.
Safari浏览器播放的音频数据,采样率不能低于22050Hz。

更多webaudio经验可以在此查看:websocket pcm webaudio 经验

online demo(在线demo)

pcm-player demo

Thanks to(鸣谢)

Inspired by pcm-player

Keywords

FAQs

Package last updated on 24 May 2024

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc