以下为 ALSA-Project/FramesPeriods[1] 学习笔记

1, sample_rate: 即每秒进行多少次采样,常见的比如 8000、16000、44100和48000等

2, sample_bits: 即每次采样多少个bit,多是 16bit。其他常见有 24bits、32bits等

3, channels: 通道数,即单声道mono(1), 立体声stero(2), 1.2(3), 或是1.5(6)等

4, sample_format: 每次采样结果的表示格式, 主要区分bit位数和大小端, 如 S8、S16LE、S16BE、S24LE、S24BE、S32LE、S32BE等

5, period_size: 每次相邻中断之间处理的sample个数,处理完一个period,声卡硬件产生一个中断

period_count: 每次最大可提交的period的个数。

因为alsa内部使用ringbuffer,period_size * period_count 决定了ring_buffer的大小。

以上参数由音频输出硬件决定,同一个声卡可能挂接多个音频输出设备(比如HDMI、3.5寸耳机输出),其输出的音频参数规格各不相同。比如树莓配一代支持的音频输出规格如下

pi@raspberrypi:~ $ tinypcminfo -D 0 -d 0
Info for card 0, device 0: PCM out:
Access: 0x000009
Format[0]: 0x000006
Format[1]: 00000000
Format Name: U8, S16_LE
Subformat: 0x000001
Rate: min=8000Hz max=48000Hz
Channels: min=1 max=2
Sample bits: min=8 max=16
Period size: min=256 max=65536
Period count: min=1 max=128 PCM in:
cannot open device '/dev/snd/pcmC0D0c'
Device does not exist.
pi@raspberrypi:~ $ tinypcminfo -D 0 -d 1
Info for card 0, device 1: PCM out:
Access: 0x000009
Format[0]: 0x000004
Format[1]: 00000000
Format Name: S16_LE
Subformat: 0x000001
Rate: min=44100Hz max=48000Hz
Channels: min=2 max=2
Sample bits: min=16 max=16
Period size: min=256 max=16384
Period count: min=1 max=64 PCM in:
cannot open device '/dev/snd/pcmC0D1c'
Device does not exist.
pi@raspberrypi:~ $

因而应用再实现音频播放时,需要根据实际情况选择那个输出通道,并且根据其实际输出规格要求,提供对应的PCM数据。若原始直接的音频数据(比如解码输出),和所选的音频输出通道的规格要求不一致,则需要做转换处理

[1] https://www.alsa-project.org/main/index.php/FramesPeriods

alsa音频播放过程中的基本概念的更多相关文章

  1. C# 文本转语音,在语音播放过程中停止语音

    1,运用SpVoice播放语音 在VS2013创建Windows窗体应用程序项目,添加引用COM组件Microsoft Speech Object Library: using SpeechLib; ...

  2. Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果

    目前Android的实现是:有来电时,音乐声音直接停止,铃声直接直接使用设置的铃声音量进行铃声播放. Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果. 如果 ...

  3. opnet仿真过程中SEED的概念问题 分类: opnet 2014-11-02 15:25 69人阅读 评论(0) 收藏

    仿真配置中SEED的概念:仿真随机种子,是产生随机数的种子值,反应随机数的状态.只要选定一个种子值,整个随机事件系统就固定了,复杂仿真的随机过程就成了一次实现.目的是测试仿真系统的稳健性,具体来说,针 ...

  4. iOS音频采集过程中的音效实现

    1.背景 在移动直播中, 声音是主播和观众互动的重要途径之一, 为了丰富直播的内容,大家都会想要在声音上做一些文章, 在采集录音的基础上玩一些花样. 比如演唱类的直播间中, 主播伴随着背景音乐演唱. ...

  5. iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

    --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...

  6. iOS开发----音频播放、录音、视频播放、拍照、视频录制

    随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...

  7. 音频播放、录音、视频播放、拍照、视频录制-b

    随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...

  8. IOS 音频播放

    iOS音频播放 (一):概述 前言 从事音乐相关的app开发也已经有一段时日了,在这过程中app的播放器几经修改我也因此对于iOS下的音频播放实现有了一定的研究.写这个系列的博客目的一方面希望能够抛砖 ...

  9. iOS音频播放(一):概述

    (本文转自码农人生) 前言 从事音乐相关的app开发也已经有一段时日了,在这过程中app的播放器几经修改,我也因此对于iOS下的音频播放实现有了一定的研究.写这个 系列的博客目的一方面希望能够抛砖引玉 ...

随机推荐

  1. balcanced-binary-tree

    题目描述 Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bi ...

  2. spring boot开发环境搭建(三)

    软件151  王帅 新建一个maven工程   Maven配置文件: <!-- Inherit defaults from Spring Boot --> <parent> & ...

  3. MySQL索引的原理,B+树、聚集索引和二级索引的结构分析

    索引是一种用于快速查询行的数据结构,就像一本书的目录就是一个索引,如果想在一本书中找到某个主题,一般会先找到对应页码.在mysql中,存储引擎用类似的方法使用索引,先在索引中找到对应值,然后根据匹配的 ...

  4. react Hooks

    useEffect 1.useEffect是didMount和didUpdate和willUnmount三个函数的集合 2.useEffec(fun):fun会在每次组件render之后执行,而fun ...

  5. flv文件解析(纯c解析代码)

    参考链接: 1. FLV科普12 FLV脚本数据解析-Metadata Tag解析 https://blog.csdn.net/cabbage2008/article/details/50500021 ...

  6. python列表的学习笔记

    列表的操作 第一个例子: #names = "zhangyang guyun xiangpeng xuliangchen"  #通过空格或逗号存变量 names = [" ...

  7. sorry

    登录的时候密码忘了 重置了之后才登录上 这是有多久没登录了 好囧呀 近段时间学习Python也断断续续的 马上春节要到了 随后的20多天里 应该更没有时间学习了 想想都很忧伤 明明想很努力来着 但是总 ...

  8. Spring Cloud分布式微服务云架构

    分布式.微服务.云架构 JAVA语言开发.跨平台.高性能.高可用.安全.服务化.模块化.組件化.驱动式开发模式 commonservice eurekaNetflix 云端服务发现,一个基于 REST ...

  9. vue安装遇到vue不是内部变量

    配置path系统变量 打开我的电脑-->右键属性-->高级系统设置-->环境变量-->Path-->添加获得npm的位置(搜索vue.cmd 可以找到该位置) 全局安装位 ...

  10. pypyodbc 的坑

    1, 你要先确认你自己的office的版本, 你要安装access dabase engine. 但是 sb 微软的驱动 32位的不让装, 64位的也不让装, 吐槽微软100次---MS个大SX. 最 ...