All Projects → qiniu → audio

qiniu / audio

Licence: Apache-2.0 license
Audio support for Go language.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to audio

Enmime
MIME mail encoding and decoding package for Go
Stars: ✭ 246 (+296.77%)
Mutual labels:  encoder, decoder
urlpack
Pure JavaScript toolkit for data URLs (MessagePack, Base58 and Base62)
Stars: ✭ 51 (-17.74%)
Mutual labels:  encoder, decoder
BatchEncoder
BatchEncoder is an audio files conversion software.
Stars: ✭ 145 (+133.87%)
Mutual labels:  encoder, decoder
Xmlschema
XML Schema validator and data conversion library for Python
Stars: ✭ 201 (+224.19%)
Mutual labels:  encoder, decoder
png
🖼A full-featured PNG decoder and encoder.
Stars: ✭ 64 (+3.23%)
Mutual labels:  encoder, decoder
Codable Diy Kit
A template for creating your own Swift Codable encoders and decoders
Stars: ✭ 207 (+233.87%)
Mutual labels:  encoder, decoder
sms
A Go library for encoding and decoding SMSs
Stars: ✭ 37 (-40.32%)
Mutual labels:  encoder, decoder
Ffmediatoolkit
FFMediaToolkit is a cross-platform video decoder/encoder library for .NET that uses FFmpeg native libraries. It supports video frames extraction, reading stream metadata and creating videos from bitmaps in any format supported by FFmpeg.
Stars: ✭ 156 (+151.61%)
Mutual labels:  encoder, decoder
png pong
A pure Rust PNG image decoder and encoder based on lodepng.
Stars: ✭ 21 (-66.13%)
Mutual labels:  encoder, decoder
bytecodec
A tiny Rust framework for implementing encoders/decoders of byte-oriented protocols
Stars: ✭ 21 (-66.13%)
Mutual labels:  encoder, decoder
otfed
An OpenType font format encoder & decoder written in OCaml
Stars: ✭ 15 (-75.81%)
Mutual labels:  encoder, decoder
online-ethereum-abi-encoder-decoder
A quick online tool to abi-encode and abi-decode constructor arguments used in ethereum's solidity. https://adibas03.github.io/online-ethereum-abi-encoder-decoder/
Stars: ✭ 37 (-40.32%)
Mutual labels:  encoder, decoder
Ks265codec
ks cloud hevc(h265) encoder decoder test and description
Stars: ✭ 192 (+209.68%)
Mutual labels:  encoder, decoder
Codablecsv
Read and write CSV files row-by-row or through Swift's Codable interface.
Stars: ✭ 214 (+245.16%)
Mutual labels:  encoder, decoder
Gojay
fastest JSON encoder/decoder with powerful stream API for Golang
Stars: ✭ 2,009 (+3140.32%)
Mutual labels:  encoder, decoder
rmarsh
Ruby Marshal 4.8 encoder/decoder in Golang. Why? Who knows.
Stars: ✭ 15 (-75.81%)
Mutual labels:  encoder, decoder
Base62
Base62 encoder and decoder for arbitrary data
Stars: ✭ 141 (+127.42%)
Mutual labels:  encoder, decoder
Salsanext
Uncertainty-aware Semantic Segmentation of LiDAR Point Clouds for Autonomous Driving
Stars: ✭ 153 (+146.77%)
Mutual labels:  encoder, decoder
logfmt
Package logfmt marshals and unmarshals logfmt messages.
Stars: ✭ 156 (+151.61%)
Mutual labels:  encoder, decoder
keystore-go
A Go (golang) implementation of Java KeyStore encoder/decoder
Stars: ✭ 119 (+91.94%)
Mutual labels:  encoder, decoder

Audio support for Go language

LICENSE Build Status Go Report Card GitHub release Coverage Status GoDoc

Qiniu Logo

The package github.com/qiniu/audio is an extensible audio library with simple API for multi platforms in the Go programming language.

Platforms

  • Windows
  • macOS
  • Linux
  • FreeBSD
  • Android
  • iOS
  • Web browsers (Chrome, Firefox, Safari and Edge)
    • GopherJS
    • WebAssembly (Experimental)

Features

  • Pluggable audio decoders. And now it supports the following formats:
    • wav/pcm: import _ "github.com/qiniu/audio/wav"
    • wav/adpcm: import _ "github.com/qiniu/audio/wav/adpcm"
    • mp3: import _ "github.com/qiniu/audio/mp3"
  • Audio encoders (TODO).
  • Convert decoded audio stream.

Example

import (
	"io"
	"os"

	"github.com/hajimehoshi/oto"

	"github.com/qiniu/audio"
	_ "github.com/qiniu/audio/mp3"
	_ "github.com/qiniu/audio/wav"
	_ "github.com/qiniu/audio/wav/adpcm"
)

func playAudio(file string) error {
	f, err := os.Open(file)
	if err != nil {
		return err
	}
	defer f.Close()

	d, _, err := audio.Decode(f)
	if err != nil {
		return err
	}

	c, err := oto.NewContext(d.SampleRate(), d.Channels(), d.BytesPerSample(), 8192)
	if err != nil {
		return err
	}
	defer c.Close()

	p := c.NewPlayer()
	defer p.Close()

	_, err = io.Copy(p, d)
	return err
}

Document

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].