AudioTrack简单简介之三:爆音

Android  2019年4月14日 am9:16发布6年前 (2019)更新 91es.com站长
63 0 0

 

一、播放WAV有爆音的原因

AudioTrack播放wav有爆音有几种情况

第一种:仅仅开始播放时爆音

这里两种情况:

1、wav音频有问题,用工具查看一下久知道,或者使用Android版的酷我音乐播放一下,看看有没有爆音,如果有,那就是音频问题了,没有就是第二种情。

2、‘WAV都有一个文件头,这个文件头音频流的编码参数’,播放时如果把这个也当做音频字节来播放了就会有爆音。

第二种:其他段有爆音,比如中间,结束时

这个毋庸置疑,就是音频文件有问题。(也可以用酷我音乐播放试试)

二、什么是WAV和PCM

1、什么是WAV

wav是一种无损的音频文件格式,WAV符合 PIFF(Resource Interchange File Format)规范。所有的WAV都有一个文件头,这个文件头音频流的编码参数。WAV对音频流的编码没有硬性规定,除了PCM之外,还有几乎所有支持ACM规范的编码都可以为WAV的音频流进行编码。

2、什么是PCM

PCM(Pulse Code Modulation----脉码调制录音)。所谓PCM录音就是将声音等模拟信号变成符号化的脉冲列,再予以记录。PCM信号是由[1]、[0]等符号构成的数字信号,而未经过任何编码和压缩处理。与模拟信号比,它不易受传送系统的杂波及失真的影响。动态范围宽,可得到音质相当好的影响效果。

简单来说:wav是一种无损的音频文件格式,pcm是没有压缩的编码方式。

PS:以上内容摘抄于《WAV和PCM的关系和区别

三、根据自己项目需求而设定

我把播放有爆音的wav音频转成pcm格式,然后播放开始时就没有爆音了。

因此我这边可以断定,应该是我代码没有去处wav的头文件信息字节。

由于我项目可以使用pcm格式的,加上项目紧急(后续有空会去写),目前没有去写如果去除wav头文件信息字节的播放方法。

 

如果各位大佬有写过的,可给链接参考一下,谢谢

 历史上的今天

  1. 2023: ListView和GridView替换滑动条图片(0条评论)
  2. 2022: Android之获取图片高宽方法的简单记录(0条评论)
  3. 2020: 萧红:荒凉的院子(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

Android修改原生电话铃声

前言简单记录一下,修改Android原生默认的铃声。推荐看参考文章,这里只是个人随笔记录。正文隐藏内容!付费阅读后才能查看!¥1 ¥3多个隐藏块只需支付一次付费阅读参考文章《Android 设置铃声》《Android 设置来电铃声、通知铃声、闹钟铃声中的坑》

Ubuntu16.04搭建LAMP架构服务器笔记

这是在自己电脑上搭建的LAMP环境自己开发和练习使用,在这里总记录一下1、安装Apache2sudo apt-get install apache2PS:这里会生产服务器根目录/var/www/,我们可以改变到自己想要的目录下方法一:修改配置文件sudo vim /etc/apa...

自定义View和自定义属性

对于自定义属性,需要遵循以下几步,就可以实现:自定义一个IcoLayout(extends View )类编写values/attrs.xml,在其中编写styleable和item等标签元素在布局文件中IcoLayout使用自定义的属性(注意namespace)在IcoLayout的构造...

[摘]已知圆心,半径,角度,求圆上的任一点的坐标

前言原理很简单,大家初中都学过的,但,由于Java中的sin和cos传入的值是弧度,我一开始一直用角度,导致得不出对应的值。摘抄于此,方便自己查阅。好记性不如烂笔头正文PS:本文摘抄,只是文本继续一定编辑和整理。圆心坐标 :(x0, y0)半径 : r角度: a设圆上任何一点坐标...

毕淑敏:世上千寒,心中永暖

记得当年做医学生实习时,轮到去产科学接生。见那刚生下来的宝宝,一出母体,便放声大哭。倘在别处,听到有人痛嚎,众人必是关切不安,以示慰问。在产科接生室内,哭声便是捷报。若是不闻哭声,助产士便要心焦了。民间流传说,老式的接生婆如果听不到新生儿哭,会立马把孩子头朝下倒拎着,在屁股上猛砸几巴掌,娃儿惊哭出来...

getMimeTypeFromExtension记录

前言在Android 13的MediaProvider中有涉及到getMimeTypeFromExtension()的使用,主要是获取文件的MimeType属性。记录于此,方便自己差异。下面代码来自MediaProvider正文获取mimeType//获取文件后缀扩展String...