问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 语音聊天 在Win7下AudioFormat应填写什么参数

发布网友 发布时间:2022-05-05 01:35

我来回答

1个回答

热心网友 时间:2022-06-28 06:51

1 AudioTrack应用实例
对于Android应用开发人员来讲,音频回放最熟悉的莫过于MediaPlayer,而AudioTrack相信用的人相对会少很多。这是因为MediaPlayer提供了更完整的封装和状态控制,使得我们用很少的代码就可以实现一个简单的音乐播放器。而相比MediaPlayer,AudioTrack更为精练、高效,实际上MediaPlayerService的内部实现就是使用了AudioTrack。
AudioTrack被用于PCM音频流的回放,在数据传送上它有两种方式:
Ø 调用write(byte[],int,int)或write(short[],int,int)把音频数据“push”到AudioTrack中。
Ø 与之相对的,当然就是“pull”形式的数据获取,即数据接收方主动索取的过程,如下图所示:

图 13‑20 “push”和“pull”两种数据传送模式

除此之外,AudioTrack还同时支持static和streaming两种模式:
§ static
静态的言下之意就是数据一次*付给接收方。好处是简单高效,只需要进行一次操作就完成了数据的传递;缺点当然也很明显,对于数据量较大的音频回放,显然它是无法胜任的,因而通常只用于播放铃声、系统提醒等对内存小的操作
§ streaming
流模式和网络上播放视频是类似的,即数据是按照一定规律不断地传递给接收方的。理论上它可用于任何音频播放的场景,不过我们一般在以下情况下采用:
Ø 音频文件过大
Ø 音频属性要求高,比如采样率高、深度大的数据
Ø 音频数据是实时产生的,这种情况就只能用流模式了

下面我们选取AudioTrackTest.java为例来讲解,先从使用者的角度来了解下AudioTrack。

/*cts/tests/tests/media/src/android/media/cts*/
public voidtestSetStereoVolumeMax() throwsException {
final String TEST_NAME= "testSetStereoVolumeMax";
final int TEST_SR =22050;
final int TEST_CONF =AudioFormat.CHANNEL_CONFIGURATION_STEREO;
final int TEST_FORMAT= AudioFormat.ENCODING_PCM_16BIT;
final int TEST_MODE =AudioTrack.MODE_STREAM;
final intTEST_STREAM_TYPE = AudioManager.STREAM_MUSIC;

// --------initialization --------------
/*Step1.*/
int minBuffSize = AudioTrack.getMinBufferSize(TEST_SR, TEST_CONF, TEST_FORMAT);
/*Step 2.*/
AudioTrack track = newAudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF,
TEST_FORMAT, 2 * minBuffSize,TEST_MODE);
byte data[] = newbyte[minBuffSize];
// -------- test--------------
track.write(data, OFFSET_DEFAULT, data.length);
track.write(data, OFFSET_DEFAULT, data.length);
track.play();
float maxVol =AudioTrack.getMaxVolume();
assertTrue(TEST_NAME, track.setStereoVolume(maxVol, maxVol) == AudioTrack.SUCCESS);
// -------- tear down--------------
track.release();
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 魅族pro6的移动上网不能上网,请问为什么 急求~~~~~如何用java代码实现比如二个不同地方的人在一起语音视频聊天结束后同时弹出一个框可% 当前信号质量不佳,请稍后再试魅族pro6手机 魅族pro6plus手机有基带无信号怎么办,说送回去维修的就不用说了我也知道,我只想知道自己能解决 魅族pro6puls流量上网没网速 魅族pro6 plus有时没有信号怎么办 魅族pro6s信号差怎么办 魅族pro6plus信号太差是什么原因 魅族pro6 plus有时没有信号,怎么办? 怎样在Xp系统下安装Win7双系统 怎样在xp下 再装WIN7 双系统 讲解下步骤 谢谢 如何在XP系统中装GHOST WIN7,完成双系统 我是学画画的 老师马上过生日了该送什么礼物啊 老师很()我的绘画作品,还鼓励我要继续加油。括号里用赏组词填空 绘画我心中的好老师 孕妇在分娩中为什么会出现尿潴留? 什么叫做尿潴留怎么会引起尿潴留 尿潴留是怎么回事 尿潴留原因?如何治愈? 尿潴留是什么原因引起的,该怎么治疗 魅族pro6plus网络不好!是不是和魅4一样的换主板?如果不是的话该怎么解决? 在什么时候1十2不等于3脑筋急转弯 什么时候1+2不等于3 手机老是无服务没信号断网,这是怎么回事,有人知道吗,我的手机是魅族Pro6plus 1+2 在什么情况下不等于三 为什么 魅族pro6plus经常提示拨号失败是因为什么原因 在什么时候一加二不等于三? 在什么时候一加二不等于三 脑筋急转弯,在什么时候1 2不等于3 什么时候1加2不等于三怎么办 有关于脑筋急转弯的 什么时候1+2不等于3,提示:算错了的时候(打一生肖) 什么时候1加2不等于三怎么办 在什么时候1十2不等于3 什么时候1十2不等于3 一加一在什么情况下不等于三。 在怎么样的情况下1十2不等于3 在什么时候1+2等于3? (算错了时候)笔画 怎样跳过手机验证注册微博小号 新浪微博怎样跳过微身份验证,我输入手机号和身份证都说无法注册 银行卡补办需要以前的卡号吗